There have been a lot of conversations around Software 2.0 recently; the next generation of software, and perhaps, a new way of building a different class of software. And yet, its meaning is still very much unclear. Some describe it as “software building other software”, others define it as “people building software” by simply feeding it data as opposed to writing actual code. But to me, these definitions say nothing about the kind of software that comes out of the process or the new experience it offers the user.
I think Software 2.0 is a new generation of applications not just development processes. We can say they are AI-native; AI being at the center of their core functionality without which they may fall back to their Software 1.0 variant or simply don’t function at all. They enable a new level of expressiveness which centers around given users the fidelity of expressing their intents as opposed to the traditional way of following rigid steps.
Let me break down what I think should be the core attributes of a Software 2.0 applications:
-
They are AI-native. AI is at the core of their operation. Think learning, reasoning, predictions, recommendation, vision etc; Software 2.0 apps apply AI to perform their core operations.
-
They apply AI to understand and adapt to the user. In other words, they learn form the user and apply those knowledge to their own internal states. This could be for personalisation purposes or as a way to optmise the outcomes of their operations.
-
They apply AI to understand the user’s complex patterns of expression whether as text inputs or gestures or even voice commands.
Of course none of these is new; we have in the past seen products that possess at most two of the above listed abilities, but never have we seen products that combine all of the three to deliver the umprecidented quality of user experiences we are seeing today; from products that let you generate images from a text prompts to products that co-designs your Figma projects with you.
The quality of these new kinds of applications in terms of their development and their operations may still be rough at the edges now, but it is only a matter of time before everyday users begin to expect the apps they use to possess some level of intelligence, and it will be up to a unique class of programmers and engineers to bring these kinds of products to life.