logo

 

     
 
BW2 Home
BW2 Site Map
BW2 Popular Articles
BW2 Search
Using This Site...
 
 
Bitwise Home
 
 
 

rss

 
 

ruby in steel

hostgator

 


Section :: Rants and Raves

- Format For Printing...

Whatever Became Of Modula-2?

Modularity, where art thou?
Monday 16 April 2007.
 
For some reason, I’ve been thinking about Modula-2 quite a bit lately. Years ago, I used to program in TopSpeed Modula-2, which was created by one of Borland’s founders, Niels Jensen, and a team of ex-Borland programmers. It was a great product for its day (the early ‘90s) and, in my view, it deserved to be a massive success. The fact that it wasn’t can be attributed, largely, I think, to the dominance of C and the emergence of C++ as the PC programming language of choice at that time. Besides which, I guess Modula was just a bit too close to Pascal, and Borland had that market all wrapped up.

The great thing about the Modula-2 language was, as its names suggests, modularity. At that time, however, the trend was very much for languages to jump on the object oriented bandwagon in the belief that OOP would provide all the benefits of modularity (or ‘encapsulation’) plus a whole load of other neat stuff too.

In fact, most OOP languages from Object Pascal to C++ ended up introducing a whole load of complexity without providing anything like the same degree of modularity as Modula. Which is, I think, a great shame.

To some extent, the arrival of Java started a trend towards simplifying OOP by cutting down on the syntax and taking care of garbage collection. But modularity - real honest-to-goodness, safe, thorough, reliable modularity is notably missing from most languages these days. Yes, yes, I know, many languages give you the ability to apply degrees of ‘hiddenness’ to encourage people to define interfaces to get at data lurking inside objects, classes, modules, units and namespaces. But this free-and-easy approach is, to modularity, what a polite request to keep down the noise would be to a gang of Hells Angels on their annual weekend at the seaside.

Niels Jensen and his team went on to develop a database IDE, Clarion (rather a dull project, I always thought) which, I gather was provided with Modula-2 as an option (probably to keep the development team happy). Clarion is still available, though I don’t know how many people use it; and I rather doubt whether many of them program it in Modula.

There have also been a few ‘successors’ to Modula-2, such as Modula-3 and Oberon. But these haven’t set the world afire either.

How many people are still using Modula-2 (or a successor), I wonder? And, if not, are there any other languages that offer a similar degree of modularity? If anyone can point me to a modern implementation - preferably with a decent IDE - I’d love to hear from you...

AddThis Social Bookmark Button

Forum

  • Whatever Became Of Modula-2?
    8 December 2007, by Karl

    I too adored Modula-2, especially the JPI TopSpeed variant. I now develop desktop software and web sites in C# and I confess I miss the old TopSpeed terribly as it wipes the floor with C# for most things that don’t require access to a corporate database or heavy multimedia. Whilst I still have the software and manual Microsoft in their wisdom have crippled full screen text mode in Vista so without switching my display driver to standard VGA 1024x768 I cannot run TopSpeed full screen and using it becomes unbearable. XDS give away their Modula 2 IDE and compiler for free but even with their TopSpeed compatibility pack it’s nowhere close.

    What I would love to see is the original TopSpeed Modula 2 exactly as it was but with the Window module being Windows-based (if you see what I mean) and the addition of a few extra modules for database and multimedia. That, compiling to native X86, would be my dream development system.

  • Whatever Became Of Modula-2?
    17 April 2007, by Marc

    Huw,

    I agree with your analysis on the deplorable state of recent programming languages with regard to modularity concerns. Maybe you want to have a look at Component Pascal at:

    http://www.oberon.ch/blackbox.html

    Component Pascal is an industrial-strength implementation of Oberon (the direct successor of Modula-2) and was developed by the ETH spin-off Oberon microsystems, Inc. (with Niklaus Wirth on its board of directors). It comes bundled with an extensive module library including a word processor, a visual forms designer, an SQL database access facility, an integrated development environment (IDE), and the Component Pascal managed run-time system. The complete package is an advanced yet light-weight rapid application development (RAD) tool, called BlackBox Component Builder. It is light-weight because it is completely built out of Component Pascal modules - including the kernel with the garbage collector, and the Component Pascal compiler itself. Since 2005, BlackBox can be downloaded from the mentioned website free of charge as open-source software.

    Marc, Oberon microsystems, Inc.

  • Whatever Became Of Modula-2?
    17 April 2007, by Florian

    Have a look here: http://www.modula2.org/ for general information.

    Excelsior used to have highly-optimizing Modula-2 and Oberon compilers which they released as freeware. Have a look here: http://www.excelsior-usa.com/xdsdl.html

  • Whatever Became Of Modula-2?
    17 April 2007, by David Heffernan
    The best example I know is the Bayesian statistics program BUGS, which now appears to have morphed into a GPL project called OpenBUGS: http://mathstat.helsinki.fi/openbugs/.
    • Whatever Became Of Modula-2?
      12 March 2008, by Brad
      What do you think of Ada as a language that relies on modularity for extreme fault tolerance?

Home