No doubt you have seen the ads online for the latest "no-code" web development tools, such as WebFlow, and wondered if programmer's were becoming obsolete just like the people in the 90's predicted. Robots will take your jobs! people proclaimed. And just maybe, there might be some validity to that argument.
The robots in this case aren't giant 6 foot tall giants of metal and gears with mechanical hands that type for loops. But instead, as is usually the case, its software. Software that can take what are usually long drawn out tasks that web developers tend to spend hours doing, such as creating grid layout systems, resizing images, connecting to databases and validating data, and can do it in seconds.
How can this software do such things? Well, because these things aren't exactly complex and in fact, they are very predictable and linear. Take connecting to a database for example. The typical approach looks something like the following:
- Create a database schema
- Create a CRUD form to enter data
- Validate the data on entry
- Write a SQL query to retrieve the data
- Turn the data into some form of HTML
Almost every website you encounter right now, follows this traditional data binding model. Some take different approaches with different frameworks and tools, but essentially, they all wind up doing the same thing.
The latest frameworks, however, do an excellent job at minimizing the work required to accomplish some of these tasks, such as generating forms and queries based on your database model. But usually these systems have some form of a learning curve, and this is where most people have a difficult time with implementation.
Something like Microsoft's Entity Framework is a great example, for your reference.
From my current research on the various online tools to create attractive and data-bound websites, I can say that WebFlow so far has come the closest to that future potential reality where writing code gets more and more obsolete. At least the code that is predictable, as mentioned.
Creating a data-bound model in WebFlow comes down to a few clicks of the mouse, where you create the data columns, set the type of data (numbers, strings, images) and create a template that will display this model. And all of this is done with a drag and drop toolkit, which from the looks of it is pretty robust.
No, I am not sponsored by WebFlow. But I like them. From a software engineering perspective, it is an impressive tool.
So should we all stop being web developers, move to farms, cultivate yams and call it a day? Not quite yet. While WebFlow does a great job at putting together static and data-bound pages, it is still limited in functionality outside of that realm. What kind of functionality? Pretty much anything that requires an actual programmer to accomplish, such as whatever bizarre tasks you were given at the your Monday morning standup meeting. And that's the part that computers still have a difficult time with even today with quantum computers on the horizon (maybe).
Can you create Uber from WebFlow for example? You can create the home page, marketing pages, landing pages and contact pages for sure and do so relatively quickly. But can you build the actual Uber application? Not just yet. That will still require a programmer's hand and an architects wit. There are just far too many variables required to build something of that complexity with drag and drop tools.
There are GPS API's and real-time communication mechanisms that need to be built and they need to follow certain guidelines that you can't guarantee an online static site generator can or will maintain.
This is the same problem that many web developers face when working with other CMS's such as WordPress. While they are great for getting a project up and running with minimal effort, most fail to be flexible for actual real-world business use.
And that's also because in the real world, clients are picky. They request things that aren't standard in the typical sense, such as strange animations and non web-related events.
Can you have the marketing department get an automated email whenever the contact page is filled out?
You bet I can. Who's your transactional email provider and where are the credentials?
These are actual requests that web developers get on the daily.
In the future, even this can and will be done with a few clicks of the mouse. Mainly because new software is always being built and released. We call these startups and they focus on building things that don't exist yet, but that people wish existed. I know, because as some of you know, I co-founded and ran a startup for over 3 years looking to tackle real-estate rental gaps. A problem that exists, and that required some form of a solution.
And this innovation isn't stopping. It's increasing in tempo and in speed and in success rates. In the past, the meme was that if you wanted to make your first million dollars with a startup, you had to spend 3 million first. But that meme seems to be diminishing in power, and the success rate for new innovative software is on the rise.
I for one welcome this innovation and change. Because each and every hour that I don't have to spend building up a database CRUD, is an hour that I can spend in helping out with this innovation myself.
In closing I want to say that programmer's themselves aren't becoming obsolete anytime soon. The more complex software becomes and the more automation becomes readily available, the bigger the challenges that programmers will be solving/coding in the future. And I find that to be an exiting and fun future for all of us just on the horizon.