Wednesday, February 24, 2016

9 predictions for the future of programming

Some scientists say time moves forward at a constant rate. The clever ones argue that everything changes near the speed of light. But none of this explains the increasing rate of change in the world of tech. It keeps accelerating a bit more every time you look.

If you’re wondering where to place your next development bet, looking five years out can seem like mere guesswork. Anticipating tech’s future is nearly impossible, much less the skills and tools that will be relevant given the impact of innovations to come. But there are inklings that can be gleaned from the tea leaves of today’s tech landscape -- glimmers of the future of programming through the fog.

Here we gather a list of projections for programming’s future based on today’s most intriguing evolutions in tech. Not all are guaranteed to come true; not all are even guaranteed to be new. Many are trends that started unfolding several years ago. And if you compare this list to our previous foray into prognostication, you might find a bit of backsliding. Despite this, these predictions offer a solid road map that will help us plan for the future as it unfolds before us, faster and faster.

Prediction No. 1: REST rules IoT -- at first


The REST protocol has taken over the Web and it’s bound to maintain this dominance, as every thermostat, doorknob, and kitchen doodad vies to become a full-fledged, packet-swapping member of the Internet. They don’t call it the SCSI, USB, or SATA of things, do they?

The reasons are obvious. Programmers love REST’s simplicity. Thanks to its basic architecture, REST is easy to understand and relatively simple to debug. There’s nothing quite like having all the data in text form to make it that much simpler to figure out what’s happening. Don’t be surprised when that new security camera, microwave oven, or rotary nose-hair clipper boots up with Nginx running on port 80, reporting all of the latest news of the device in HTML and CSS.

Prediction No. 2: Binary protocols rise again


Passing data back and forth in JSON packets with REST protocols may be simple, at least compared to the old world of XML data and its 90 percent payload of tags, but some superefficient programmers have been left to wonder why they must convert binary data into a string so that it can be represented correctly in JSON. After all, the other side is only going to parse the string and turn it back into bytes. Why not ship the bytes directly -- especially if the Internet of things is going to be phoning home all the time with only a few bytes of data?

Building more binary protocols will be an uphill climb. The HTTP standards seem inherently textual. Many programmers have had bad experiences with proprietary binary protocols that can only be unpacked by proprietary libraries, which may or may not work as promised. The openness of JSON and REST has been winning, but that doesn’t mean an open approach to a binary protocol can’t bring efficiency to open standards. The Internet of things will generate more data than ever and many devices will use plenty of small packets that require tighter encoding. When that kind of performance is necessary, programmers will start looking for ways to add more binary efficiency to their packets.

Prediction No. 3: Video kills the HTML star


Once upon a time, we surfed the Web, jumping from website to website, grazing on text, and clicking through hyperlinks whenever we wanted to learn more. Now we binge watch for hours or even days, rising from the sofa groggy and lethargic when the episodes run out. If we touch the keyboard at all, it’s to search when the next “season” will be uploaded to Netflix. The Internet is morphing into television, and the video streams are paving over the interactive forking paths of text with a steady stream that does the thinking for us.

This isn’t completely true, and some even suggest the Internet is liberating television. People snack on television clips on some websites. I have no idea whether “Saturday Night Live” is still broadcast on Saturday night or if it’s ever really filmed before a live audience, but I do know that you can see each of the skits in a separate clip at a website. Does it still have an opening monologue? Is there still a guest host? Who knows?

But for all of this, there’s little for the couch potato to do except absorb moving images. There’s little clicking and barely any steering. Perhaps the next generation of video apps will add another layer and improve the tools that are already there. The death of Flash and the ascendance of HTML5 open up the possibilities to merge video clips with HTML. Maybe the programmers can take advantage of some of the opportunities. Until then, the users will be sitting there watching TV in much the same way that our grandparents did in the grainy old days, even if it is streaming from an Internet giant and not a three-letter national broadcasting company.

Prediction No. 4: Smartphones will do everything but phone calls


Does anyone talk on a smartphone anymore? We send text messages, read email, visit websites -- and that’s only the beginning. The little rectangular screens have been revolutionizing every part of our lives for more than a decade, and the changes are beginning to get interesting. As we add more sensors and find clever uses for the microphone, camera, and accelerometer, no business or hobby is safe.

Consider the old world in which medical assistance was delivered at a doctor’s office after waiting for hours. There are hundreds of startups looking for a way to turn the smartphone into a medical device. The microphone can pick up your heartbeat. The camera can look at the back of your throat. The accelerometers can track your exercise. All of these can be linked to a cloud full of doctors who can pass your case onto someone who specializes in what ails you.

Yes, the next generation of smart devices will make the current set look basic. The navigation apps are morphing into route reservation and planning apps that do everything but steer the car. The exercise tracking apps are becoming tools that track all of the rhythms of our body from sleep to work. And perhaps someone will still make apps that have something to do with the fact that these devices may or may not be used to make phone calls.

Prediction No. 5: Bigger, better databases will dominate


Sure the search engines indexed the Web, but now there are databases indexing the world itself, thanks to increasing demand from next-generation location-aware apps and autonomous cars. Apps such as Waze track the flow of all of their users, giving their developers and users a map of the world as it exists, not as it was drawn by a cartographer squinting at an aerial photograph. If a road crew blocks a lane, they know. If a cow stops traffic, they know. If a civil engineer adds a new road, they find out before almost everyone else.

The level of detail from databases such as these will be amazing. Autonomous cars, for example, will need to know the position of lampposts, newspaper vending machines, and fire hydrants if they are going to ever be prepared to spot that proverbial kid chasing a ball into the road. This data will be full of undiscovered promise, beyond autonomous cars. Cities will be able to resurface roads when and where they're needed. Streetlights will be readily replaced when they go out. And yes, the police will have more data than ever about the people walking on the streets.

Soon we’ll have databases recording the location of every pothole in the country. Will the cities fix them? That may be too much for this generation, but the robots are coming.

Prediction No. 6: JavaScript will dominate, but no one will write it


If we don’t write JavaScript, who will? Transcoding robots, that’s who. We’ll write our code in any of a dozen dialects and the transcoding robots will turn it into something that the browser or Node.js understands. More and more code on GitHub can’t run without being “compiled” by something.

The most prominent are pinky-saving dialects, such as CoffeeScript, that strip away much of the punctuation that bothers some programmers. There are dozens of variations on CoffeeScript, including Coco, IcedCoffeeScript, and CoffeeScript II: The Wrath of Khan. These are only the beginning because clever programmers have written transcoders for languages as diverse as Cobol, Java, Lisp, and C. All of them can now run in your browser after being lovingly translated and optimized for fast delivery and parsing. Why actually write in JavaScript when you can have your robot software concierge translate your favorite language?

Prediction No. 7: PHP will battle back against Node.js


... but only to preserve legacy apps from being rewritten. A few years ago it felt like PHP would gradually fade away as Node.js and JavaScript ate the server farm. That still might happen, but PHP is going down with a fight. The newest versions of just-in-time tools like PHP 7 and the HipHop Virtual Machine are offering dramatically faster performance. Because of this, codebases such as WordPress or Drupal are running 30, 40, 50, or even 100 percent faster.

This doesn’t change the other advantages JavaScript offers in devising in projects, like the way it enables the same code to run on the browser and the server, but it removes one of the biggest reasons for abandoning an old code base written in PHP in favor of Node.js. These old platforms will have new life after all.

Prediction No. 8: Everyone will know how to program -- but few will write “real code”


Education projects have everyone teaching everyone how to write software. On Dec. 8, 2014, President Obama took time out from fixing the Middle East and fighting terrorism to spend an hour learning how to write a single line of code. Did his hack fest make the roll out of the next generation of the Obamacare website any smoother?

The obsession with teaching everyone, including maybe someday our dogs and parakeets, to program will continue for years to come. The best strategy for real programmers is to smile and encourage them. The more the general population tries programming, the more they’ll realize how hard it is to juggle all of those numbers, APIs, and whatnot. It’s one thing to write a line of code as President Obama did. It’s another to build out an entire system with thousands if not millions of lines of code.

There will be some who pick up a language and soar, but many will pull out their hair and silently scream. Anyone can write a loop, but only a few can choose the right loop. Everyone learned how to cut wood as a kid, but they still call carpenters to build houses.

Prediction No. 9: The pointy-haired bosses will be even more insufferable


Now they’ve done it. The suits learned to write software in one of those Hour of Code sessions and now they want to help.

“Are you going to use a variable there?” we’ll hear. “Do you think a constant makes sense? I’m guessing you’re going to want to use a loop here. “

Just smile and thank them. It’s all you can do.

Wondering how we’ve fared thus far in our last round of predictions for the future of programming? Check out what our crystal ball told us two years ago, and weigh in on the comments thread with your verdict.

This story, "9 predictions for the future of programming" was originally published byInfoWorld.

No comments:

Post a Comment