15 technologies changing how developers work

The very nature of programming is evolving faster than you might think, thanks to these powerful tools

Page 2 of 4

Developer tool No. 3: Libraries

A close cousin to the framework is the library, a collection of routines so ubiquitous that coders can no longer live without it. Is it possible to write code for the browser without using jQuery? Does anyone even remember there's a built-in function called GetElementByID? Nah, libraries like jQuery now rule every level of the stack.

People talk about their favorite languages, but that conversation says little about how they program. If you're looking to hire someone, you need to ask about library knowledge. Is the JavaScript programmer from the jQuery or Dojo tribe? The game programmer may use C++, but the real question is whether the coder knows Allegro, Unity, Corona, or any of a number of other options. Knowledge of the library is as important as knowing the ins and outs of the language itself.

Developer tool No. 4: APIs

In the old days, programmers worried about data structures. They would pack all their information into blocks of bytes, count the bytes one by one, then make sure the values were placed the right distance from the pointer. Now, thank goodness, the compiler does most of that for us.

These days we work through a much more rigorous interface with a fancier name: an API. This is often on a completely different machine and may be run by a completely different company that is charging us for every call. Do you want a street address and a ZIP code turned into latitude and longitude? There's an API for that, and it costs a few slivers of a penny to find each answer.

In most cases, the data doesn't need to be so tightly packed. The old game of counting bytes has been replaced by parse-able data structures such as JSON or XML. You need to make sure you have the right punctuation in the right spot, but luckily there's a library to handle that for you.

Developer tool No. 5: Platform as a service

Who builds their own website anymore? Instead, create an account on someone else's website and customize it. All it takes is a few fields in a Web form, and voilà, your new website does everything you wanted. It's like uploading a cat video to YouTube or bidding on a Pez dispenser on eBay.

Of course, this is a bit of an overstatement. Many of the PaaS options today require a programmer's sophistication to know what to put in each Web form. Microsoft's Azure, for instance, wants you to put in a few JavaScript functions that characterize how the website should respond. Then Azure wraps them up with the right libraries and starts them running on Node.js.

Developer tool No. 6: Browsers

There was once a time when people wrote software for desktops, software for servers, and software for devices, and it would all be different. Each had its own way of communicating with the user. Now everything goes through the browser. When I set up a local file server on my house to hold music, I go to a URL and work with a website. Widgets for Apple's desktop have been written in JavaScript and HTML for years. Many cross-platform mobile apps begin as HTML and JavaScript that's bundled with Apache Cordova.

Sure, there are holdouts. The best games are still custom work that doesn't need a browser, but that's changing, as more and more JavaScript developers figure out how to write the screen canvas object. Angry Birds, for instance, will run in a browser window.

Developer tool No. 7: Application containers

Building a server used to be hard work. The programmers would get their code running, then send a memo to the team of server curators who'd install the right software. Sometimes they got the right libraries and sometimes they didn't, but eventually we converged on something that worked.

Now application containers like Docker allow us to push a button and ship off a container with all the right libraries. If it runs on our test machine, it will almost certainly run on the server. Everything is bundled together, and most of the incompatibilities between our desktops and the server are gone.

| 1 2 3 4 Page 2