About Ada Advocacy:

All Ada developers know just how good Ada is. But what about non Ada developers? What about people curious about learning to program in Ada, Should they do it? The answer, in my opinion, is yes and this section are all the reasons why the answer should be yes. There are many of them, and so the following list is somewhat of a table of contents of the rest of the page. Let me know of any other features I haven't mentionned yet, in any of these categories, and I'll add them promptly. Also these are the results of my research, if for any reason, anything mentionned here is false, let me know so I can take it out promptly.

 General Ada Advantages:

General Advantages pertain to the overall usage of the Ada Programming language in a development project. As such, Ada has many points to its advantage.

  • Code Organization:
    Ada allows for a very organized code base of inter-related files. Although most IDE for ada support the concept of projects, Ada, by design, doesn't need one. Much like pascal (although in a more organized way), the packages stated under the with and use clauses determine which files are required for the compilation process.

  • Easy Maintainability:
    Indeed, because of the structure of all the files that pertain to a given development project, one can make things very easy to follow. Then when a source file is opened, the code will usually be clearer and easier to maintain than any other language.

  • Multi CPU/System usage:
    Ada gives the ability to use multiple CPU's or Networked System to get a given processing job done as fast as possible. Something not present in other programming languages, not by design.

  • Multi Platform support:
    The GNAT compiler can be used on many platforms, DOS, Linux, Win32 (console and GUI). With the many bindings avaible for the Windows API, GTK and others Ada becomes a great tool for development applications for any OS and GUI platform.

  • Reliable programming:
    Ada was designed, from the grounds up, to be a reliable programming language. These reliable features of the language really show through the whole coding process.

 Specific Ada Advantages:

Specific advantage dwelve in more details specific features of Ada. We'll focus available features exclusive to the Ada programming language. Namely:

  • Multi-tasking features:
    Ada has a full syntax complement for dealing with multi-tasking. Including Sharing of information between tasks and control of a task's execution and termination that you just don't get in other programming languages.

  • Realtime Features:
    When it comes to dealing with realtime applications, Ada is the only high level language that has its precision, high definition, timer. This makes programming of realtime simulations and applications a breeze. And not just in mission critical situation like it's being used today. I can think of, for instance, the most stable and precise software timer for say a music studio application.

  • Language expandability:
    Ada's Package architecture make it a very easy language to extend to give it more functionality. Other languages allow this as well, but because of what can go into a package's specification, it allows for a very specific organization of your code into a very maintainable package.

  • The Ada D.S.A. (Distributed System Annex)
    Some of your may not know this (others may) but Ada offers an alternative to CORBA for Distributed System development. The D.S.A. is a complete annex to Ada 95 that offers a different and great way to developed distributed systems. Take a look in the Reference Links below to get to a PDF file that shows a good example of how things work in Ada for Distributed development.

 Language Level Advantages:

Here we'll tap into the heart of Ada, its language features. Ada has many specific features built right into the language that gives you unparalleled control over what happens in the execution process of your code.

  • Variable Properties:
    When declaring a variable, say an integer in this case, it contains a set of properties to help you in for example data validation process and display. Such properties as Variable'Min and Variable'Max to help determine the range of possible values that can be inserted into your variable. There's more properties as well to give you full control over all datatypes available in Ada. All these properties are also useful in the debugging process.

  • Procedure/Function overloading:
    Ada allows for multiple declarations of procedures and functions with a different set of parameters and likewise different execution steps can be executed as per which declaration is used when calling the given procedure or function.

  • String Tokenization:
    Ada comes with its own tokenization package which means it's trivial to do such task as string parsing based on a given set of valid tokens. Such as a scripting language, or perhaps, even any full fledged programming language recognition models.

 Reference Links:

This section presents a list of URLs that will give you even more reasons to to get yourself into Ada programming. and highlight even more features of the Ada language that I have not convered in this page.