12 predictions for the future of programming

We gaze into our coding crystal ball to find the sure bets and intriguing developments to target in the next five years.

We gaze into our coding crystal ball to find the sure bets and intriguing developments developers should target in the next five years

We gaze into our coding crystal ball to find the sure bets and intriguing developments developers should target in the next five years

Technology trends move fast, and the tools for building those technologies constantly evolve. If you don't lift your head up to look past your current projects, you could end up coding yourself down a rabbit hole.

To help you prepare for a future that's screaming across the sky faster than we can see, we've compiled a dozen predictions about how the next five years of programming will shake out. Our crystal ball is very subjective, and some of the following conjectures might not prove universal. Some won't be fully realized in five years. Others are already true, but their truth is not as well-established as it will be soon.

Read ’em quickly because the future is changing faster than we know.  

GPUs will be the next CPUs
Wikipedia

GPUs will be the next CPUs

Gamers love to brag about their graphics cards, and the rest of the world is catching on. Most early forays into using GPUs are for graphical processes, but applications that have little to do with pictures increasingly are being rewritten to use the parallel architecture of GPUs. Physicists use them to study matter; astronomers simulate the galaxy with graphics cards; biologists crunch statistics via GPUs for population studies.

Such applications will only become more widespread as compilers begin to do the work of detecting when code can run effectively on the GPU. Academic tools do this at a limited level, but it will become more popular when it is easier for everyone to do so with any project.

Databases will perform increasingly sophisticated analysis

Databases will perform increasingly sophisticated analysis

Databases of the future are certain to do more than just store numbers. Many already have sophisticated report engines (aka business intelligence), and these extras will become more powerful, enabling databases to run more sophisticated algorithms on tables, search more efficiently for patterns in data, and do much of the work currently touted by the buzzword "big data."

This power and sophistication will be driven by the cost of moving data around. Leaving the data in the database and letting its engine perform the analysis will be much faster than extracting it to a separate big data package because it will limit the overhead of communication and decrease the amount of programming necessary to extract value from the data store.

JavaScript for everything
Wikipedia

JavaScript for everything

JavaScript won't be the only language in the programming world, but it will begin to seem that way. JavaScript is inescapable on the browser, which dominates almost everything a client computer does. Now the server side is embracing it with tools like Node.js.

JavaScript will become more dominant in other areas as well. After all, most mobile developers can get the performance they want out of HTML5 applications running in browserlike views. The result may not be as zippy as native code, but JavaScript is good enough and portable to the Web, too.

The browser isn't just colonizing phones; it's eating entire platforms. Chrome OS and Chromebooks are making regular OSes obsolete. Why worry about that layer when JavaScript and the browser can do everything?

Android on every device

Android on every device

When the browser doesn't win, Android is close behind. Camera designers, threatened by cellphones with good lenses, put Android on cameras so you can run Instagram on a Nikon. There are Android refrigerators, car stereos, televisions, even headphones. Some complain that the UI is too complicated, but that's missing the point. The UI layer can be simplified. If Android is underneath, the platform will dominate.

Plus, PC manufacturers are feeling left out. Their solution? Run Android on Windows and let people use Android apps on their desktops, too. Some run stock Android emulators, but others are creating brands like "PC Plus." Once Android takes over the PC, it may combine with the browser to push Windows apps into a distant third place on the box.

The Internet of things -- more platforms than ever

The Internet of things -- more platforms than ever

One side effect of Android (and Linux) colonizing the world is that more objects will join the Internet of things. Of the many platforms to come, the most important will be the car. Navigation and shopping are just the beginning. When the autonomous cars roll out, there will be even more opportunities for developers to cash in on car location and information.

The key is figuring out which features are essential to each domain. While OSes like Android offer a unifying core, each platform will require customized features. Robotic toys may need content filters to provide age-appropriate content. Thermostats will want to interact with weather forecasts. Building these APIs with the right features will be key.

Open source will find new ways to squeeze us

Open source will find new ways to squeeze us

For all of the success of open source stacks like Android, Ubuntu, or MySQL, there remains a sticky problem with finding the revenue to support development. Open source code helps hackers, but there aren't many examples of companies building a stable open source ecology that let programmers buy health care or food.

The vast majority of open source companies distribute what might better be called a demonstration version under an open source license. Then some kind of secret sauce is locked away to give the programmers something to bargain with. It's the way of the world. Why buy the cow if you can get the milk for free? The best open source projects will find a way to tighten the screws without scaring away customers.

WordPress Web apps will abound

WordPress Web apps will abound

The biggest mistake the Obama administration made was building its insurance exchange websites from scratch. No one does that any more. Why bother when you can add a plug-in to WordPress? If you're really picky, you could work with Joomla or Drupal. The point isn't which platform, just the fact that there are fewer reasons to create your own Web apps because so much functionality is built into the frameworks.

The game gets more interesting when you hack the code. WordPress has its own editor built in, so you can develop inside WordPress, too. There's no debugger, but you can get around that. If WordPress adds a nice database browser like PHPMyAdmin and provides a bit of basic debugging tools, development will accelerate.

Plug-ins will replace full-fledged programs

Plug-ins will replace full-fledged programs

Basic Web apps aren't the only ones riding the power of code snippets plugged into a bigger framework. Photoshop used to be the dominant engine for reworking images, in part because of its fertile plug-in ecosystem. Now apps like MagicHour have made plug-ins even simpler. Most major platforms offer a good plug-in API, and the ones with the best have fertile ecologies filled with thousands of modules, libraries, and plug-ins.

This burgeoning ecology means programmers will write more snippets and fewer applications. The right bit of glue code can be a million times more powerful than a great, hand-built application with megabytes of binary. A small snippet can leverage everything in the ecology. A big app must do everything on its own.

Long live the command line

Long live the command line

While it’s become easier to click your way to a working app, a surprising amount of work is still done in text editors and terminal windows. So, contrary to what you might think, the command line will not go away. In fact, more modern tools will work only with the command line.

Command lines are too flexible and too universal to be supplanted. Pretty GUIs with clicky interfaces and drag-and-drop widgets get attention, but programmers keep reverting to text.

Ease of scripting is at the center of the command line’s continual resurgence, and it will live on because it's simple and extensible. If you have a script, you can easily extend it and glue it into other scripts.

Dumbing it down will fail
iStockphoto

Dumbing it down will fail

For 50 years, programmers have tried to make it easy for people to learn programming, and for 50 years they've succeeded -- but only at the most basic tasks. That won't prevent well-meaning folks from trying to dumb down programming even more so that everyone will be able to do it. Evangelists will sell big dreams of a world where everyone programs, and they'll wheedle big grants with claims of building competitive workforces.

Alas, true programming means understanding the unseen numbers dancing around in the little box. It means understanding the conventions for creating software and for partitioning responsibility, so the software can run cleanly. Teaching everyone to grok if-then-else clauses is a nice idea, but it's not the same as creating more programmers.

Outsourcing and insourcing will remain deadlocked

Outsourcing and insourcing will remain deadlocked

One standard prediction is that all programming work will flow to countries with the cheapest wages.

This bold law of economics is mirrored by the prediction that low-end work will be replaced by automated tools and the real jobs will be for those who understand the business.

Both will be true. Outsourcing teams will win jobs with low bids but also be squeezed by new automated tools. One set of websites makes it easy to hire low-wage workers across the globe. Another set of sites makes it easier to go from 0 to 60 without hiring anyone. Squads that depend on outsourcing contracts will find themselves bidding against internal teams of people who know the business and don't need help.

Management will continue to misunderstand coders and coding
VTsybulka

Management will continue to misunderstand coders and coding

One of the most painful conversations is listening to nonprogrammers in suits make requests. Sometimes these requests work out, but often they end in frustration, as the suits don't get what they want.

The suits could spend the years learning the technology, but it's simpler to hire some youngsters. Their inability to understand basic technology is one of the biggest reasons for age discrimination. The only solution that comes to mind is to search for some unicorn 22-year-old programmer.

The companies that find a way to harness the talents of everyone else are the ones that will find success. They'll work at a sane pace to create stable software that offers just enough features to be useful.