Learn Ada and Real-time Java
Having been mainly using C/C++ in real-time systems for many years, this is my first time to seriously consider other languages which has the capability and primitives to handle concurrency and meet the requirement of hard real-time systems.
During my time looking for a research position in Real-time Systems Group at University of York, I firstly realized there is another language – Ada – which has been used in military, aerospace and industrial systems for more than three decades. It is a shame that I didn’t get a chance to know its name, even I was working in industrial and automotive filed. Ada has a fruitful environment for real-time systems design and was first introduced by the US Defense. It has advanced features such as rum-time checking, parallel processing and OOP support.
To be honest, according to my previous experience with the Java language, I never expect it to be used in real-time systems. However, things are changing and there is a trend to use RTSJ (Real-Time Specification JAVA) in control and military peripheral systems (but not core systems). I think it will take a long time before RTSJ displaced the dominant position of C in embedded systems, but I think it is worthy to learn the language features that Sun and IBM are trying to change with current Java language