🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #4143

Re: What does an anti-perl look like

#4143
From: Alan Wright
Date: Sun, 16 Jun 1991 16:37
101 lines
5603 bytes
In article <552@smds.UUCP>, rh@smds.UUCP (Richard Harter) writes:
> 
> Well, we are sort of on the gray edge here -- Lakota is proprietary to SMDS.
> I am a principal in SMDS.  We are using it internally; at some point it
> may be marketed at a nominal price consistent with financial reality.  At

You may find that the best you can do prior to some large following
developing is to literally give your language away. Further, the
prevailing attitude is that it must be available in source form.

> There is much to what you say.  Actually, even without the hardware speedup
> factor it makes sense.

I agree, I just think some of the traditional performance-related objections
to interpretive languages are now less relevant. 

> In most applications most of the execution time is
> spent in a small percentage of the code.  Write that 5-10% in C or whatever.
> It is my contention that a good high-level interpreted language is several
> times more expressive than a traditional 3GL.  Grant me a factor of 5, i.e.
> it takes 5 times as much 3GL code to do what you can do in the interpreter.
> A good high level interpreter should run about 2-3 times slower than the
> equivalent 3GL code.  For example:  suppose you have an application that
> has 100,000 lines of 3GL code.  10,000 lines accounts for 90% of the CPU
> usage; 90,000 accounts for 10%.  Replace the 90,000 by 18,000 lines of
> interpreted code.  The result is a program that has 28,000 lines of code
> and runs 10-20% slower.  The development time drops sharply.  These are
> reasonable tradeoffs.

I agree with your reasoning here, but my experience shows that not only
do you achieve higher productivity via such languages, that you also
tend to implement more generality, flexibility, and other such
qualities with the more expressive language. I suspect that a general
rule here is that the more code a programmer has to write, the more
corners (s)he will tend to cut. 

> However my point was really that it is not so simple to develop a general
> language that is a signifigant improvement on what is already available.

It is not simple to successfully popularize one, but it is NOT difficult
for many of us to try. I suppose it may be a lot like writing a hit song.
It is difficult to predict what features will have strong appeal. 

> There is a psychological trap involved, a tendency to say "I use and
> like X, but it could be a lot better so I am going to create my own
> language Y."  The result is X with a bunch of extra miscellaneous features.

Not necessarily. For example, there is really no resemblance between
Perl and Accent. The reason for this is that Perl was designed for
one niche (system administration?), while our needs were somewhat
different (production CASE software prototyping and development). 

> > 	- declarations and strong type checking
> > 	- functions, modules, and classes
> > 	- remote function calls (as easy as local calls)
> > 	- high-level (i.e. dynamic) first class data structures:
> > 	  (strings, arrays, tables, composites
> > 	- table keys can be any data type (just as values can)
> > 	- more palatable syntax (derived from C, Pascal, and others)
> > 	- portable source and object code

I forgot one:
		- simple API for graphical user interfaces (for X, Sunview, ...)

> > In short, we added what we thought were good software engingeering
> > features, so that we could write production code (and in large quantity). 
> 
> That's a fairly impressive collection of features.  It reads like a full
> blown modern OOL.

Our notion of classes is not well enough developed to qualify as a
real OO language. This is actually more a matter of how we limited
our present implementation than a syntactic issue. 

> I gather from your comments about a compile-phase for
> Perl at runtime that you can parse an accent program in advance and execute
> off of a representation of the parsed program.  Is this correct?

Yes. Parse once, execute multiple.... Also, we can deliver one object code
for all of our platforms.

> > languages to test various combinations of features. (Yes, I am aware of
> > Icon, Python, Rexx, and others, but I don't like any of them).
> > This technology is still far from providing the final solution, so we
> > need to keep trying!
> 
> I am curious.  Why don't you like them?

I should rephrase: I don't feel they are well suited for my
applications.  I could provide an analysis of each, but instead let me
just say that the set of features we ultimately put into Accent were
some of the features I wanted.  I think you'll find that each of these
other languages (let me add Scheme, Smalltalk, ABC, TCL) really was
designed with a different use in mind, or is missing some key feature,
or has some critical misfeature. (No vendor support is a critical
misfeature.)

Now, back to the topic of Lakota. I remember seeing something you posted
in the past which suggested to me that Lakota was perhaps more like a
REXX than a Perl. What I remember is something about controlling the
interactions among a set of subordinate tool processes. Is this correct?
Technical Details
Message-ID: <798@cwi.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!orion.oac.uci.edu!ucivax!cwi!alan
References: <16867@helios.TAMU.EDU> <1991Jun05.013632.3198@convex.com> <552@smds.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!orion.oac.uci.edu!ucivax!cwi!alan
From: alan@cwi.UUCP (Alan Wright )
Newsgroups: comp.lang.misc
Subject: Re: What does an anti-perl look like
Message-ID: <798@cwi.UUCP>
Date: 16 Jun 91 16:37:16 GMT
References: <16867@helios.TAMU.EDU> <1991Jun05.013632.3198@convex.com> <552@smds.UUCP>
Organization: CaseWare, Inc., Costa Mesa, CA
Lines: 101