Software 2.0 to automate the future of the programming By Abhrasnata Das

Software 2.0 to automate the future of the programming

Abhrasnata Das | Sunday, 17 April 2022, 10:51 IST

  •  No Image

“Neural networks are not just another classifier, they represent the beginning of a fundamental shift in how we develop software. They are Software 2.0.” - Andrej Karpathy.
 

Current coding paradigms encourage programmers to use constrained machine learning libraries that can learn or are specifically configured to do a certain task.However, even in the coding field, the industry is undergoing a seismic shift towards automation. Code has been used to automate occupations in the past. There is now a demand for code that can write itself and adapt to diverse tasks. This is software 2.0, in which software writes itself using machine learning.

The introduction of software 2.0 into the tech world will revolutionize the way codes are interpreted and software are developed. In comparison to the traditional coding, Software 2.0 will be written in much more abstract, human unfriendly language, such as the weights of a neural network, wrote Karpathy. 

Although in a nascent state, new tools are already being developed now to automate various aspects of software engineering and data science. An article by Mike Loukides and Ben Lorica published in O’Reilly noted that new tools are starting to appear, particularly for building deep learning models. The continued adoption of tools like AWS’ Sagemaker and Google’s AutoML. AutoML Vision allows a programmer to build models without having to code. The code-free model building from startups like MLJAR and Lobe, and tools focused on computer vision, such as Platform.ai and Matroid are also coming into place.

In this article let's understand how Software 2.0 will transform the notion of software development in the future.

AI Assistance to transform workflow 

In the future advanced AI assistants will play a critical role in the development of software. With software 2.0 the AI might determine what kind of function is being written and will fill the rest in using high-level predictive analysis. As Karpathy described, “our approach will be to specify some goal on the behavior of a desirable program, write a rough skeleton of the code, that identifies a subset of program space to search, and use the computational resources at our disposal to search this space for a program that works.”

Another area an AI assistant could help with is test-driven development. A human could write the tests while the machine partner iterates millions of times to find the right piece of code to solve those tests. Instead of doing both jobs — writing the tests and making the tests pass —a coder will have a machine partner that does the latter. Hence, it will transform the workflow, wherein a developer will spend less time on implementation code and more time on understanding and solving business problems.

Neural Network optimization

Owing to the exponential expansion of Big Data and the Internet of Things, the neural networks will have access to enough specific, granular data to outperform traditional coding algorithms in fields like image recognition, natural language processing, autonomous cars, and tailored medicine.

Instead of developing software methods the usual way, a developer will have to train a Neural Network to optimize the weights of the neural network nodes to give the required outputs or outcomes using backpropagation and stochastic gradient descent.

Software 2.0, on the other hand, might break in unforeseen and unexpected ways. Because AI is "created out of data" in some ways, there is a constant need to assess the data quality utilized in training models. When certain datasets have millions of parameters and observations, understanding the data might be difficult. Having said that, let's look at the few possible shortcomings of Software 2.0.

Dearth of Data

For neutral networks to perform effectively, it needs to be fed sufficient training data. Hence training the neural network to perform tasks like playing Go or Chess is easy because there is over 150 years of data to train the neural network.

However,  there is not always sufficient data for neural network models in all cases.  Significant effort must be invested to create and engineer training data, using techniques such as noisy labeling schemes, data augmentation, data engineering, and data reshaping, to power the model-based neural network applications, says Bill Schmarzo, CTO at EMC Global Services.

In the Future

Face recognition, natural language processing, real-time dictation, picture recognition, autonomous cars, and precision medicine are examples of complicated programming challenges that are practically hard to solve using standard rule-based programming. It is easier to construct AI, Deep Learning, and Machine Learning models that can be trained to give the proper actions rather than having to code the right actions in these situations. This is where Software 2.0 will deliver a competitive advantage.

As Karpathy concluded, “there are many exciting opportunities to consider the entire software development ecosystem and how it can be adapted to this new programming paradigm. And in the long run, the future of this paradigm is bright because it is increasingly clear that when we develop AGI, it will certainly be written in Software 2.0.”

CIO Viewpoint

The Standard Work of IT

By Steve Brunker, CIO, LSI Industries

The Transformational CIO

By Joel Austin, CIO, Oncor Electric Delivery

How Is IoT Emerging as Next Technology Mega...

By Prashanta Ghoshal, Director - IT Solutions, Geometric Ltd.

CXO Insights

Digitalization - the critical enabler for...

By Rajesh Ramachandran, Global Chief Digital Officer - Process Automation & ABB Ability, ABB

Enterprise-wide Approach Needed for...

By Arvind Jha, Senior Vice President, Software Development, Newgen Software

Facebook