« Back to the top page
IDG News Service

The A-Z of programming languages: Modula-3

Naomi Hamilton, Computerworld Australia07.15.2008
Tags
Comments 0
Like the story? Get Alerts of big news events. Enter your email address

initially had innovations in bytecode verification and Web applets, and later had the full support of a large company, while we were only supporting Modula-3 form a research lab. I believe the module system in Modula-3 is still vastly superior to programs such as Java, and that may explain continued interest.

Do you still use Modula-3 today? Is the language still being contributed to and updated?

While Modula-3 was my all-time favorite language, I stopped using it after leaving DEC. I used Java for a short period, and today I occasionally use C# and F#.

How do you feel about statements such as this in Wikipedia: "Modula-3 is now taught in universities only in comparative programming language courses, and its textbooks are out of print"? It's probably accurate!

According to Wikipedia, the Modula-3 "standard libraries [were] formally verified not to contain various types of bugs, including locking bugs." Why was this?

Type safety gets rid of a lot of silly bugs, but the main class of bugs it does not prevent are concurrency bugs. The expectation for Modula-3 libraries was that they would have a complete description (in English), of exactly what each procedure did and what it required. There was social pressure at the time to make these descriptions very precise. Some were so precise that they were amenable to formal verification. This was considered important for some base libraries, particularly in terms of locking behavior, because locking bugs were not captured by the type system, and were the hardest to debug.

In your opinion, what lasting legacy has Modula-3 brought to computer development?

I think what's important is that Modula-3 played a major role in popularizing the notion of type-safe programming. Cedar/Mesa was tremendously innovative, but was always kept "secret" at Xerox (I doubt that even now you can get its manual). And ML (the other root language of type safety) was always an academic non-object-oriented language. Modula-3 was the stepping stone from Cedar/Mesa to Java; and today, type-safe programming is a given. I am personally very proud (as a former ML type-safe programmer) that I was able to hang-on to Modula-3 until Java came out, therefore avoiding the C++ era altogether!

What are you proudest of in terms of the language's development and use?

The development of the type system, and the module system. In terms of use, we used it for over 10 years (including Modula-2+) to write all our software, from OS's to GUI's, for several million lines of code. One of the most amazing features of Modula-3 was the Network Objects, (but that was not my work), which was transferred directly to become Java RMI.

Where do you see computer programming languages heading in the future, particularly in the next 5 to 20 years? Functional programming is coming back. Even an object-oriented language like C# now is a full functional language, in the sense that it supports first-class nameless lambda abstractions with proper scope capture and type inference, and developers love it. Other proper functional languages (which do not include object-oriented features) like F# and Haskell are becoming more and more popular.

Do you have any advice for up-and-coming programmers?

Read other people's code!

Is there anything else of interest that you'd like to add? Only that the most exciting Modula-3 design meeting ever, was abruptly interrupted by the San Francisco 7.1 earthquake.

Reprinted with permission from Computerworld Australia. Story copyright 2008 Computerworld Australia Inc. All rights reserved.

Post new comment

The content of this field is kept private and will not be shown publicly.
Respectful debate is welcome, but comments that are defamatory, indecent, abusive, or in violation of any law will be removed.