comments inline below

--- Robert Witkop <[EMAIL PROTECTED]> wrote:

> Hi Chris, et. al.,
> 
> I am out of the woodwork. Cache and MUMPS offer capabilities not
> found in 
> most ohter languages.

Absolutely. If anything, I think the MUMPS community has failed to
effectively get the word out that the language has some very powerful
capabilities that are very much of interest today. Perl and Python have
more successful in this respect.

> 
> For a newcomer, MUMPS is easy to write, but hard to read. This is why
> one of 
> the first tools a newcomer will write is a pretty printer. Once
> getting over 
> the intial shock of being able to abeviate the commands, most (not
> all, I 
> still write full commands) will begin to abbreviate the commads.
> 

I don't know that it's exactly easy to write. Certainly, a minimal
MUMPS program is much simpler than a minimal Java program (or even a
minimal C program), but are realistic programs really easier to write?

But, of course, that wasn't your point. I occasionally compose Java or
C code in vi(m), but generally prefer to use an IDE like Xcode or
Eclipse if one is available. Similarly, I like Komodo for Perl. I can
format my own code, but I'd rather have an editor do a lot of the
tedious work for me than think ("Okay, let's see, that's 8 times I need
to press <space>". Even in vi, the autoindent, shiftwidth and showmatch
options can make life a lot easier.
> 
> As Chris mentioned, I have written a MUMPS to C++ transformer, but 
> fortunately, have never done a transformation except as a proof of
> concept. 
> The main reason I wrote the transformer in the first place, is to
> convince 
> OTP (Otherwise Intellegent People) that by translating their
> applications to 
> C or C++, they are only translating their problem. The message I send
> them 
> is "don't kill the language, kill the programmer", because with power
> comes 
> responsibility, and if the application failed, the programmer failed.

I haven't seen your transformer, but that's an interesting concept. I
actually think we understimate what can be done with automated analysis
and translation tools, but certainly a mechanical translation would
produce code no one wants to seriously consider using!

> 
> Some Cache/MUMPS aplplications, like VistA are stable, and I grant
> you 
> although, no sotware application is perfect, VistA is carefully
> maintained. 

Uh...I don't think patched in ad hoc fashion counts as "carefully
maintained", but I agree that a lot of conscientious effort goes into
maintaining VistA.

> In my entire career, I have only written one application that ran the
> first 
> time, and no one ever found a bug in it. The only reason the program
> worked 
> correctly the first time, is because in the early days, computer time
> was 
> very expensive, and we spend days/weeks reviewing our code before
> running 
> the application on the computer.

I've written code that's run without bugs being reported AFTER it was
released. I don't know that I've ever written anything that worked
perfectly in every developer test! I've always been impressed by people
who managed to develop significant amounts of code with nightly batch
runs.
> 
> The power I have enjoyed from Cache/MUMPS, after having to interface
> with 
> databases from other languages is that I have direct access to the
> data. 

If there is a single "home run" in the MUMPS language, it has to be the
global. I agree completely.

> The 
> problem with other languages is that databases are an afterthought,
> and like 
> any other Kludge, it can be ugly, even if it works (somewhat).

Again, I agree. The introduction of "tie" in Perl 5 was a big
improvement, but it's still an example of trying to splice a new
concept into the language after the fact.

Another issue that is (in my opinion) more than cosmetic is the fact
that MUMPS arrays may have values at any node. Off hand, I can't think
of a single language providing a structure like this, but decorated
trees (and other graphs) are pervasive in computer science. It really
makes you wonder why this construct is not directly supported in more
languages.
> 
> Most languages (I lost count of how many I use) were created for a
> specific 
> problem, and they do well when they are used for the problems they
> were 
> created for. 

Hmm...Some languages are very specialized, focusing on a particular
problem or type of problem, but others are geared more to an
application domain (e.g., Fortran and scientific computing). Other
languages (like Algol, and later, Pascal) were designed to be simple,
to abstract away from domain specific features and focus on the very
basic task of expressing algorithms effectively. In general, I think I
agree, perhaps with a little qualification.

> MUMPS was created to satisfy the needs of the medical
> world, 
> and it did very well for many years. 

Well, it was certainly developed initially for medical applications,
but there's nothing about it that is particularly medical. I don't
disagree with either point you are making here, only I think it is
worth pondering what it is about MUMPS that has made it useful for
medical (and financial) applications.

> The only reason I have switched
> from 
> MUMPS to Cache is that it gives me backward compatibility with MUMPS,
> a good 
> database, and I can write object-oriented applications that are
> easier to 
> maintain, and easier to interface with other technologies.

And that is the principle reason for my interest in Cache. I am also
interested in other possible directions, such as functional
programming, that are less directly supported by MUMPS or Cache, but I
have long found object oriented languages to be useful and interesting.
> 
> OK, I am returning to observer mode.
> 

Don't do that!

> Bob
> 



===
Gregory Woodhouse  <[EMAIL PROTECTED]>

"Design quality doesn't ensure success, but design failure can ensure failure."

--Kent Beck








-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to