The task of programming is a difficult one. Over the decades there have been many promises to eliminate this difficulty. It is interesting to recall that Fortran was first promoted on the basis that it would do away with programming, and allow scientists to enter their mathematical equations directly into the computer. Yet, the difficulty of programming has not gone away, and indeed, the task is more difficult now, especially because of the widespread introduction of parallelism into all realms of programming.
In universities today, many professors find that students shy away from difficult problems and challenges. As a result computer science programs have been made easier and “more fun,” and many recent textbooks reflect this worrisome trend. What we need is not students who find easy stuff fun, we need students who find difficult challenges fun!
In this climate a textbook that tackles the most difficult area of programming, the creation of complex embedded systems in which parallelism and real-time concerns play a major role, is very welcome. We entrust our lives to such complex systems all the time these days, in cars, planes, trains, medical equipment, and many other circumstances.
This book addresses the task of teaching the complex elements required to create such systems. The choice of Ada, though unfamiliar for say the creation of simple web programs, is a natural one for two reasons.