Tips for Technologists #16: Preparing for the Future of Coding

In Tech Digest by Nick Ruffilo

Tips for Technologists is a series aimed at teaching you to engage with technology in best way possible. You can see all the Tips for Technologists articles here.

By Nick Ruffilo

I have seen the future of programming, and it’s oddly like the movies.

computer workSince the 1990s, the movie industry has been fascinated with hackers, computers, and the Internet. Picture an evil hacker surrounded by multiple monitors, interacting with the computer through gestures, manipulating 3D objects on the screens. Sometimes, these hackers on the big screen have to solve a complex, 3D puzzle, like a Rubik’s cube, in order to gain access to the mainframe where they have to grab a file, store it on a flash drive, and then walk away calmly.

OK, so the future may not be like that, but it will be very human-friendly and much more three-dimensional.

Evolution of Programming Languages, Briefly

We started with low-level programming languages. These allow you great power (you can essentially re-write how devices interact with each other, read/write directly to specific sections of memory, alert specific pixels on a monitor, etc.) but are very complex. Simple tasks often require hundreds of lines of code.

Next are the “mid-level” languages, which require a solid computer science education to truly master. C for example, gives up a little bit of power and computer control for very large gains in code reduction. Now, you can transform the 250-line program written in a low-level language into just 25–50 lines of code.

Finally, we have high-level programming languages, which offers little or no control over the low-level workings of the computer, but allow programmers to quickly write applications, often without needing to understand what is really going on. Your 250-line program in a low-level language can become 3–5 lines of a high-level language.

There is still a place for all of these languages within our current computer usage, and there will probably continue to be for the next 20 years.

If you like history, I suggest you read the “History of Programing Languages” article on Wikipedia.

What’s Next for Programming?

In the next 10 years, I see a new classification of languages that I dub “Drag and Drop” languages. These languages will let you drag-and-drop blocks of pre-defined functionalities together to build an application. Think of them as Legos (although instead of simply having 1×4 or 1×2 blocks, each piece will have a more useful function — wall, wheel, window, tree). Most of the functionality blocks will be provided by open-source communities (take a look at jQuery and all of its extensions to see how close we actually are to this).

You’ll be able to use applications, similar to PowerPoint or Keynote to design a program, then add functionality by dragging in blocks. That is the future I see.

How Can We Prepare for the Future?

If you’re a coder, the best way to future-proof yourself is to continue to learn. Highly skilled programmers will always be in demand. Easier programming languages will create a larger pool of beginner “coders” (block builders), so you want to avoid being in that pool.

If you wish to be a publisher who is going to provide value, you must be able to bring expertise beyond what the user can do.

If you’re a tinkerer, and you simply like messing around, no need to prepare.

If you run a business, this is where things get interesting. In the 1990s, if you decided to wait out the CD-ROM phase, you’d have made a lucky decision. In the 2000s, if you tried to sit out the ebook trend, you have probably changed your mind already. Where the question comes, how do you manage the time between now and this potential future? If you’re going to embrace ebooks as software and create (or expand) an in-house development team, should you bother investing more resources when there may be no need for this group in the future?

Yes, invest. The reality is that you can’t afford to wait for the future to come (technology will change a great deal in the next few years) and, the best way to prepare yourself for a technology revolution is to be technically competent. If the time comes when most of your creative employees are using drag-and-drop programming, you can use your development organization to train the rest of your organization and develop custom building blocks.

Technology is shifting and as it becomes easier and easier to create software, the barriers to entry become greatly reduced. Any author who can use wordpress can create a great quality ebook using Pressbooks. Professional quality children’s books can easily be put together using Aerbook. Users are gaining more and more power to create great (and interactive) works. If you wish to be a publisher who is going to provide value, you must be able to bring expertise beyond what the user can do. The reality is, while everyone knows how to make a PowerPoint presentation, there is a clear difference between the average user, the designer, and the developer of this application.

Having an idea about the direction in which technology is heading is crucial in quality decision-making. It allows you to take the roadmap you’ve laid for your company and ensure that it intersects with as many likely possible futures.

About the Author

Nick Ruffilo

Nick Ruffilo is currently the CIO/CTO of Aerbook.com. He was previously Product Manager at Vook and CTO of BookSwim.