[comp.lang.misc] Perfect language features

eugene@pioneer.arpa (Eugene Miya N.) (01/14/88)

In article <3352@ihlpf.ATT.COM> nevin1@ihlpf.UUCP (00704A-Liber,N.) writes:
>If you were designing the 'Perfect Programming Language',

Oooohhh nnoo! (Mr. Bill) sounds like you would end up developing Ada(tm).
Again.......

>what features would you put in (and what features would you leave out)?

I like iterators in CLU and icon generators.  It really depends on what
the language is used.  I think we need to develop a perspective of
"little languages" as Bentley calls them, rather than make a single
perfect language.

I tend to like overloading, and dislike certain aspects of function,
prefix, and parameter passing models of languages.  I also recognize
dangers and would like certain expansion tools, if I had such a language.

There have to be features which can both have implicit as well as
explicit parallelism (not based on a port or shared memory model).

Keep side-effects down. (Sort of like saying minimize GOTOs, a
Motherhood statement).

>Do these features limit the ease of use or applicability of
>the languages they come from?

I would not base a language on Pascal block structure.
All languages restrict who you use machines.  I think you have to
iterate the development of any language.

From the Rock of Ages Home for Retired Hackers:

--eugene miya, NASA Ames Research Center, eugene@ames-aurora.ARPA
  "You trust the `reply' command with all those different mailers out there?"
  "Send mail, avoid follow-ups.  If enough, I'll summarize."
  {uunet,hplabs,hao,ihnp4,decwrl,allegra,tektronix}!ames!aurora!eugene

sjmz@otter.HP.COM (Stefek Zaba) (01/16/88)

OK, this notestring is doomed to generate all heat and no light.... BUT....
eugene maya made a plug for John Bentley's "Little Languages" idea.  Sorry to
both of you, but I'm personally convinced that That Way Madness Lies.  What it
means is that for EVERY application, you have to learn a NEW D**N Little
Language.  After a while this gets REALLY tedious; "how do I simulate a WHILE
loop in this one?  what's the syntax for conditionals?  You mean it DOESN'T
support conditionals!? [like all those how-to-log-on Little Languages for
terminal emulators don't] what do I do for a table-.driven abstraction here?
[try doing THAT in csh, and discovering the limit on total number of chars
in an indexed expression...]"

Restrains self from producing further examples by tremendous effort of will.

Sorry, I want *one* language, with extensible syntax for special jobs.  I want
it in *one* computing environment.  I want that environment to support stuff
like document preparation, access to the worlds of more or less structured
data out there Somewhere...

And it's not just a hardened Programmer type like me who wants to tailor and
extend.  You ask some longer-term users of stuff like word processors if
there's any little changes they'd like to make... chances are they'll describe
some reprogramming to you.  Look at LOTUS's success - I'd bet a significant
proportion (>20%) of users use Macros some time or other.

Finally a plug: the nearest thing to a usable environment-and-prog-lang I know
is POPLOG, from UnivOfSussexUK / Systems Designers.  OK, now I'll get the
asbestos suit on.   Sigh.  Goodnight.

stefek zaba (sjmz%hplb@hplabs.hp.com, let's say...)

lee@ssc-vax.UUCP (Lee Carver) (01/29/88)

In article <2400001@otter.HP.COM>, sjmz@otter.HP.COM (Stefek Zaba) writes:
> After a while this gets REALLY tedious; "how do I simulate a WHILE
> loop in this one?  what's the syntax for conditionals?  You mean it DOESN'T
> support conditionals!? 

Rather then indenpendent small languages, how about nested small
langauges?   Then the smallest small languages supports only the
'standard' flow control operations - conditional, loop, call.
(by the way, has anybody else seen the lovely little proposal for
intermixed loop/conditional in latest TOPLAS?)

All the 'small languages' need to bring are special commands -
subroutines packages would work, but some extensible syntax would be
nice.

> Sorry, I want *one* language, with extensible syntax for special jobs.  I want
> it in *one* computing environment.
> ...
> And it's not just a hardened Programmer type like me ...

Us _hardended programmer types_ :-), do understand, that really, it will
never happen that there is _one_ language.  Sorry.  No easter bunny
either :-).