Software Development for All
The art of building software is going to get even better. Thoughts inspired by this tweet thread.
With more tools that increase developer productivity such as AI, bounties and modular and monetizable code, we will see a lot of growth in what people can do with software. I had the elitist view that only developers should have the ability to build software products. The higher your grasp of programming concepts like variables, encapsulation and abstraction, the higher the status and respect you deserve to build software. However, building software can be tedious for many and time-consuming for those who engage in it. It requires a lot of mental effort to write a piece of code that can produce the desired output. This is excluding testing, scaling and even having a problem for that piece of code to solve.
In light of this, the best way to get more useful software applications is by getting more people building software by making it faster and done with less effort and cost. This is simply making the art of software development easier, faster, better and cheaper.
The Vision for Software Development
Imagine being able to build a software product in a couple of lines, a click of a button, murmurs of your voice or even thinking about it. That’s powerful. With new tools like GPT-4, AI is best positioned to help us ship usable software in faster and easier ways. The mind of the developer can be more focused on the use case and design of the product instead of the details of error handling and logging.
For example, I have recently been frustrated at how there is no out-of-the-box boilerplate that allows you to build SaaS products from the ground-up. I see how this can work with Django, React, Docker and AWS, however, most people cannot do what developers do and they are left out of such an essential skill as software development.
Most people should just be product managers and have an army of AI tools, modular code, APIs and services that they can seamlessly integrate to develop software products.
Fundamentals are still the key
With better tools and development experience, we will get more diverse products coming out of the industry. However, there is also the argument that such abstraction will limit technological creativity. This is what is happening in the web development space where 3-tier, server-client software is all that most people know. The exception are Web3 and AI, which are significantly-different paradigms of computing.
Software has more to offer and making it’s development more accessible for people to solve problems is a good development. However, additional work in the discovery and development of new and emerging technologies is necessary, especially by people who understand the fundamental concepts of sofware development and how computers work. We still need those people. We should empower the professors, hobbyists, researchers, renegades and rebels to take the computing industry to new heights.
The two poles are new and emerging technology and making software development accessible to all. That’s a good set of extremes to maintain.