Wanting to get a few opinions on 2021. The programming language landscape ten years from now. What will be the frameworks Java/.net neither?
A few thoughts bouncing around.
1. Where will Java be?
- Will oracle use java 7,8 & 9 as a way to buy another 5 - 10 years. How long can java last as is?
- Is the JVM the real jewel? Would you think oracle would move to capture a competitor like scala and drive it as their future?
2. Microsoft's .net is going strong now, but with their inability to get solid uptake on mobile devices will this limit its future? How will they secure their future throwing more languages on top of the .net platform isn't a solution.
3. Flavour currently is dynamic languages, but these languages don't seem to make it into mission critical applications where compiled type safe languages rule. Could a new VM such as Rubinius be a sign of the future? Dynamic language and VM that provides the programmer with a stronger development and reporting tools signal a possible path to dynamic languages getting a buy in to business critical apps a possibility?
4. Will a language get a balance of OOP and functional styles? Allowing more realistic modelling of the real world. Is this a possible reason for the quickly rising popularity of Clojure?
5. Will Google's Go come along and take over?
Anyway, I would like to here your thoughts these are just my questions, you would have your own likely. What does your inner Nostradamas say?
If I would have money and power, I would do something like this. To me it looks like a computer is enogh big thing, even though just created, but that it is enough complicated to be observed scientifically like a "box" with a probes, no matter how carfully planned it was. All what is going on goes through CPU in the form understandable to CPU. To me it looks like everything can be described in an assembler, as it is anyway finishing in being assembler (machine lang). That means to me that if everything what exists in a computer, if transleted only to some assembler, then there would be many things repeating. If I would be able to do that, I would make something that would be able to "translate" everything into one single thing and then make an algorithm to search for algorithms in all what is in computer. Finding similarities, from all the routines I would mathematically build "central library" of mathematical abstract part. The "central library" would grow, now I am inventing this on a "fly", in a few directions, in directions of pure math abstractions , in direction of abstractions towards the hardware, and directions towards the app layer. (Now I continue what I allready have imagined). It would be a big woolen muffle of binary flags, or something like that. On the same way with the same algorithm I would mathematically create the most abstract pure middle programming language, which would be just a mathematical creation, and from that pure middle I would make it stretch towards all known languages. With this I would have completely improsoned mathematical abstraction of what makes a language a language (programming language). With some software package I would be able to create whatever languages. That would be an interface between mathematical binnary muffle and a Human. I would also be interested in how does a physical world influence "rules" in a programming language, and I would try to mathematically describe that. After that, maybe, it would be even possible to create systems that can not possibly exist, but knowing exctly how and on which way it is far away from what is possible, like maybe: "How computers look a like in a parallel universes which have different physical laws". I am imagining this for the first time: That would create new proffesions, like... a programmer of a language which exists only in a parallel universe.