Listing all of the recent advances in programming tools/technologies would be a daunting task; by the time you finished your list, there would be more to add to it. Peter Wayner of InfoWorld published a short list of “15 technologies changing how developers work.” While the article has some spot-on remarks, much of it feels outdated and/or pointless. Because a comprehensive list of modern developer technologies would be crazy long, I’m only going to comment on what the author has listed.
The intro that explains how programming is markedly different than it was even five years ago is accurate for the large majority of today’s development work, but a “Rip Van Winkle-like developer” could wake up to the same job maintaining assembly code that was written 30 years ago. Many developers would argue that most of the technological changes amount to semantics; frameworks, libraries and APIs are not new, but the names and terminologies have changed.
Many of the tools listed are a natural consequence of advancements in hardware and the growth of large applications. Continuous integration, infrastructure as a service and virtual machines are not new, but they are better and more prevalent due to advancements and price drops in silicon. Software has grown much more complex over the years, and predictably frameworks, libraries, APIs and browsers have become more rich and complex. A large proportion of development projects today are architected from those frameworks and libraries instead of from languages or platforms (e.g., operating systems).
For all the time that computer programming has been around, the real shocker may be how very little the tools have changed. I feel that I could have accomplished the exact same apps that are programmed today, albeit 20 years ago it would have been a lot slower.