[comp.lang.modula2] Modula-2, get real.

James.Jackson@f200.n208.z1.fidonet.org (James Jackson) (06/04/90)

I hear some modula-2 advocates telling me M-2 actually can outperform C?
and is equally as powerful as C.  But a question, is it as portable as C?
I'm interested in possibly checking out the world of m2, but need some 
more info, you know, the stuff that makes your language interesting.
 
What are the benefits of M2? as compared to other languages?
Portability, Power, etc.?
 
Your replies are appreciated.
for C you can get tons of toolboxes to make C do almost anything, is 
there anything like this for M2? fill me in.. thanks.
 
James.
Logitech Modula-2, any good??



--  
uucp: uunet!m2xenix!puddle!208!200!James.Jackson
Internet: James.Jackson@f200.n208.z1.fidonet.org

Peter.M..Perchansky@f101.n273.z1.fidonet.org (Peter M. Perchansky) (06/07/90)

Hello James:

    Logitech is slow ;-)  Try Stony Brook or JPI's Modula-2.

    Is Modula-2 as powerful as C?

    JPI is using TopSpeed Modula-2 to write their "ANSI Standard" TopSpeed C compiler.

    Portability... tough question.  Is C portable? Is Modula-2 portable.

    A lot of persons say C is portable, but... the standard just came out and not all vendors were close to the standard (some were around 40%, others were 90%).  So, how portable is C?

    There currently is no standard for Modula-2, so the same point stands.

    Most compilers follow the "defacto standard" set up by Wirth; following Programming in Modula-2 III (PIM3) or IV (PIM4).  So, the language itself has some portability in it.

    However, Wirth supplied little in his papers concerning what libraries should contain or how they should be formatted; so, there is little to go by in terms of "standard" libraries.  Although most software publishers (Stony Brook, Logitech, JPI, etc.) are competing with each other and usually have similar libraries because of it.



--  
uucp: uunet!m2xenix!puddle!273!101!Peter.M..Perchansky
Internet: Peter.M..Perchansky@f101.n273.z1.fidonet.org

James.Jackson@f200.n208.z1.fidonet.org (James Jackson) (06/09/90)

I left you a message on the Tech area, about Including C routines in 
Modula2, I wonder, is this possible?  I program in C, and it is supported 
by hundreds of vendors with neat little tools that help you really 
perform, I'd be interested to know if M2 can be able to make applications 
for Windows, OS2.. what about M2 on Unix based systems?  I've seen ads 
stating Topspeed Modula out performs C in all areas, this is what 
interests me.. maybe you can answer a few of my question, and maybe I'll 
become a Modula 2 advocate. thanks, James



--  
uucp: uunet!m2xenix!puddle!208!200!James.Jackson
Internet: James.Jackson@f200.n208.z1.fidonet.org

Jon.Guthrie@p2.f70.n226.z1.fidonet.org (Jon Guthrie) (06/10/90)

 >     Is Modula-2 as powerful as C?
 
 >     JPI is using TopSpeed Modula-2 to write their "ANSI Standard" 
 > TopSpeed C compiler.

This really avoids the question.  You could write the C compiler in COBOL and   
it's quality would depend mostly on how good a coder you are.  The choice of  a  
language depends more on what a programmer knows than what the language is   
suited for.

Instead of saying so-and-so is writing such-and-such in Modula-2, why don't   
you talk about Modula's powerful encapsulation facilities.  Why don't you   
mention that this makes Modula better for large projects than C is?  You  could  
also talk about the improved support for abstraction.

 > Portability... tough question.  Is C portable? Is Modula-2 portable.

 >     A lot of persons say C is portable, but... the standard just came out 
 > and not all vendors were close to the standard (some were around 40%, 
 > others were 90%).  So, how portable is C?

Do you honestly want an answer?  Before the ANSI (assuming that you're in the   
USA, otherwise you have to talk about ISO) committee produced their final   
standards document, there was a de-facto C standard that was the result of  C's  
birth and adolescence on Unix machines.  

Even though nobody has had a chance to implement (well, try anyway - there's   
no validation suite) the full ANSI standard, the language supported is always   
Unix System V compatable.  The same is said for the "Standard library."  The   
standard library means that a C programmer has a fighting chance at making his   
programs portable.  (He has to restrict himself, however.  It is difficult to   
write interactive programs in C that are truly portable.)

 > There currently is no standard for Modula-2, so the same point stands.
 
 >     Most compilers follow the "defacto standard" set up by Wirth; 
 > following Programming in Modula-2 III (PIM3) or IV (PIM4).  So, the 
 > language itself has some portability in it.

Aside from the fact that N. Wirth does not say whether Modula-2 is a one-pass   
or a two-pass language, this is correct.  (It is quite possible to write two   
different compilers that won't compile each other's code but which are BOTH   
compatable with PIM.)

 >     However, Wirth supplied little in his papers concerning what 
 > libraries should contain or how they should be formatted; so, there is 
 > little to go by in terms of "standard" libraries.  

Actually, Wirth wimps out and fails to specify even a minimum standard for a   
standard library.  In my copy of PIM3c he says that he presents a "typical   
hierarchy of modules used in performing conventional input and output   
operations."  Further, he says that "the hierarchy of these Modules and their   
exports do not belong to the language proper."  

That view, while it is not incorrect by any stretch of the imagination, is not   
likely to promote portability of any code which does I/O at all.  In fact, a   
minimum I/O library specification SHOULD be part of the definition of any   
higher-level programming language.  (Well, that's what I believe, anyway.  In   
fact, I think that de-facto I/O library standards will be created but they   
will be different for each computer family.)

In any case, I don't think that portability is a major issue for casual   
programmers.  It probably isn't even that big an issue for professional   
programmers.  It's importance is certainly overemphasized.

...You trust them with your fortunes, let them guard your lives

--  
uucp: uunet!m2xenix!puddle!226!70.2!Jon.Guthrie
Internet: Jon.Guthrie@p2.f70.n226.z1.fidonet.org

Peter.M..Perchansky@f101.n273.z1.fidonet.org (Peter M. Perchansky) (06/11/90)

Hello James:

    TopSpeed Modula-2 2.00 supports multi-lingual programming.  You can interface with assembler, C, Pascal, etc.

    Both TopSpeed and Stony Brook Modula-2 have pragmas that allow you to specify calling conventions.  In TopSpeed Modula-2, you can go as far as telling the compiler what registers to use when calling, and what registers are to be saved.


P.S.  Feel free to leave your Modula-2 questions here, James, instead of Tech.


--  
uucp: uunet!m2xenix!puddle!273!101!Peter.M..Perchansky
Internet: Peter.M..Perchansky@f101.n273.z1.fidonet.org

Peter.M..Perchansky@f101.n273.z1.fidonet.org (Peter M. Perchansky) (06/11/90)

Hello Jon:

    Prove it, Jon; write a C compiler in COBOL ;-)

 --- Peter


--  
uucp: uunet!m2xenix!puddle!273!101!Peter.M..Perchansky
Internet: Peter.M..Perchansky@f101.n273.z1.fidonet.org

ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (06/13/90)

I do not agree that a minimum specification for doing I/O, or heap
management, or concurrency, or anything else that requires run-time
library support, should be part of the definition of a systems-level
programming language.

Such specifications are usually more trouble than they're worth.
Consider the "portable" C I/O library, and consider using it for such
a simple task as making a copy of a file: your program might work
on UNIX and MS-DOS, but not on much else. Systems where your program
*wouldn't* generally succeed in making a usable copy of a file include
VAX/VMS and Macintosh. And then there's a system like the Amiga, where
what you mean by a "file" depends on whether you're looking at things via
Intuition or via the CLI.

Lawrence D'Oliveiro
Computer Services Dept                    fone: +64-71-562-889
University of Waikato                      fax: +64-71-384-066
Hamilton, New Zealand            electric mail: ldo@waikato.ac.nz
"ATM--is that short for asynchronous TDM?"

randy@m2xenix.psg.com (Randy Bush) (06/15/90)

[flame]

In article <729.267677b4@waikato.ac.nz> ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:
> I do not agree that a minimum specification for doing I/O, or heap
> management, or concurrency, or anything else that requires run-time library
> support, should be part of the definition of a systems-level programming
> language.

So where were you when we needed you at the ISO working group?

> Such specifications are usually more trouble than they're worth.

You forgot to underline 'more' and put a strong adjective in front of it.

> Consider the "portable" C I/O library

I have.  At the recent Modula-2 ISO meeting, I came to the conclusion that we
should have just added C's stdio etc. to the SYSTEM module.  It's existing
practice, available everywhere, and would probably get more user satisfaction
than anything a committee could design in five years.

[emalf]

-- 
..!{uunet,qiclab,intelhf}!m2xenix!randy   randy@psg.com   randy@m2xenix.uucp