[M3devel] Downsides of Modula-3 ?
Dragiša Durić
dragisha at m3w.org
Sat Apr 21 23:28:15 CEST 2012
What would be LONGADDRESS? Pointer to a location inside LONGRAM? :)
On Apr 21, 2012, at 6:26 PM, Daniel Alejandro Benavides D. wrote:
> Hi all:
> If we accept to exist LONGINT and ADDRESS is a Word.T why we don't have LONGADDRESS? That's you don't care if that's in UNSAFE TYPE, do you?
> Assembly in lining was handled about perfect in Modula-2 for VMS I wonder why DEC didn't provide Modula-3 support with that as well.
> Thanks in advance
>
> --- El vie, 20/4/12, Mika Nystrom <mika at async.caltech.edu> escribió:
>
>> De: Mika Nystrom <mika at async.caltech.edu>
>> Asunto: Re: [M3devel] Downsides of Modula-3 ?
>> Para: penn43 at gmx.com
>> CC: m3devel at elegosoft.com
>> Fecha: viernes, 20 de abril, 2012 15:29
>>
>> Now that I have the rather unpleasant task of writing C code
>> for a client,
>> I have a few things I "like" about C and that I "miss"
>> somewhat when
>> I write Modula-3.
>>
>> I find that I sort of like the C preprocessor. But
>> maybe it's just the
>> sort of code I'm writing with it... (test programs, which
>> need lots and
>> lots of annotations and instrumentation, something easy to
>> do with cpp).
>>
>> No alloca....
>>
>> No varargs...
>>
>> No real "const" (Java "final"). Sometimes WITH can do
>> it.
>>
>> No GO TO.............. can't believe I just wrote that but
>> Modula-3 had
>> as one of its design objectives to be a good target for code
>> generation,
>> and having goto would make that easier! (Look at the
>> C-Mix partial
>> evaluator for an application.)
>>
>> A C++ programmer would undoubtedly miss a lot of crazy C++
>> stuff
>> that lets you do tricky stuff entirely without heap
>> allocation.
>> And operator overloading.
>>
>> Then there are some annoying implementation limitations:
>>
>> No EXTENDED floating point in the standard implementation.
>>
>> Bugs in the "standard" threading library (pthreads
>> based). Have
>> to use the longjmp hack version.
>>
>> Dubious "enhancements" relative to the Green Book: LONGINT,
>> WIDECHAR
>> (and a lot of issues with TEXT as a result). And
>> efficiency problems
>> in the CM3 code in *some cases* (compared with the older SRC
>> M3).
>>
>> ----
>>
>> My own evaluation of the above is that the things lacking
>> relative to C
>> are really pretty minor and the language is so much easier
>> to use
>> and better engineered that you almost never say to yourself
>> "oh I wish
>> I could write this procedure in C" (you might say it of one
>> line of code).
>>
>> The implementation issues are things that could "easily" be
>> fixed by
>> someone who had the time..
>>
>> Oh regarding efficiency problems: I still find that CM3 with
>> optimization
>> turned on produces code that runs faster and with a far
>> smaller memory
>> footprint than code doing the same thing in Java, most of
>> the time.
>> That's when you try to do as close to an apples-to-apples
>> comparison
>> as possible. If you take into account the fact that in
>> Modula-3 you can
>> allocate structured memory in "batches" (called "arrays"!)
>> the difference
>> is even bigger. Modula-3 also links far easier with C
>> and Fortran than
>> Java does.
>>
>> Mika
>>
>>
>>
>> penn43 at gmx.com
>> writes:
>>> An object appraisal must take into account the problems
>> too. So I am asking yo
>>> u, could you please mention any downsides of using
>> Modula-3, in your experienc
>>> e?
>>>
>>> Of course, the non-existent language community has
>> already been mentioned as a
>>> major downside.
>>> And the lack of documentation.
>>> What about other issues, such as compiler efficiency? Or
>> interaction with fore
>>> ign libraries?
>>>
>>> Thanks
>>>
>>> Marresh
>>
More information about the M3devel
mailing list