invokedynamic · behind the name
Why invokedynamic.
invokedynamic is the first and so far only opcode added to the JVM instruction set.
Arriving in Java 7, it made dynamic languages on the JVM possible and paved the way for the introduction of lambda expressions in Java 8 release.
The Race to AGI
The journey that started with the invention of the Turing machine, embodied in the Von Neumann architecture in what we now know as modern computers, and accelerated with Claude Shannon’s information theory, culminated with the race to achieve AGI — a race triggered by the release of ChatGPT.
The race was already on between DeepMind, OpenAI (created with support of among others Elon Musk in fear that someone other than him will be in control of AGI), and Anthropic (created by OpenAI defectors as a reaction to what was seen as Sam Altman’s recklessness when it comes to the safety and addressing the potential dangers of developing AGI without properly addressing the alignment problem and the dangers of developing AGI without proper safety work), but the release of ChatGPT to the public marked a shift from focus on safety and development of ethical AI to which lab will be the first to cross the finish line, regardless that the finish line itself is not properly defined and fuzzy.
Few years from now, if we are still around, with the benefit of hindsight we would be able to say when the AGI was achieved, which milestone was the most influential on the road to AGI, was it Geoff Hinton’s lab success at ImageNet competition, was it move 37 in AlphaGo’s match against Lee Sedol, was it the realisation that use of transformers in AlphaFold would make it possible to solve the protein folding, or the invention of the transformers themselves, and which lab and which model was the first to reach the threshold of AGI.
Software Builders in 2026
Regardless of the answer, the consequences of these developments are profound and are visible with a capital V already. Humans are not writing code anymore in 2026.
Yes, we still write some bits — when changing a few things manually is faster and cheaper than articulating our ideas, or when we are not happy with the style of the output of the LLM and give it a hint of our preferred codestyle, or purely for the love of the craft — but most of the code is generated by LLMs.
Starting at the end of 2025, time is no longer measured in years, but in the time it takes to release the next model with new capabilities. Paradigms used to change once every few years; now there’s a new one every month. Agent-assisted development evolved from vibe coding to specification-driven development, from prompt engineering to context engineering to loop engineering to graph engineering. No one knows what engineering is coming next month!
Is agile still relevant when the work of an entire sprint from two years ago can be delivered in a single day, and the speed depends not on how fast a developer can write code, but on how well one can manage agents and the available token budget. There is a tsunami of solopreneurs, and single-person unicorns are expected to arrive either by the end of ’26 or in ‘27.
Times reminds of the ‘90s of the last century when the Internet was exploding giving birth to the dot-com revolution — except this time, time is compressed and things that took years and large teams now take weeks and a single person. Software developers are going extinct, software builders — with or without prior technical experience — are replacing their species in the ecosystem. There were even predictions, since proven wrong, that AI will replace junior developers, or replace developers altogether.
New concepts, that only a year or two ago would have been seen like they came from an alien world — Context Rot, Attention Budget, Context Pollution, Context Anxiety, Agentic Laziness — are now common in the developers vernacular. And yet, for as much as this is written about, it is still surprising that a big part of the population is either oblivious or in denial about it, or is only now starting to catch up.
On a Collision Course with Java
From today’s vantage point, it is difficult to comprehend the power the once famous now largely forgotten Java mantra “write once, run anywhere” used to carry.
My relationship with Java started even before Java was invented, when I was first enchanted with the promise of the future that will be built with computers, I was set for a collision course with Java. The ZX Spectrum was a toy I couldn’t afford. I had access to Commodore 64 through a couple of schoolmates and after watching the WarGames hatched a naive plan on how to program a computer to learn with one of them. I got lucky later, when I got my first computer of my own, an Atari 800XL, on which I wrote little programs that were drawing graphics reminiscent of the Windows screensavers that came later. But I changed course when I first used Windows, I thought I would rather use computer software instead of writing one, and as a consequence decided to study mechanical engineering. Having been exposed pretty early to the Internet and the promise of the WWW and contemplating about its potential, after a failed attempt to transfer to aerospace engineering studies and reading the "The Java Saga” article in the Wired magazine, that rendezvous point was reached and I decided that I need a course correction and dropped out of studies to focus on teaching myself Java and web related technologies, bought my first Java book —“Just Java” — and my journey back into the world of software began. James Gosling and Bill Joy were my heroes. Glamorous life and fortune were an IPO away was the promise.
Although that IPO never happened, recently watching the “The Java Story” movie I reflected on the evolution of Java, and how my professional life evolved with it, and I am glad I took that path.
The evolution of Java and invokedynamic
It is hard to tell which change was most consequential for Java, but two releases stand out for me.
The first is Java 9, bringing modularity to the platform which made the platform leaner, added better encapsulation, made evolving the language easier, and introduced a new release cadence that let the language move faster than it had before.
The second is Java 7, which is related to the name I chose for my freelancing venture. Most Java developers know bytecode exists, but only a few of us have ever needed to look at some. The JVM defines an instruction set called opcodes that are one byte long — hence bytecode.
invokedynamic is the first and so far only opcode added to the JVM instruction set.
Arriving in Java 7, it made dynamic languages on the JVM possible and paved the way for the introduction of lambda expressions in Java 8 release. It epitomizes at the same time both the stability and the versatility of the platform; the same opcodes — the stability — provided a foundation for all the innovation that followed — the versatility. It also illustrates my own relationship with Java; stable and predictable on one hand, versatile, and still innovating on the other. New language features are developed and introduced carefully, to avoid repeating some mistakes from the past. It has a large and vibrant community, and numerous open source libraries, frameworks and products.
The Innovation Dance and What's Next?
I am curious about the impact all the innovations in the AI landscape will have on Java. Will it accelerate the evolution of the platform, the way it accelerates everything else? And with the introduction of the Vector API and value types (Project Valhalla), I am equally curious what impact Java will have on the future development of AI. After all, Java already played a significant role in machine learning, I would be surprised it will be different with generative AI. It is the same dance — a stable platform enabling new waves of innovation, each wave, in turn, reshaping the platform — that defined the Java story so far, and mine along with it.
No matter how the future unfolds, and however the AI diffuses throughout, and whether I end up building your next software solution, be part of your team temporarily, or maybe as your future cofounder, I am looking forward to meeting you.
Let’s invokedynamic. I will see you on the other side.