- AI
- A
A revolutionary moment in programming is getting closer
Computers are probably one of humanity's coolest inventions. Initially, they were complex and incomprehensible: all these punch cards, command line interfaces — training was required to master them.
Computers are probably one of the coolest inventions of mankind.
Initially, they were complex and incomprehensible: all these punch cards, command line interfaces — all this certainly could not be easily and quickly mastered without special training.
But everything changed when Xerox PARC invented the graphical user interface (GUI), which first achieved commercial success with the release of the Apple Macintosh in 1984.
The graphical user interface, understandable to any person, added visuality to computers and used familiar metaphors, which paved the way for the power of computing technology to become accessible to everyone.
A few years later, many people had a computer at home. Then we connected them with cables, got the internet, and then the story began, which everyone knows.
All these changes became possible due to the removal of barriers: computers became simple enough to master and accessible.
In my opinion, a similar shift is beginning in the world of programming.
The combination of visual interfaces and artificial intelligence assistance can make programming as intuitive as using a smartphone. This will open up software development opportunities to completely new groups of people, and in the long run — to everyone.
Climbing the ladder of abstraction
The history of programming is a consistent simplification of complex tasks.
At the dawn of programming, everything was built around binary code. This activity was tedious, error-prone, and generally not for the faint of heart.
Then someone came up with the idea of writing a program that could convert more human-readable commands into binary code. Thus, the assembler appeared. It was still low-level, but already a little more convenient for people.
The emergence of higher-level languages such as C made it possible to abstract away many technical details and made programming accessible to more people.
Today we have modern languages and frameworks that make the coding process easier than ever before, but learning to program is still a complex process.
Despite all the achievements, in recent decades we have reached a certain plateau. The way of writing code has not fundamentally changed since the 70s. We are still, essentially, writing instructions as we did with the command line at the dawn of computing technology.
The Value of Visualization
Why have graphical user interfaces (GUIs) become such a significant step forward in terms of computing accessibility?
Because they take into account how our brain naturally processes information. Did you know that approximately 20-30% of our brain is involved in visual processing? That's a significant portion of our neural resources.
When we interact with a GUI, we are using a system that aligns with the principles of how our brain naturally works.
Want to move a file? Just grab it and drag it.
This is intuitively understandable because this is how we interact with physical objects in the real world.
Modern Programming: A View from the 70s
Now compare this to how we write code today. Despite progress, programming remains a textual activity, even when it comes to representing purely visual things.
This is akin to programmers being stuck in the command line interface of the 70s, while the rest of the computing world has moved on to using iPhones. And I am not speaking metaphorically: whatever language you use today, it is likely inspired by and not much different from languages like C, which was created back in 1972.
This creates a huge gap between those who can write code and those who cannot — leading to inefficiency, frustration, and missed opportunities.
How many times has someone had a great idea for a feature or product but it was not realized due to the need to translate that idea into code?
Two Key Components for Intuitive Programming
So, the main question is: how can the process of programming be made as intuitive as using a modern computer?
I believe it all comes down to two key components:
Code visualization: Imagine being able to see the structure of your code in a visual format, manipulate it with gestures, and immediately understand its logic.
Natural language processing: Describe changes in plain English and turn them into working code.
This combination of visual and language interfaces can make programming accessible to a much wider audience, just as the Macintosh made computing accessible to the mass market.
I think new categories of programming skills will emerge in the future, enabled by advances in these areas.
LLM Assistants for Everyone
I hesitated for a long time on this issue, considering all the hype around artificial intelligence, but now I am firmly convinced that artificial intelligence, especially large language models, will play a key role in this transformation.
These models can bridge the gap between human intentions and machine instructions, allowing people to express their ideas in natural language and turn them into functional code.
But it's not just about code generation. The real power lies in integrating AI capabilities with visual programming interfaces and connecting them to real systems and codebases.
Such integration will allow working with production-ready code, not just simplified "no-code" solutions that have limited capabilities. And that is the main achievement.
Consider the main problem of AI assistants: they are only useful for performing simple tasks. And who needs simple tasks solved with code? People who can't program!
Yes, but then you will have to teach them to clone code, find the right files, run the assistant in the right area, and so on.
Or you can create a system that visualizes a website or application in an editable format, allows LLM to make changes, show the result almost in real-time, and repeat the process. This will truly give these AI assistants superpowers that will be appreciated by those who need them the most.
That's why, in my opinion, the combination of code visualization and LLM assistants gives a result that significantly exceeds the sum of their individual parts.
The Value of Removing Barriers
The current gap between those who can program and those who cannot creates artificial barriers between teams, slowing down workflows. It's like having to turn to a translator every time to express your thoughts.
Imagine a marketing team that wants to implement and test new hypotheses. Now they need to create specifications, pass them on to developers, wait for implementation, check, give feedback, and make adjustments. This is a lengthy process, often prone to misunderstandings, and resulting in the final product being noticeably different from the original idea.
Now imagine a world where the same marketing team can instantly implement and test their ideas without waiting for developer resources. Or a designer who can change not only the layouts but also the working code itself.
In my experience, developers do not like being intermediaries between the marketing team, designer, or someone else and their goals.
Developers want to engage in complex and interesting tasks, not change the button color every week based on the latest A/B test data.
And while I don't think text programming will disappear in the foreseeable future, the key to unlocking programming visualization lies in seamlessly linking visual programming with traditional programming.
It is necessary to balance the advantages of the current system by opening access to the new system to more people while maintaining their seamless integration.
It is this problem that Builder.io's visual editing tools solve, allowing non-technical team members to make changes to existing systems directly, without the constant need for developer involvement.
Potential Impact
This shift in programming could have a huge impact far beyond the tech industry:
Accelerating Innovation: When more people can bring their ideas to life, we will see a surge of new products, services, and solutions. This could lead to breakthroughs in areas we haven't even considered.
Improving Existing Systems: Companies and organizations of all types will be able to optimize their operations more easily, leading to increased efficiency and improved user experiences for everyone.
Fostering Creativity: Removing technical barriers will allow people to focus on the creative aspects of problem-solving. This could lead to more innovative and user-friendly solutions across all sectors.
Economic Equality: Programming skills have long provided access to high-paying jobs. By making these skills more accessible, we can reduce economic inequality and open up new opportunities for people around the world.
Lessons from History
We have seen similar democratization of technology before. Remember when spreadsheet software like VisiCalc came out? Maybe not, because it was in 1979. Let's recall what happened then.
Some accountants feared it would make their jobs obsolete. But instead, the new tool made their work more productive, in-demand, and strategically important. The same happened with CAD systems in architecture and even digital cameras in photography.
The same principle applies here. By making programming more accessible, we are not replacing developers. On the contrary, it will free them from routine tasks and allow them to focus on more complex and interesting challenges. This will make their skills more valuable, not less.
The Way Forward
The transition to a world where the benefits of programming are available to everyone will not happen instantly. Most likely, we will see gradual changes, with the emergence of more and more visual and intuitive tools.
The main thing is to make real, production-ready code accessible, not just simplified "no-code" solutions that have limited capabilities.
As these tools develop, we will need to rethink approaches to programming education, collaborative work on software projects, and the integration of these new capabilities into existing workflows.
This will require changes not only in tools but also in our thinking and approaches to software development.
Overcoming Challenges
Of course, this concept is not without its complexities. It will be necessary to ensure that new tools can handle the complexity of real-world development, address security and code quality issues, and find ways to integrate new approaches with existing codebases and practices.
But these challenges are not insurmountable. To deal with them, modern platforms use a smart "integration first" approach. They introduce visualization into existing codebases and workflows, allowing for the gradual adaptation of new approaches without abandoning current tools and processes.
Conclusion
The revolutionary moment in programming is approaching, and it will be as transformative as the original Macintosh was for personal computers.
It's not about replacing human creativity with artificial intelligence. It's about enhancing human creativity by removing technical barriers; about giving people the opportunity to focus on what and why they want to create, rather than getting stuck on the question of how to achieve it.
Write comment