A few weeks ago, I spoke at the No Fluff Just Stuff conference (highly recommended, by the way). During one of the speaker panels, one of my answers got blogged.
The question was addressed to the entire panel and was, approximately, “What do you think the big changes in 2009 will be?”
Ted Neward started the ball rolling with new languages emerging, Java much smaller than it is today and gradually dying, and maybe aspects a big thing. The next guy said similar stuff. And then it was my turn (and Stuart Halloway was after me, and I just knew he was going to talk about being test-infected and dynamic languages as well).
So I said was something like:
- There won’t be any widely adoped new programming languages.
- Instead, we’re all going to be worring about how to deal with huge masses of semi-structured and slightly incompatible information.
- Libraries like GATE will be a big part of this. Simply finding relevant information is going to be hard, and fields like computational linguistics will become more and more relevant to the task.
Now, in retrospect, that was much too coy, and I can see how it might have been heard as “talking the google line.” If we’d had more time, or if I had Ted’s carefully honed gift for pithy declarative statements, here’s what the “there won’t be any widely adoped new programming languages” part would have looked like:
- The rate of programming language change and adoption in the mainstream is going to continue to slow down. Basically, software development is a huge business and it’s got a lot of inertia. The switching costs for a new language are huge.
Much as I’d like to go and deeply learn Ruby, I’m not going to because it doesn’t offer a lot of extra bang for the learning buck right now. And, by the time it does, if it ever does, it’ll be too huge to learn easily. One of the great tragedies of software development is that you have to learn early, and gamble that you learned the right thing.
- The style of apps we build will more or less be the same. Dave Thomas likes to point out that the web is similar to 3270 programming, and he likes to do so in a tone of voice that suggests this is a scandal akin to Tony Blair dumping Cherie for Bjork.
But, hey, look at it the other way: in 50 years of computing, we’ve only found one architecture that consistently works on a large scale. Why assume that will change?. I’m with Adam Bosworth on this one– web interfaces are generally the right solution.
- Which is not to say I think that web-browsers are always the right solution. I think web browsers are good enough for 80% of our apps. But I do think that “web-architectures” (fat server, thin client, markup delivered to interpretation engine) are good enough for >95% of our apps (yeah, I know. People have been predicting the success of SVG for a while now. This goes a little beyond that though).
- In fact, I think we’re about to see one of the big architecture flips that our industry is so enamored of. Server-side container architectures are slimming down and becoming less overwhelming. But client-side containers (and that’s really what a web-browser is) are going to take off. I wouldn’t be surprised to see several more XML-based markup languages with their own containers emeerge by 2009. And people are going to be having fun with Eclipse.
All of which is to say: I don’t think there’ll be much change between now and 2009 in terms of what programming languages we use.
In my next weblog entry, I’ll explain why “Instead, we’re all going to be worring about how to deal with huge masses of semi-structured and slightly incompatible information”
isn’t just walking the google line.
Am I wrong? What do you think will be vastly different in 2009?