Modula-2: what went wrong?

This is a discussion on Modula-2: what went wrong? within the modula forums in Programming Languages category; Hi, I was a big Modula-2 user from the days of Topspeed, through to about 2001. We built simulation models (you can play with one here, if you're interested: http://bized.co.uk/virtual/economy/model/ - that's XDS Modula running on Linux with a Java front end). I haven't posted here in many years. The group was busier then! I don't think we could have achieved anything like we did if we hadn't switched to this family of languages (first Turbo Pascal, then Modula, now I use Ada quite a lot (better support, uglier language) whilst former colleagues use Delphi(ditto) ). So, I have two ...

Go Back   Application Development Forum > Programming Languages > modula

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 04-16-2008, 05:35 AM
graham.kerr.stark@googlemail.com
Guest
 
Default Modula-2: what went wrong?

Hi,
I was a big Modula-2 user from the days of Topspeed, through to
about 2001. We built simulation models (you can play with one here, if
you're interested:
http://bized.co.uk/virtual/economy/model/ - that's XDS Modula running
on Linux with a Java front end).

I haven't posted here in many years. The group was busier then!

I don't think we could have achieved anything like we did if we hadn't
switched to this family of languages (first Turbo Pascal, then Modula,
now I use Ada quite a lot (better support, uglier language) whilst
former colleagues use Delphi(ditto) ).

So, I have two questions:

1) Why have these languages failed? Ada and Delphi are alive to an
extent, but none dominate, and - lets' face it Modula-2 is barely used
at all. At first sight, they offer so many advantages, especially in
clarity and type safety.

2) Is it fixable? Can anyone imagine a language in this tradition that
might be a hit? What would it look like?

I have my own views but would love to know what you all think.

Graham
Reply With Quote
  #2  
Old 04-16-2008, 09:09 AM
Chris Burrows
Guest
 
Default Re: Modula-2: what went wrong?

"graham.kerr.stark@googlemail.com" <graham.stark@virtual-worlds.biz> wrote
in message
news:7c9a0c9f-3394-43de-8ece-3f8f1d45f650@m73g2000hsh.googlegroups.com...
> So, I have two questions:
>
> 1) Why have these languages failed? Ada and Delphi are alive to an
> extent, but none dominate, and - lets' face it Modula-2 is barely used
> at all. At first sight, they offer so many advantages, especially in
> clarity and type safety.
>


Failed? Failed to have mass acceptance do you mean? Does that really
constitute a failure? I would rather be in the company of a few lions than
millions of sheep ;-)

After a decade or so using Modula-2 (M2MPC, Volition Systems, FTL and JPI) I
switched to Delphi in 1995 as, at that time, it was as difficult to write
rich GUI Win32 apps in Modula-2 as it was to write them in C / C++. VB was
eliminated as a serious contender within just a few hours' consideration.

> 2) Is it fixable? Can anyone imagine a language in this tradition that
> might be a hit? What would it look like?
>


I was happy with the improvements of Oberon-2 over Modula-2 from a language
perspective but it wasn't until the .NET Framework 2.0 and Component Pascal
for .NET came along a couple of years ago that I was able to start replacing
Delphi as my tool of choice for implementing Windows apps with the clarity
and security of Oberon-style code.

--
Chris Burrows
CFB Software
http://www.cfbsoftware.com/modula2


Reply With Quote
  #3  
Old 04-16-2008, 10:52 AM
Georg Lokowandt
Guest
 
Default Re: Modula-2: what went wrong?


"graham.kerr.stark@googlemail.com" <graham.stark@virtual-worlds.biz> wrote
in message
news:7c9a0c9f-3394-43de-8ece-3f8f1d45f650@m73g2000hsh.googlegroups.com...
> Hi,
> I was a big Modula-2 user from the days of Topspeed, through to
> about 2001. We built simulation models (you can play with one here, if
> you're interested:
> http://bized.co.uk/virtual/economy/model/ - that's XDS Modula running
> on Linux with a Java front end).
>
> I haven't posted here in many years. The group was busier then!
>
> I don't think we could have achieved anything like we did if we hadn't
> switched to this family of languages (first Turbo Pascal, then Modula,
> now I use Ada quite a lot (better support, uglier language) whilst
> former colleagues use Delphi(ditto) ).
>
> So, I have two questions:
>
> 1) Why have these languages failed? Ada and Delphi are alive to an
> extent, but none dominate, and - lets' face it Modula-2 is barely used
> at all. At first sight, they offer so many advantages, especially in
> clarity and type safety.


One point might be: it developed to slow and to many developments were
incompatible. I remember the overhead of porting my code from one compiler
to the other, from one operating system to the other. When ISO modula
finally arrived, other languages already had OO and generics. (there were
proposals to add those language elements to M2 as well, but again in an
incompatible way.)

Migrating away from M2 was always simpler than migrating from an other
language to M2. There is "mtc", but no "ctm"! This might be one reason why
Windows APIs stayed on the C-->C++ track.

M2 is a good language to express algorithms and to write new programs from
scratch. But migrating an existing project to M2 is hard, and most users
work in enhancing existing programs. This requires UI, DB connection and all
the things Delphi addresses. But Delphi is not M2, if you need to migrate
your M2 project to something different, you can as well go the way to Java
or C++.

>
> 2) Is it fixable? Can anyone imagine a language in this tradition that
> might be a hit? What would it look like?

The current programming languages are not the end of development. For sure,
one of the following languages will put more emphasis on structure and
readability again. I will not tell you the killer details of the language I
will publish in ~20 years ;-)

>
> I have my own views but would love to know what you all think.
>
> Graham


Regards, Georg


Reply With Quote
  #4  
Old 04-16-2008, 05:17 PM
Jim Granville
Guest
 
Default Re: Modula-2: what went wrong?

graham.kerr.stark@googlemail.com wrote:
> Hi,
> I was a big Modula-2 user from the days of Topspeed, through to
> about 2001. We built simulation models (you can play with one here, if
> you're interested:
> http://bized.co.uk/virtual/economy/model/ - that's XDS Modula running
> on Linux with a Java front end).
>
> I haven't posted here in many years. The group was busier then!
>
> I don't think we could have achieved anything like we did if we hadn't
> switched to this family of languages (first Turbo Pascal, then Modula,
> now I use Ada quite a lot (better support, uglier language) whilst
> former colleagues use Delphi(ditto) ).
>
> So, I have two questions:
>
> 1) Why have these languages failed? Ada and Delphi are alive to an
> extent, but none dominate, and - lets' face it Modula-2 is barely used
> at all. At first sight, they offer so many advantages, especially in
> clarity and type safety.
>
> 2) Is it fixable? Can anyone imagine a language in this tradition that
> might be a hit? What would it look like?
>
> I have my own views but would love to know what you all think.


Nothing 'went wrong' with Modula-2, but many things have conspired
against it.

a) What is windows written in ?
That factor alone, gives the 'windows incumbent language',
(whatever it happens to be), a juggernaught advantage.

b) How large IS the Compiler industry ?
Not very large, look at Borland : one of the pioneers, and
they are re-branding into some corporate-warm-fuzzies
thing, with 'enterprise' buzz words. Going for fewer customers,
with larger dollars per customer.
Their actual compiler revenue is small.
Same with TopSpeed/Clarion.
Does microsoft still charge for their compilers ?

That leaves Modula-2 as a niche language, in an already
niche industry, with ststic/falling revenues.

c) Inertia and 'good enough'
These also conspire against change. C was 'good enough',
and a large number of cores release C first. There they
stagnate, as the effort to release any better languages hits
the repidly diminishing returns.

-jg

Reply With Quote
  #5  
Old 04-16-2008, 07:35 PM
Gary Scott
Guest
 
Default Re: Modula-2: what went wrong?

Georg Lokowandt wrote:
> "graham.kerr.stark@googlemail.com" <graham.stark@virtual-worlds.biz> wrote
> in message
> news:7c9a0c9f-3394-43de-8ece-3f8f1d45f650@m73g2000hsh.googlegroups.com...
>
>>Hi,
>> I was a big Modula-2 user from the days of Topspeed, through to
>>about 2001. We built simulation models (you can play with one here, if
>>you're interested:
>>http://bized.co.uk/virtual/economy/model/ - that's XDS Modula running
>>on Linux with a Java front end).
>>
>>I haven't posted here in many years. The group was busier then!
>>
>>I don't think we could have achieved anything like we did if we hadn't
>>switched to this family of languages (first Turbo Pascal, then Modula,
>>now I use Ada quite a lot (better support, uglier language) whilst
>>former colleagues use Delphi(ditto) ).
>>
>>So, I have two questions:
>>
>>1) Why have these languages failed? Ada and Delphi are alive to an
>>extent, but none dominate, and - lets' face it Modula-2 is barely used
>>at all. At first sight, they offer so many advantages, especially in
>>clarity and type safety.

>
>
> One point might be: it developed to slow and to many developments were
> incompatible. I remember the overhead of porting my code from one compiler
> to the other, from one operating system to the other. When ISO modula
> finally arrived, other languages already had OO and generics. (there were
> proposals to add those language elements to M2 as well, but again in an
> incompatible way.)
>
> Migrating away from M2 was always simpler than migrating from an other
> language to M2. There is "mtc", but no "ctm"! This might be one reason why
> Windows APIs stayed on the C-->C++ track.
>
> M2 is a good language to express algorithms and to write new programs from
> scratch. But migrating an existing project to M2 is hard, and most users
> work in enhancing existing programs. This requires UI, DB connection and all
> the things Delphi addresses. But Delphi is not M2, if you need to migrate
> your M2 project to something different, you can as well go the way to Java
> or C++.
>
>
>>2) Is it fixable? Can anyone imagine a language in this tradition that
>>might be a hit? What would it look like?

>
> The current programming languages are not the end of development. For sure,
> one of the following languages will put more emphasis on structure and
> readability again. I will not tell you the killer details of the language I
> will publish in ~20 years ;-)


It will be called Fortran 2008 (it's not to far from publication).

>
>
>>I have my own views but would love to know what you all think.
>>
>>Graham

>
>
> Regards, Georg
>
>



--

Gary Scott
mailto:garylscott@sbcglobal dot net

Fortran Library: http://www.fortranlib.com

Support the Original G95 Project: http://www.g95.org
-OR-
Support the GNU GFortran Project: http://gcc.gnu.org/fortran/index.html

If you want to do the impossible, don't hire an expert because he knows
it can't be done.

-- Henry Ford
Reply With Quote
  #6  
Old 04-16-2008, 10:34 PM
Keith Hopper
Guest
 
Default Re: Modula-2: what went wrong?

In article
<7c9a0c9f-3394-43de-8ece-3f8f1d45f650@m73g2000hsh.googlegroups.com>,
graham.kerr.stark@googlemail.com <graham.stark@virtual-worlds.biz>
wrote:

[snip]

> So, I have two questions:


> 1) Why have these languages failed? Ada and Delphi are alive to an
> extent, but none dominate, and - lets' face it Modula-2 is barely used
> at all. At first sight, they offer so many advantages, especially in
> clarity and type safety.


> 2) Is it fixable? Can anyone imagine a language in this tradition that
> might be a hit? What would it look like?


> I have my own views but would love to know what you all think.


As others have said, nothing is 'wrong' with Modula-2 that a little
blowing of dust and re-writing implementations from scratch won't fix.
This, of course isn't going to happen because writing a compiler from
scratch is in the 'too hard' basket for most commercial programmers out
there.

For a while I used Sather after Modula-2 as an insight into OO
programming. I spent a long time looking at the compiler and the compiled
code (which was re-written by the compiler into C and then gcc applied). I
had a student do a (quite good) rework of the Sather compiler to produce
x86 assembler - just to look at the efficiency problem - it was about as
efficient as gcc using O2. This, to me, meant that the language design was
not terribly efficient and, in particular that the Run-Time Engine was
heavily over-blown.

Modula-2 is an excellent language as it is very efficient when
compiled well - but it does not offer programmers a range of possible
programming paradigms - which seems to be the way modern language design is
going. I agree that many of these so-called new paradigms are written as
veneers on top of C or Java - which themselves are, to say the least, not
really type safe.

My solution? Back to the drawing board! One of the things that
intrigues me from a theoretical point of view is the much-touted initiative
to develop tools for proving program correctness. Some people are even
working on this as an'extension' to Java - which sounds fine, but
inevitably relies on the correctness of a Java implementation - and Java
isn't really a very flexible language to start heaving complicated
superstructures onto. I think a formally designed and implemented language
is necessary for this initiative to really work.

For a couple of years now I have been working on the formal design
(using vdm-sl) of a completely new language which has flavours of Modula-2,
flavours of Sather and Ada too. At the moment I am mildly stuck on two
fronts -

(1) The algorithms for converting a trace description into suitable
concurrency controls (a la Path Pascal sort of thing).

(2) The part of the run-time engine which will act as distributed
program communication manager.

It seems to me - as you may guess from these comments - that no matter
how hard we try to wrap it up, concurrency and program distribution are in
the 'very hard basket' for commercial programmers. I don't think that
Modula-2 helps in this regard (which may be another reason for its fading
away) - even though distribution and event driven programming are likely to
become the norm in the not too distant future.

What might it look like? Well - if anyone is interested -
http://srv.asgard.docs/esk.txt is my version of a compiler for my new
language!! All a bit tongue-in-cheek of course!

Keith Hopper

--
Inspired!
Reply With Quote
  #7  
Old 04-17-2008, 03:26 AM
Marco van de Voort
Guest
 
Default Re: Modula-2: what went wrong?

On 2008-04-16, graham.kerr.stark@googlemail.com <graham.stark@virtual-worlds.biz> wrote:
> I haven't posted here in many years. The group was busier then!
>
> I don't think we could have achieved anything like we did if we hadn't
> switched to this family of languages (first Turbo Pascal, then Modula,
> now I use Ada quite a lot (better support, uglier language) whilst
> former colleagues use Delphi(ditto) ).


So do I (and Free Pascal).

> 1) Why have these languages failed? Ada and Delphi are alive to an
> extent, but none dominate, and - lets' face it Modula-2 is barely used
> at all. At first sight, they offer so many advantages, especially in
> clarity and type safety


IMHO the failure was twofold:
- general engineering and academics largely stopped using general purpose
languages, and switched to more specialised tools and Mathlab.
- The future of professional programming came from the US, while Europe
was(and is) the Wirthian stronghold.

The latter maybe helped by the fact that the dotcom bubble put a huge
pressure on all development to be quick, without standing back and examine
the options. When the dust settled, all other languages were dead.

Delphi is dying too I think. I've been looking out, but haven't found a
worthy successor. The problematic point for me is to make fast client apps
without many dependancies (I work for a machine Vision specialist), and also
create them reasonably fast and flexible.

> 2) Is it fixable? Can anyone imagine a language in this tradition that
> might be a hit? What would it look like?


No. In my Pascal advocacy I find there is hardly any bottom to feed on. The
majority are relatively new arrivals that haven't known anything else. Some
parallels to say win98 times when a lot of the people know nothing about Dos
anymore and are scared of the commandline come to mind.

Currently it looks like native languages are going to be the Cobol of the
2010's. Everybody frowns upon them, but the number of programmers are low,
and the needs will be high, while the .NET/Java markets will be swamped with
programmers, and making a difference there will be difficult (though not
impossible).

I just don't want to create dumb webapps for mom and pop shops
for 5 years to get enough experience again.

> I have my own views but would love to know what you all think.


I'm going to hold out with Delphi, unless some really interesting comes
along. I get offered Delphi jobs nearly every other week, and I'm not even
looking officially.

Hobbywise, I've committed to Free Pascal a long time ago, and I always meant
to ride it out. Of course nothing is forever, but I'm still loving it.
Reply With Quote
  #8  
Old 04-17-2008, 04:41 AM
Marco van de Voort
Guest
 
Default Re: Modula-2: what went wrong?

On 2008-04-16, Jim Granville <no.spam@designtools.maps.co.nz> wrote:
> Nothing 'went wrong' with Modula-2, but many things have conspired
> against it.
>
> a) What is windows written in ?
> That factor alone, gives the 'windows incumbent language',
> (whatever it happens to be), a juggernaught advantage.


And Unix was always C centric to start with.

> b) How large IS the Compiler industry ?


Very good point.

> Does microsoft still charge for their compilers ?


Yes, afaik it makes big bucks with it. (more than Borland/annum afaik).

> c) Inertia and 'good enough'
> These also conspire against change. C was 'good enough',
> and a large number of cores release C first. There they
> stagnate, as the effort to release any better languages hits
> the repidly diminishing returns.


A big problem is also that 32-bit dos C's appeared first.
Reply With Quote
  #9  
Old 04-17-2008, 03:29 PM
Jim Granville
Guest
 
Default Re: Modula-2: what went wrong?

Marco van de Voort wrote:
> On 2008-04-16, Jim Granville <no.spam@designtools.maps.co.nz> wrote:
>
>>Nothing 'went wrong' with Modula-2, but many things have conspired
>>against it.
>>
>>a) What is windows written in ?
>>That factor alone, gives the 'windows incumbent language',
>>(whatever it happens to be), a juggernaught advantage.

>
>
> And Unix was always C centric to start with.
>
>
>>b) How large IS the Compiler industry ?

>
>
> Very good point.
>
>
>>Does microsoft still charge for their compilers ?

>
>
> Yes, afaik it makes big bucks with it. (more than Borland/annum afaik).
>


I googled and found these links :

http://www.microsoft.com/presspass/p...essFreePR.mspx

"At this weekend’s Maker Faire, Microsoft Corp. will display how a
variety of innovative companies are using its now-free Visual Studio®
2005 Express editions to bring the power of code to the growing
community of 18 million recreational and hobbyist developers. "

http://www.turboexplorer.com/delphi

"The free Turbo Delphi Explorer edition is a fixed, all-in-one solution
which lets beginners and hobbyists learn programming and develop
applications using the Delphi language."

So the emergence of free, high grade compilers for students, and part
time, or shareware type developers shows a couple of things :

** Other free software offerings (Gcc, freepascal etc), helped push the
companies to do this.

** The revenue streams from this sector was not big. Large number of
users, but most happy one generation (or more) back from the leading edge.

-jg



Reply With Quote
  #10  
Old 04-17-2008, 10:24 PM
Jim Granville
Guest
 
Default Re: Modula-2: what went wrong?

Hi Keith,

>
> My solution? Back to the drawing board! One of the things that
> intrigues me from a theoretical point of view is the much-touted initiative
> to develop tools for proving program correctness. Some people are even
> working on this as an'extension' to Java - which sounds fine, but
> inevitably relies on the correctness of a Java implementation - and Java
> isn't really a very flexible language to start heaving complicated
> superstructures onto. I think a formally designed and implemented language
> is necessary for this initiative to really work.
>
> For a couple of years now I have been working on the formal design
> (using vdm-sl) of a completely new language which has flavours of Modula-2,
> flavours of Sather and Ada too. At the moment I am mildly stuck on two
> fronts -
>
> (1) The algorithms for converting a trace description into suitable
> concurrency controls (a la Path Pascal sort of thing).
>
> (2) The part of the run-time engine which will act as distributed
> program communication manager.
>
> It seems to me - as you may guess from these comments - that no matter
> how hard we try to wrap it up, concurrency and program distribution are in
> the 'very hard basket' for commercial programmers. I don't think that
> Modula-2 helps in this regard (which may be another reason for its fading
> away) - even though distribution and event driven programming are likely to
> become the norm in the not too distant future.
>
> What might it look like? Well - if anyone is interested -
> http://srv.asgard.docs/esk.txt is my version of a compiler for my new
> language!! All a bit tongue-in-cheek of course!


The link does not work ?


The 'next frontier' is managing multiple cores, and multiple threads,
and elements of 'hard realtime' (usually relatively small), within
larger systems.

Some of my links, that may be of interest

Some fringe language work, in the 'provable' area
http://research.microsoft.com/foundations/AsmL/

and, since everyone is starting to offer 2,3,4 and more cores

this at the single chip level:

http://www.electronicstalk.com/news/xmo/xmo102.html

Which says
"Two compilers target the XCore processor engine an ANSI C compiler from
ACE Associated Compiler Experts and the XMOS XC compiler.
A mapper/linker builds object files from the source code and precompiled
IP modules.
The two compilers are seamlessly integrated for mixed C and XC projects.
XC is an XMOS-originated variant of C that supports parallel processing,
event-driven control and time-based programming.
A companion Eclipse IDE provides developers with a complete debug and
simulation environment."

Early days for them, but it is a complete system, and they may be
keen to assist some research under NDA.


Also, there was talk a while back, of Silicon that would run .NET
bytecodes directly, but that does not seem to have hit critical mass.

Maybe the leading-process x86 variants, can interpret faster than
a native NET device, 'a couple of generations back'.
Similar with java-silicon. Fringe work only, no sign
of critical mass being reached.

Plus, an ideal new language, should also be able to compile into FPGA
design flow - there are first generation C to Fpga hardware flows, that
try to blur the algorithm.

-jg







Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 03:45 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.