Right, I'm thinking that X will happen to Python/Ruby like Python/Ruby happened to Java.
A 5x improvement is a lot to ask for...I don't think that Python/Ruby offers 5x over Java, and to get 5x over Python/Ruby will be very hard. Even describing software in reasonably precise English probably doesn't offer 5x over the state of the art.
On the other hand, 50% is definitely feasible. The form this will take is a combination of, among other things:
- Moving away from the dynamicism of Python/Ruby: by sacrificing just a little bit of the dynamicism (like assigning to a variable by string name) you can gain a lot in terms of what IDEs can do and what compilers can do to optimize.
- New constructs that replace the dynamic metaprogramming in Ruby/Python with static metaprogramming, like Lisp's macros and F#'s type providers.
- Merging OOP with functional programming by unifying FP's abstract data types and pattern matching with OOP's classes and runtime dispatch. The resulting system will be something like multimethods or predicate dispatch.
- Testing tools will get more powerful. Randomized testing will play a more important role. We'll get statistical analysis in IDEs that can sometimes pinpoint the line that's causing a bug by running the randomized tests and computing the correlation of "line n was executed" with "the test failed".
- Last but not least, the days of ASCII based programming are over.
> I dont think the shift will be programming language based because the decision makers dont pay attention to programmers. (I'm speaking the enterprise world here, not startups.) But I hope you're right, not me. :-)
I agree. As usual the enterprise world will lag a few years behind...around the time they adopt Python/Ruby/F#/etc, the startup world will have new languages and tools.