The term Software 2.0 was coined by Andrej Karpathy, a computer scientist and former senior director of AI at Tesla, to describe machine learning (ML) models that assist in solving a variety of classification and recognition problems without the traditional human input of writing a single line of code. It's a new kind of software that "is written in much more abstract, human unfriendly language, such as the weights of a neural network."
Software 2.0 is based on deep learning, where the developer will merely gather data to feed ML systems. The concept of interpretability does not matter for most domains (apart from some safety-sensitive ones) and the concept also seems to be more research-oriented in terms of R&D.
Software 1.0 vs. Software 2.0: Resources writing the code to dictate software behavior vs. the code being discovered by calculations.
This shift from traditional programming to connectionist ML makes software development a lot easier day to day. Some of the factors driving Software 2.0 are:
From the perspective of many programmers, Software 2.0 inherits additional challenges from ML libraries:
Prisma Labs, a Singapore-based photo-editing mobile application, uses neural networks and AI to apply artistic effects to transform images. It utilizes the recent neural style transfer technology to redraw an image using another image style.
Rosebud is a US-based company offering a variety of Software 2.0 solutions under the heading of AI-generated media, using Deepfake AI and the latest in Generative Adversarial Networks (GANs). Its goal is to “enable game [video] game creation at the speed of thought.”
Otter is a US-based AI transcribing solution that is compatible with common video conferencing programs.
Grammarly is a US-based company for digital writing assistance powered by AI.
Emerging ML technology addresses many of the challenges and complexities that hold up or delay the creation and use of AI models and are predicted to expedite the development of Software 2.0. Software 2.0 will become increasingly crucial in any field where repeated evaluation is practical, affordable, and difficult to explicitly design.
The emergence of Software 2.0 will alter not only how software is built but also who works on it. Software 2.0 will require collaboration between domain experts and data scientists. This means additional skills at the hands of developers. In fact, according to a survey by Evans Data Corp (a US-based market research firm), nearly 30% of software developers believe that their development efforts will be replaced by AI in the foreseeable future.
This is expected to give rise to the 2.0 programmers who will have proficiency in AI projects including math, algebra, calculus, statistics, big data, data mining, data science, ML, cognitive computing, text analytics, natural language processing, R, Hadoop, Spark, and many others.
According to Andrej Karpathy, Software 2.0 is changing the programming paradigm by splitting teams into two. Karpathy sees a future where 2.0 programmers will manually curate, maintain, massage, clean, and label datasets, while 1.0 programmers will maintain the surrounding tools, analytics, visualizations, labeling interfaces, infrastructure, and training code.