Why Use/Study Modula-3 ?

Modula-3 encourages good programming practices and comes with excellent libraries for distributed programming and graphical user interfaces. The SRC Modula-3 compiler supports about 25 different platforms. Plenty of real world applications have been written in Modula-3, and they perform pretty well. When asked why choose Modula-3, one programmer gave many reasons:

1. The need for application level threads, and threads are an integral part of the Modula-3 language. About the only reasonable alternative was to use threads with C or C++. But threads was not well supported under FreeBSD at that time.

2. The need for a graphical display during development to monitor the 3 client threads as they were running, debug them, appraise their relative performance, and find the bottlenecks. Modula-3 has a very nice toolkit for creating GUIs quickly and painlessly.

3. Modula-3 is a compiled language that is reasonably efficient.

4. The need to use some low level system functions, e.g., mapping files into memory. Modula-3 provides good access to such functions, and it is quite easy to add interfaces to foreign libraries such as "libz".

5. Modula-3 has good support for networking.

6. It is a mature and stable language that has been used in a number of serious, large projects. The language and compiler have been stable for about 5 years, which is more than C++.

7. It has nice support for object oriented programming, including a good type system, a nice exception model,   and a modern high-performance garbage collector. These traits, IMHO, contribute powerfully to producing well-structured, maintainable programs.