Having been mainly used C and C++ in real-time systems design for many years, this is my first time to consider other languages which can handle concurrency and meet the requirement of hard real-time systems.
During my time looking for a research position in the Real-time Systems Group in York University, 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 (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.