About Ada

Why Ada?

Simple "Advanced" Features

Some of the best features of any programming language are simple to perform using Ada. Changing from C or C++ to Ada doesn't sacrifice any feature, but simplifies workflow.

  1. Packages (modules) of related types, objects, and operations can be defined.
  2. Packages and types can be made generic (parameterized through a template) to help create reusable components.
  3. Errors can be signaled as exceptions and handled explicitly. Many serious errors (such as computational overflow and invalid array indexes) are automatically cached and handled through her exception mechanism, improving program reliability.
  4. Tasks (multiple parallel threads of control) can be created and communicate. This is a major capability not supported in a standard way by many other languages.
  5. Data representation can be precisely controlled to support systems programming.
  6. A predefined library is included; it provides input/output (I/O), string manipulation, numeric functions, a command line interface, and a random number generator (the last two were available in Ada 83, but are standardized in Ada 95).
  7. Object-oriented programming is supported since 1995. In fact, Ada 95 is the first internationally standardized object-oriented programming language.
  8. Interfaces to other languages are included. At least one Ada compiler (from Intermetrics) can generate Java Virtual Machine (J-code) from Ada, so people can use Ada to develop Java applets and applications.
  9. Tasking and parallelism play an important “first-class” citizen role.

For all these and more reasons, Ada has became the language of choice for complex embedded systems in which parallelism in real-time.

We entrust our lives to such complex systems all the time these days, in cars, planes, trains, medical equipment, and many other circumstances.

I think we should rely on the best, comprehensible, and less error prone tool for this systems.

Don't you?