http://java.dzone.com/videos/future-programming-languages. It is a very interesting lecture from Anders Hejlsberg at JAOO Aarhus 2008.
For some time I've noticed that I am somehow bounded to the C++ language. And I can not leave this state! I know some more programming languages of course but currently C++ is my main choice.
It is needed to have some different experience so that in the near future I will try to learn some new things. As usually I had to make some research what to do next :)
When doing this research I've spotted a nice lecture about future of programming. Here are some main points from that presentation:
- Programming languages do not change so often. Although the hardware is 1000 faster then it was 20 years ago, we have mostly the same syntax structures.
- In the past we focused more or less evenly on the language syntax, platform API and the tools... but now there are tons of new platform specific APIs and more great tools. When we take the .NET platform for instance we can see that there are 10 000 methods, objects. It is daunting task to learn those things. Although the syntax is more or less the same we can be more productive by using better IDEs, profiling tools and so on. Of course it is difficult to know all the best things for our language and the environment we are programming in.
- We see increasing level of abstraction, we moved from assembler to procedural style, then object oriented and now the managed... what comes next?
- We would like to focus on "what" not "how". And that is why there are lots of new DSL sub-languages like LINQ, XAML,.. that enables us to say what we want instead of explicitly saying how to to that.
- Functional languages are becoming a bit more popular recently.
- And of course dynamic languages are a very "hot" topic right now.
- Concurrency but with the assistance of compilers and frameworks. Let them decide how to run the core in the best way.
- Compiler and the interpreter as a service.
- All in all the speaker predicts that in even 25 years we will still be writing the code, not gathering code from various sources and producing the single application.
- look at F# language, seems to be very interesting. It is based on functional language but also provides some imperative way of programming. I could try this.
Those were some first thoughts and conclusion on that case. Maybe I will update this post someday :)