In VB.NET vs C#, round two, I realized that choice of IDE has a far bigger impact on productivity than which language you choose. Lately I've started to think the relationship between language and IDE is even more profound: the future of programming languages isn't a language – it's the IDE, dummy!
Let me illustrate with a question:
Which would you rather use: QuickBasic with the world's best IDE, or (insert your favorite language here) in Notepad?
We now have languages that are the product of thirty years of computer science, but visual IDEs are still in their infancy. There are some tantalizing screenshots of proposed IDE designs in Lutz Roeder's Interactive Source Code presentation (powerpoint), even though it's four years old. There are also some intriguing IDE ideas from Roland Weigelt in his "wouldn't it be cool" series of posts, where he summarizes with
It's kind of frustrating to see computers rendering 3D worlds with 100s of frames/sec, but source code editors advancing only in very small steps.
Amen to that. I suggest any future language development proceed in this order:
- Develop a kick ass IDE, incorporating the most popular features from existing IDEs, plus some innovations of your own.
- Hard-code your IDE to a specific language or two; make it completely symbiotic and as deeply integrated as possible with those specific languages.
- If you have any money left, pay third parties to design and sell IDE extensions. Take the most popular extensions, buy the company, and incorprorate those features in your IDE.
- If you're not out of money yet, hold a contest with cash rewards for the best user-designed IDE add-in. Buy rights to the top three and incorporate them.
- If you have any extra time or money left over – and you can't think of any possible way the IDE could be improved any more – wash it all down with the sweet nectar of syntactic sugar.
I don't think a one-size-fits-all-languages IDE strategy is sustainable. At least not if you want to be the best and most productive tool available. In the future, IDE will be synonymous with language.