What does the future of software development look like? For the first time in decades, it appears that no one knows.
It used to be fairly easy to peek a few years into programming's future. Languages evolved according to a predictable path from lower to higher levels of abstraction. We incorporated objects, then visual development environments, then Web architectures, then managed-code platforms. Development methodologies and project-management philosophies approached with plenty of warning – it took no special insight to see them coming.
My subjective feeling – backed up by a few hours of earnest Googling – is that all of that has changed.
The future? Well, let's see. We have some broad agreement that development methods will become more agile, though we are not entirely sure what agility means. It seems clear that the future will be cloud-oriented, though every definition of “cloud” is different. Our code will need to adapt to the availability of parallel architectures, though we can't say whether the parallelism should or will reside primarily in the code we write, the libraries we incorporate, the tools we use, or the architectures we employ. Security, mobile platforms, portability, interoperability, declarative programming, functional programming...all are likely to be important. One way or another.
As for languages – oh my! At the moment it appears that every nontrivial app will incorporate modules, libraries, frameworks, and custom code written in multiple programming languages. Or maybe we'll resolve that complexity by adopting a new language with the flexibility to address all the challenges we face.
For once, the pundits are quiet. Search the net for predictions about the future of software development and you'll retrieve a list of Web pages that are years out of date and devoted to particular narrow problem or language domains.
We are in need of the same sort of paradigm-buster that object-oriented programming and visual development environments were, back in the Windows era.
Search long enough through all the partisan arguments and language-specific rants, and one name keeps coming up: Anders Hejlsberg.
Hejlsberg has been around the programming world since before the IBM PC. He is the original author of Borland's Turbo Pascal and Delphi, and since he joined Microsoft he has created C# and become director of Microsoft's programming-language strategy.
You can learn more about Hejlsberg and his views in these videos:
(Disclaimer: Hejlsberg's views are pretty much guaranteed to be the official views of Microsoft. I'm the last person to sign up mindlessly to Microsoft's view of the world. While I don't see the company as a customer-exploiting evil empire, neither do I think it has always acted in the development community's best interests. Although I owned and edited Windows Tech Journal, my relationship with Microsoft was always an arm's-length one – much, as it turns out, to my personal cost. But that's a long story for another day. What I'm trying to say is that you have a responsibility to take Hejlsberg's point of view with a grain of salt.)
I think the Hejlsberg videos have great value. They identify both the challenges facing our community and some of the technologies and approaches that will help us address them. Hejlsberg has proved himself to be a visionary throughout his career, and he is uniquely positioned to see the problems and possible solutions that we will encounter in the next few years.
What's your view of the future? Drop a keyword or two into the comment section below and I'll use your feedback to shape a future post. Because ultimately, the future isn't something that just happens. It's something we create. Together.
Web recommendation: Research for this post brought me for the first time to Microsoft's MSDN Channel 9. This Web site contains hundreds of videos about (Microsoft) technology and how to get the most out of it. There's a predictable amount of corporate flag-waving, of course. But there's also tons of useful content. I have some reservations about video as the medium for dispersing such information – text is more readily searched and recalled, in my view. But there's no denying that there's real value here, for free. And the site has a mission statement you can dance to. J.D. says check it out.
J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. He recently relocated to a small town outside Belgrade – stop by if your travels take you through Serbia.