Developer tool No. 13: Devops tools
Once upon a time, we installed software on a server -- singular. Now we rent servers en masse, requiring dozens, hundreds, or even thousands of machines, many of which need to be provisioned on demand, full of fresh software -- a job that can no longer be done effectively by hand.
Enter the "devops" trend and underlying tools such as Chef and Puppet designed to maintain these servers for you. Push new software to the cloud and these tools handle the job of keeping all the computers running the same code. They automate what we used to do by hand for one machine.
Some services such as Google App Engine already handle this internally. All you need to do is give it your app, and the provisioning is automatic. You don't even know what's going on in the background; you merely get a bill for the amount of CPU cycles consumed.
Developer tool No. 14: GitHub, SourceForge, and social code sharing
Code-sharing sites may be the greatest contribution to the open source world. Before services like SourceForge came along, software was something you built on your own and shared on your own. If someone wanted a copy of the code, they came to you and you sent them a tar-ball if you felt like it.
Now code sharing is a social network. Sites like SourceForge and GitHub post all the code for everyone to see and update. They merge the process of maintaining, sharing, and commenting on the code in one easy-to-access place. You can read the code and suggest changes, all through one interface. Is it any wonder that many projects see tens or even hundreds of thousands of downloads each week? That would never be possible with the old model.
This model is now so dominant that most proprietary projects follow it. Sites like GitHub and BitBucket support themselves by selling nonpublic repositories that offer all the power of sharing, but within a limited permission group.
Developer tool No. 15: Performance monitoring
In the beginning, tracking the power of your code was simple. You printed out the time when the code began, then printed out the time when it ended. If you wanted to be fancy, you added a few extra calculations to do the subtraction for you.
That can't cut it any longer. Many of the problems don't occur on one machine. Adding a profiler to your code won't reveal the real bottleneck, which could be caused by some weird interconnection or a sluggish database. Modern tools track the network calls for the network of software as well as the performance of individual modules. This is the only way to understand what is going right and going wrong.
This is just one important way of how the model of programming is morphing from a single machine to a network of connected tools that may or may not play well together.
- 12 predictions for the future of programming
- 15 hot programming trends -- and 15 going cold
- Dev-olution: Saluting 19 generations of computer programmers
- 12 ethical dilemmas gnawing at developers today
- Quiz: "Hello, world": Programming languages quiz
- Quiz: Programming IQ test: Round 3
- 15 workplace barriers to better code
- 9 key career issues software developers face
- Top 7 dilemmas facing today's developers
- 7 programming myths -- busted!
- 10 hard truths developers must learn to accept
- 11 programming trends to watch
- 12 programming mistakes to avoid
- Safeguard your code: 17 security tips for developers
- Download: InfoWorld HTML5 Deep Dive
This article, "15 technologies changing how developers work," originally appeared at InfoWorld.com. Follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.