Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

What is the most "Elegant" Language?

81 views
Skip to first unread message

pcm

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

Does anyone want to venture an opinion on what is the most elegant
programming language in the world today?

And has there been any recent languages especially noted for their
elegance?

- Peter.

(Personally, my vote would go for Scheme with the latest ANSII standard C++
a close second, but I'm certainly open to suggestions)


Ulrich Mayring

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

"pcm" <p...@mira.net> writes:


>Does anyone want to venture an opinion on what is the most elegant
>programming language in the world today?

What do you mean by elegant? I can think of these criteria:

1) clear and conceptually well founded semantics. I guess Prolog and LISP
would do well in this area, as would many other logic and functional
programming languages.
2) as little syntax as possible. Prolog, LISP score high again.
3) as little keyboard-typing as possible during development - I would pick
something like Prograph.
4) similarity to human thinking. You would have to look at neuronal nets,
frame-based systems, rules-based systems or whatever else you think
actually resembles human thinking. I guess you could make a point for OOP
here, too.
5) scalability to any project-size. This is probably still unresolved,
no language that I know of does that well. If that is important to you, I
would not so much look at the language itself, but at the actual tools
available.
6) personal anti-stress factor. Pick your favorite language ;-)

Ulrich

BTW, does anyone have any electronic documentation for LPA MacProlog? I
have a demo version here and need some kind of list of built-in predicates
and GUI documentation.
--
Ulrich Mayring
Please reply to: u @ 123 . org
==========================================================================
You can also use ulim @ addict . de or ulim @ freebsd . first . gmd . de

Kevin Albrecht

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
> And has there been any recent languages especially noted for their
> elegance?
>
> (Personally, my vote would go for Scheme with the latest ANSII standard
C++
> a close second, but I'm certainly open to suggestions)

IMHO, C++ is one of the most _useful_ languages, and I'm sure I'll always
use it, but it is one of the most unelegant languages. I like languages
that don't ever look cluttered, like Visual Basic, but VB is definitely not
half as useful as C++. My vote goes to Icon.

Kevin Albrecht
kev...@earthlink.net
http://home.earthlink.net/~kevalb/

Dann Corbit

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

The most elegant language is whichever one you like the best. Now please
go away. In news:comp.lang.c we like the posts to be topical.
--
C-FAQ ftp sites: ftp://ftp.eskimo.com ftp://rtfm.mit.edu
Hypertext C-FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-FAQ Book: ISBN 0-201-84519-9.
Want Software? Algorithms? Pubs? http://www.infoseek.com

pcm <p...@mira.net> wrote in article <01bcc53d$2d9ef3c0$2f2d11cb@pc1>...


>
> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
> And has there been any recent languages especially noted for their
> elegance?
>

> - Peter.


>
> (Personally, my vote would go for Scheme with the latest ANSII standard
C++

1. There is no ANSI standard for C++, it is still an ARM only
2. It's ANSI (one I)
3. ISO would be world-wide, while ANSI is only for USA.
4. Trolls of this nature should cover a wider area, you left out ML and
FORTRAN, among other things.

> a close second, but I'm certainly open to suggestions)

Suggestion:
Spam, trolls and flames are considered rude. Please go away and don't come
back until you figure out how to be topical.


Bill Coderre

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

In article <01bcc53d$2d9ef3c0$2f2d11cb@pc1>, "pcm" <p...@mira.net> wrote:
| Does anyone want to venture an opinion on what is the most elegant
| programming language in the world today?
|
| And has there been any recent languages especially noted for their
| elegance?
|
| - Peter.

Will someone PLEASE create comp.lang.advocacy?

Pretty please?

bc
who KNOWS that the most "elegant" language is obviously TECO, because you
can make a self-replicating program in the fewest bytes.

Ron Natalie

unread,
Sep 19, 1997, 3:00:00 AM9/19/97
to

pcm wrote:
>
> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
"When I am working on a problem I never think about beauty. I only
think about how to solve the problem. But when I have finished,
if the solution is not beautiful, I know it is wrong."

- Buckminster Fuller (1895-1983)

Alicia Carla Longstreet

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Right, there is no such thing as a elegant programming language, only
elegant programs. Your question is like asking, what company makes the
most elegant hammer.

Now go away and stop bothering people with foolish questions.

--
************************************************
* Alicia Carla Longstreet ca...@ici.net *
* Remove NO_SPAM when replying to me. *
************************************************
My compassion for someone is not limited
to my estimate of their intelligence.
Dr Gillian, Star Trek IV, The Voyage Home
************************************************
My opinion is a view I hold until - well - until
I find out something that changes it.
Luigi Pirandello

pcm

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to


Alicia Carla Longstreet <ca...@ici.net> wrote in article

>
> Now go away and stop bothering people with foolish questions.
>

Haven't you heard the saying that there are no foolish questions, just
foolish answers? It seems you have demonstrated this quite well.



> My compassion for someone is not limited
> to my estimate of their intelligence.
> Dr Gillian, Star Trek IV, The Voyage Home

How ironic to see this in your message.

pcm

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to


Ulrich Mayring <ro...@127.0.0.1> wrote in article
<5vuv46$33e$1...@News.CoLi.Uni-SB.DE>...


> "pcm" <p...@mira.net> writes:
>
>
> >Does anyone want to venture an opinion on what is the most elegant
> >programming language in the world today?
>

> What do you mean by elegant? I can think of these criteria:
>
> 1) clear and conceptually well founded semantics. I guess Prolog and LISP

> would do well in this area, as would many other logic and functional
> programming languages.

I think Lisp has become far too bloated. Scheme seems to be an elegant
improvement.

> 3) as little keyboard-typing as possible during development - I would
pick
> something like Prograph.

Prograph? Never heard of that. Is it some form of drag and drop based
programming tool?

> 4) similarity to human thinking. You would have to look at neuronal nets,


I think this depends on *who's* human thinking. I'm sure a zen master
would have a far more elegant mental landscape than, for example, any
typical politition or manager.

> 6) personal anti-stress factor. Pick your favorite language ;-)

I like this!

- Peter.


pcm

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to


Ron Natalie <r...@sensor.com> wrote in article <342316...@sensor.com>...


> pcm wrote:
> >
> > Does anyone want to venture an opinion on what is the most elegant
> > programming language in the world today?
> >

> "When I am working on a problem I never think about beauty. I only
> think about how to solve the problem. But when I have finished,
> if the solution is not beautiful, I know it is wrong."
>
> - Buckminster Fuller (1895-1983)

I was thinking more along the lines that there can be beauty in the process
of creation as well as in the solution. I'm sure elegant (and relevant)
tools inspire the user to create elegant solutions.

- Peter.

pcm

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

> The most elegant language is whichever one you like the best. Now please
> go away. In news:comp.lang.c we like the posts to be topical.

Well thanks for that. Now you can put your head back into the sand and
stop bothering people trying to have a sensible discussion.

> Spam, trolls and flames are considered rude. Please go away and don't
come
> back until you figure out how to be topical.

And self appointed moral leaders of the internet are a total
pain-in-the-arse. If you don't have the intellectual capacity to
contribute then please keep your pathetic mouth shut.


Alicia Carla Longstreet

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

pcm wrote:

> Alicia Carla Longstreet <ca...@ici.net> wrote in article

> > Now go away and stop bothering people with foolish questions.

> Haven't you heard the saying that there are no foolish questions, just
> foolish answers? It seems you have demonstrated this quite well.

Haven't you heard about trolls, they hide in the deep dark recesses of
the NG's waiting to spring some apparently reasonable question to
confound and confuse others, a question that is foolish and designed
only to foment unrest among the denizens of the NG's.

Trolls can be identified by the following criteria: (although a post
meeting any or all of these criteria is not necessarily a troll)

1.) Posting to multiple newsgroups, often incompatible newsgroups.
2.) A question where the response is a matter of opinion.
3.) An area of opinion where persons are likely to have entrenched
feelings.



> > My compassion for someone is not limited
> > to my estimate of their intelligence.
> > Dr Gillian, Star Trek IV, The Voyage Home
>
> How ironic to see this in your message.

Compassion does not mean suffering the foolishness of those whose only
amusment in life is to make others angry and hurt.

--
************************************************
* Alicia Carla Longstreet ca...@ici.net *
* Remove NO_SPAM when replying to me. *
************************************************

My compassion for someone is not limited
to my estimate of their intelligence.
Dr Gillian, Star Trek IV, The Voyage Home

Mark Wilden

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Alicia Carla Longstreet wrote:
>
> Right, there is no such thing as a elegant programming language, only
> elegant programs. Your question is like asking, what company makes the
> most elegant hammer.

You obviously don't use hammers often. :) A good workman may not blame
his tools, but he can certainly distinguish elegance, usefulness,
strength, durability and fitness among them.

Martin Rodgers

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Bill Coderre wheezed these wise words:

> Will someone PLEASE create comp.lang.advocacy?

I've suggested this myself, once or twice. ;)

> Pretty please?

I'll get my coat.
--
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough
Please note: my email address is gubbish
assert(got(coat)).

Mark Wilden

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Torkel Franzen wrote:
>
> The contribution you complain of was profound and to the point.
> Questions about "the most elegant language" are inane or disingenuous
> or both.

Bollocks. Such a question leads to discussing the definition of
"elegance" and how this quality applies to different languages.

Of course, if you aren't interested in this, ignore it (as I do most of
the cruft around here).

Alexander Backlund

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to


Mark Wilden <Ma...@mWilden.com> wrote in article
<3423E9...@mWilden.com>...


> Alicia Carla Longstreet wrote:
> >
> > Right, there is no such thing as a elegant programming language, only
> > elegant programs.
>

> A programming language is implemented by programs. The syntax is its
> user interface. Saying that there is no such thing as an elegant
> programming language is like saying there is no such thing as an elegant
> natural language, only elegant sentences.

Which happens to be true.

Bryant Brandon

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

In article <342350...@ici.net>, carlaN...@ici.net wrote:

[...]

>Now go away and stop bothering people with foolish questions.

You're wrong here. There are no foolish questions, only foolish
answers. For example, to the subject of this thread I would have to say:
I know nothing about elegance. I also know nothing about assembly.
Therefore, assembly is the most elegant.

B.B. --Actually, on Jeopardy, there are foolish questions.

Mark Wilden

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Alicia Carla Longstreet wrote:
>
> Trolls can be identified by the following criteria: (although a post
> meeting any or all of these criteria is not necessarily a troll)

In other words, those criteria don't "identify" a troll at all. Sounds
like you need more criteria.

> 1.) Posting to multiple newsgroups, often incompatible newsgroups.

That's reasonable, but these newsgroups aren't incompatible with the
subject.

> 2.) A question where the response is a matter of opinion.

That criterion applies to 90% of all newsgroup posts.

> 3.) An area of opinion where persons are likely to have entrenched
> feelings.

I find others' opinions interesting on occasion, entrenched or not.

> Compassion does not mean suffering the foolishness of those whose only
> amusment in life is to make others angry and hurt.

If you can infer all that from a single question, you're not only
compassionate, you're telepathic. :)

Mark Wilden

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Bryant Brandon

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

In article <01bcc53d$2d9ef3c0$2f2d11cb@pc1>, "pcm" <p...@mira.net> wrote:

>Does anyone want to venture an opinion on what is the most elegant
>programming language in the world today?
>

>And has there been any recent languages especially noted for their
>elegance?
>
>- Peter.

Well, it depends on what you're doing. By elegant, I mean "Most closely
matches my goal." For example, I would use Fortran if I wnated to crunch a
million numbers through an algorithm. I would use Mathematica for
symbolics. I would use Lisp for a self-modifying or extremely flexible
program. I would use C if I was doing very low-level stuff such as
communications among different languages. I would use C++ for RAD or
experimentation, but it is flexible enough to creep into some of the other
fields. On C++, I think of it as the Swiss Army Knife of programming
languages. It can do almost everything, but you would be far better off
knowing how to use a few more specialized tools as well.

>(Personally, my vote would go for Scheme with the latest ANSII standard C++

>a close second, but I'm certainly open to suggestions)

B.B.

Alicia Carla Longstreet

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Mark Wilden wrote:

> Torkel Franzen wrote:

> > The contribution you complain of was profound and to the point.
> > Questions about "the most elegant language" are inane or disingenuous
> > or both.

> Bollocks. Such a question leads to discussing the definition of
> "elegance" and how this quality applies to different languages.

So please take your discussion to alt.elegance



> Of course, if you aren't interested in this, ignore it (as I do most of
> the cruft around here).

It is so much better if these types of discussions were taken to a place
where people are interested in them.

Dennis Weldy

unread,
Sep 20, 1997, 3:00:00 AM9/20/97
to

Do understand that Alicia is a veteran of the "Nudds Flamewars", and may
have a low tolerance for that which could start another ;-)

Dennis

pcm wrote in article <01bcc5b0$9d29a780$682d11cb@pc1>...

>
>
>Alicia Carla Longstreet <ca...@ici.net> wrote in article
>
>>

>> Now go away and stop bothering people with foolish questions.
>>
>

>Haven't you heard the saying that there are no foolish questions, just
>foolish answers? It seems you have demonstrated this quite well.
>

>> My compassion for someone is not limited
>> to my estimate of their intelligence.
>> Dr Gillian, Star Trek IV, The Voyage Home
>

>How ironic to see this in your message.
>
>

>.
>


Jeffrey C. Dege

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

On 19 Sep 1997 20:49:56 GMT, "pcm" <p...@mira.net> wrote:
>
>Does anyone want to venture an opinion on what is the most elegant
>programming language in the world today?
>
>And has there been any recent languages especially noted for their
>elegance?

I've recently invented a language that appears to be simpler and more
expressive than any I've seen so far. It contains no variables, no
functions, and only one statement: "do_what_i_want". Every program,
no matter how complicated, when translated into my new language,
is represented by this one statement.

I've gone beyond this promising start to write a compiler that translates
the high-level source code into a platform-independent byte code. Only
one byte-code is defined, 0x01, (usually referred to by its mnemonic,
DWIW). Compiled programs are always exactly one byte long.

I've started designing a virtual machine that will execute the byte code
generated by this new language, but I haven't gotten very far. Is anyone
willing to help?

--
From briefcase then there comes a list of things we must revise.
And all but four within the room are taken by surprise.
And all but four are thinking of their last job with remorse:
The customer, the manager, the doggy and the horse.


Erik Naggum

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

[somebody asks for the most elegant language]

* Jeffrey C. Dege


| I've recently invented a language that appears to be simpler and more
| expressive than any I've seen so far. It contains no variables, no
| functions, and only one statement: "do_what_i_want". Every program,
| no matter how complicated, when translated into my new language,
| is represented by this one statement.

you call _that_ elegant? underline in the middle of variable names is
ugly, _real_ ugly. `do-what-i-want' would be vastly more elegant.

#\Erik
--
see http://www.naggum.no/emacs/ for Emacs-20-related material.

user

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

pcm wrote:
>
> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
> And has there been any recent languages especially noted for their
> elegance?
>
> - Peter.

>
> (Personally, my vote would go for Scheme with the latest ANSII standard C++
> a close second, but I'm certainly open to suggestions)

CLARION

Ulrich Mayring

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

"pcm" <p...@mira.net> writes:

>I think Lisp has become far too bloated. Scheme seems to be an elegant
>improvement.

Yes, I was implying the "old" Prolog and LISP standards, as far as clear
semantic concepts are concerned. Prolog and LISP both have become
"cluttered" with meta-predicates/functions and other useful things that
you need to do some real-world programming. However, both languages are
IMHO not half as cluttered as C++ ;) Can't say much about Scheme, but I
always tend to think OO languages distribute their functionality over a
too large area of code to be really elegant. Which brings me to another
good criterion for elegance:

7) amount of source code needed to solve a problem. A language that needs
less source code to solve a problem than any other can't be all unelegant.

>> 3) as little keyboard-typing as possible during development - I would
>pick
>> something like Prograph.

>Prograph? Never heard of that. Is it some form of drag and drop based
>programming tool?

Yes, you can get a demo version for Macintosh. Basically it shows you an
object on the screen and you connect it to other objects. Then you define
the interfaces between objects, by dragging e.g. a button to it. Then,
whenever you press that button on the first object, the second one is
invoked. This sounds like a pure GUI builder, but it isn't. You can not
only drag and drop GUI elements, but also real code (like predefined or
self-made functions). I haven't actually done anything in Prograph, but
there is a newsgroup comp.lang.prograph, where people will give you
detailed information or an FAQ.

>I think this depends on *who's* human thinking. I'm sure a zen master
>would have a far more elegant mental landscape than, for example, any
>typical politition or manager.

This probably is debatable, until you clearly define "elegant mental
landscape" ;-) But I also like to think a Zen master's brain is much
simpler to understand and visualize than a regular person's.

Ulrich

Alicia Carla Longstreet

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

No, FORCE.

--
************************************************
* Alicia Carla Longstreet ca...@ici.net *
* Remove NO_SPAM when replying to me. *
************************************************

My compassion for someone is not limited
to my estimate of their intelligence.
Dr Gillian, Star Trek IV, The Voyage Home

James P. White

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

Jeffrey C. Dege wrote:
>
> I've recently invented a language that appears to be simpler and more
> expressive than any I've seen so far. It contains no variables, no
> functions, and only one statement: "do_what_i_want". Every program,
> no matter how complicated, when translated into my new language,
> is represented by this one statement.
>
> I've gone beyond this promising start to write a compiler that translates
> the high-level source code into a platform-independent byte code. Only
> one byte-code is defined, 0x01, (usually referred to by its mnemonic,
> DWIW). Compiled programs are always exactly one byte long.
>
> I've started designing a virtual machine that will execute the byte code
> generated by this new language, but I haven't gotten very far. Is anyone
> willing to help?

Well, I would, but my time is consumed implementing my *more* elegant
language which has as its single statement "do_it". The benefits of its
more concise syntax and freedom from error in the programmers' wants are
obvious. Runtime effeciency is vastly superior due to the use of a
single bit to encode the instruction. Perhaps we will be able to
overcome that incompatibility and combine our efforts into a Universal
Virtual Machine. Oh drat, I think that name is already trademarked...

jim
-----------------------------------------------------------------------
James P. White Netscape DevEdge Champion for IFC
Director of Technology Adventure Online Gaming http://www.gameworld.com
Developers of Gameworld -- Live Action Role-Playing and Strategic Games
j...@aognet.net Pagesmiths' home is http://www.pagesmiths.com

f o x a t . n y u . e d u

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

"pcm" <p...@mira.net> writes:

> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?

I think everyone will agree that the most elegant programming
language in the world today is Haskell. Won't they?
--
David Fox http://www.cat.nyu.edu/fox xoF divaD
NYU Media Research Lab f...@cat.nyu.edu baL hcraeseR aideM UYN

f o x a t . n y u . e d u

unread,
Sep 21, 1997, 3:00:00 AM9/21/97
to

theg...@airmail.net (Bryant Brandon) writes:

> In article <342350...@ici.net>, carlaN...@ici.net wrote:
>

> >Now go away and stop bothering people with foolish questions.
>

> You're wrong here. There are no foolish questions, only foolish
> answers. For example, to the subject of this thread I would have to say:
>

> B.B. --Actually, on Jeopardy, there are foolish questions.

There are also foolish questions in journalism.
(And lots of other places, including here.)

William Paul Vrotney

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

In article <y5aiuvu...@graphics.cat.nyu.edu> f o x @ c a t . n y u . e


d u (David Fox) writes:

>
> "pcm" <p...@mira.net> writes:
>
> > Does anyone want to venture an opinion on what is the most elegant
> > programming language in the world today?
>
> I think everyone will agree that the most elegant programming
> language in the world today is Haskell. Won't they?

"Everything should be as simple as possible ... but not simpler." - Albert
Einstein. In Lisp one can do mostly functional programming but can
occasionally do other things and can use side effects when that seems like a
more correct solution. I believe it is Knuth that shows even the seemingly
inelegant GOTO is necessary for certain special algorithms.

--

William P. Vrotney - vro...@netcom.com

Richard A. O'Keefe

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

f o x @ c a t . n y u . e d u (David Fox) writes:
>I think everyone will agree that the most elegant programming
>language in the world today is Haskell. Won't they?

Close, but Clean has a far better approach to IO (always a problem in
pure functional languages).

--
Unsolicited commercial E-mail to this account is prohibited; see section 76E
of the Commonwealth Crimes Act 1914 as amended by the Crimes Legislation
Amendment Act No 108 of 1989. Maximum penalty: 10 years in gaol.
Richard A. O'Keefe; http://www.cs.rmit.edu.au/%7Eok; RMIT Comp.Sci.

Ian Collier

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

In article <bc-190997...@17.127.18.74>, b...@wetware.com (Bill Coderre) wrote:
>bc
>who KNOWS that the most "elegant" language is obviously TECO, because you
>can make a self-replicating program in the fewest bytes.

Not necesarily, since there are many languages in which the empty program
is self-replicating.
--
---- Ian Collier : i...@comlab.ox.ac.uk : WWW page below
------ http://www.comlab.ox.ac.uk/oucl/users/ian.collier/imc.html

Dale Gerdemann

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Tom I Helbekkmo wrote:
> ...
>
> Of course there are elegant programming languages. I don't think you
> can name a "most elegant" one, though -- the intended problem domain
> has to be a part of the evaluation. Scheme is elegant, and so is APL,
> but for different reasons.
>
I certainly agree that Scheme is elegant, but on the other hand, I've
seen some pretty ugly code written in it. Part of the problem is the
idea of "functions as first class citizens". If this is used too much,
then functions will be passed around in all different directions. It's
like a bunch of spagetti to trace backwards and find where all the
functions come from.

One thing that definitely does make Scheme elegant is the fact that
there is a very elegant book that's been written about the language.
Perhaps it's a more reasonable question to ask: for language X what
is the most elegant introductory book that's been written for that
language. I'll take the first crack at it and say that C is a very
elegant language, at least when it's presented by Eric Roberts in
"The Art and Science of C". I'm really looking forward to seeing the
new second volume of this book.

Dale Gerdemann

Rijn Buve

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to Mark Wilden

Questions like "what's the most elegant language" occasionally lead to
Style Wars and Deep Thoughts about what beauty and elegance really are.
These threads, although amusing at times, usually lead nowhere. My "most
elegant" language will probably not be yours.

Regards,
-Rijn

--

.______________.----------------------------+
| | CMG Den Haag BV (NL) |
| Rijn W. Buve | Div. Advanced Technology |
|______________| E-mail: rijn...@cmg.nl |
| Any views expressed here are my own and |
| not represent my employers or customers |
+------------------------------------------+

Arthur Gold

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

In article <01bcc53d$2d9ef3c0$2f2d11cb@pc1>, "pcm" <p...@mira.net> wrote:

>Does anyone want to venture an opinion on what is the most elegant
>programming language in the world today?
>
>And has there been any recent languages especially noted for their
>elegance?
>
>- Peter.
>
>(Personally, my vote would go for Scheme with the latest ANSII standard C++
>a close second, but I'm certainly open to suggestions)

Without ascribing any particular intent to the original poster, this is
obviously a 'troll'-type question--which can sometimes actually be
valuable. What may be gained here (through iterative discussion) is the
answer to a more important question, i.e. "What makes a programming
language elegant?"

I offer a starting point: the elegance of a language is comprised of three
aspects, its expressibility (what meta-concepts can be expressed), its
brevity (how long does it take to express these concepts) and its
readibility (how easily can someone other than the original programmer
deduce what's going on, at a high level).

So there's some grist for the mill. I just truly hope it's useful grist.

--Artie
--
Artie Gold -------------------------- Austin, Texas
email: arti...@weirdness.com, ag...@cs.utexas.edu

"I've never liked side effects. They always left me groaning on the floor."

Mike Powers

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Dale Gerdemann wrote:
>
> Tom I Helbekkmo wrote:
> > ...
> >
> > Of course there are elegant programming languages. I don't think you
> > can name a "most elegant" one, though -- the intended problem domain
> > has to be a part of the evaluation. Scheme is elegant, and so is APL,
> > but for different reasons.
> >
<snip functional language bit>

> Dale Gerdemann

Functional languages make my head hurt...

Well, one of my hobbies is collecting old, unsupported languages that
have no third-party developer tools and basically leave you stranded
with a text editor and a command line compiler as your development
environment. Which, of course, is my idea of heaven. Anyhow, on my
travels I've seen a couple of languages that struck me as being
'elegant', the first of which is TCL (Tool Command Language) which I've
seen on Acorn RISCOS and Unix X-Windows. It's a scripting language that
lets you do all sorts of windowing type stuff without doing all the
housekeeping that goes with it. It also has a really nice viewer for
troff-style documentation. A noughts-and-crosses game can be done in as
little as 50 lines of code.

The other 'elegant' language was a little one called Icon, which is a
cross (I suppose) between C and Pascal, but is neither. Its forte is
string handling, and its nice dynamic memory allocation means that all
the lurking horrors of pascal are gone. It's pretty loosely typed, so
you have to be careful.

On a slightly different note - is there still anyone out there who
thinks that Pascal is actually any good? I had a play with Delphi (I do
a lot of VC++ coding and wanted something to make life easier) and was
so disappointed it was based on pascal. Ah well.

Peter.

Constantine Antonovich:

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Jeffrey C. Dege wrote:

>
> On 19 Sep 1997 20:49:56 GMT, "pcm" <p...@mira.net> wrote:
> >
> >Does anyone want to venture an opinion on what is the most elegant
> >programming language in the world today?
> >
> >And has there been any recent languages especially noted for their
> >elegance?
>
> [skipped]

In my opinion, it's just interesting that such an innocent
question can yield the enormous amount of infuriated answers with
no variance: "shut up".
In the comp.lang.c++ newsgroup, I have seen a lot of stupid
questions which nevertheless had been diligently discussed and no
one involved didn't seem to be ashamed. In the same newsgroup, I
have seen a lot of diligently answered questions regarding buttons
and windows in spite of absolute absence of such notions in the
c++ language and no one hadn't been recommended to get out to
another groups. I guess the other groups are pretty same.
Probably a language elegance is just a matter of taste.
Probably the elegance can be defined in different terms and
different ways. Any language exists not only in its own
boundaries and there is a lot of classic algorithms so, for
example, a language can be considered according to simplicity and
elegance of the algorithms implementation. For another example,
the STL idea even influenced the c++ language (I believe to make
it more elegant).
The question can be considered as very naive one. The question
can be considered as extremely complicated and even too
complicated to be discussed in newsgroups. I would consider myself
as a person with not sufficient knowledge of different programming
languages to discuss their cross-elegance and so I can imagine the
question is worth not to be answered at all. But THE ANSWERS...
Probably they demonstrates the today world tendency where
placement of a comma in a program is much more important than
reasons for the program to exists. That just reminds me the old
joke: what is better, a sandwich or eternal bliss? Of course a
sandwich. Because what can be better than eternal bliss? Nothing.
And sure a sandwich is better than nothing.

//------------------------------------------------------------------
// Opinions expressed here are my own only
//
// Constantine Antonovich, Tel. : ++972-8-942-3819
// software engineer, Fax : ++972-8-942-3955
// Orbotech Ltd., P.O.Box 215, Email: co...@orbotech.co.il
// Yavne 81102, Israel
//------------------------------------------------------------------

Dann Corbit

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Arthur Gold <arti...@weirdness.com> wrote in article
<artiegold-220...@apm6-147.realtime.net>...
[snip]

> I offer a starting point: the elegance of a language is comprised of
three
> aspects, its expressibility (what meta-concepts can be expressed), its
> brevity (how long does it take to express these concepts) and its
> readibility (how easily can someone other than the original programmer
> deduce what's going on, at a high level).
Brevity and readability are often opposites. And this arbitrary definition
of elegance is no better or worse than any other. And now, how do we
define 'expressibility'? What is 'readability'?

Consider:
MIX {one of Knuth's toys} is probably the ugliest language ever defined {my
opinion}.
Knuth's algorithms, written in MIX, are almost always very elegant {my
definition}.
I have seen million line projects where all the code was elegant {so much
for brevity}
I have seen ten line programs that absolutely made me cringe.
I have seen highly readable code that was highly readable crap.


>
> So there's some grist for the mill. I just truly hope it's useful grist.

What is the most <SUPERLATIVE> language?
OR
What is the most <SUPERLATIVE> operating system?
subject lines never lead to anything useful. Do a Deja News web search for
megs and megs of proof. Even if such a topic were useful to come to some
sort of consensus, it would not be useful on comp.lang.c.
--
C-FAQ ftp sites: ftp://ftp.eskimo.com ftp://rtfm.mit.edu
Hypertext C-FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-FAQ Book: ISBN 0-201-84519-9.
Want Software? Algorithms? Pubs? http://www.infoseek.com

Alicia Carla Longstreet

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Constantine Antonovich: wrote:
>
> Jeffrey C. Dege wrote:
> >
> > On 19 Sep 1997 20:49:56 GMT, "pcm" <p...@mira.net> wrote:
> > >
> > >Does anyone want to venture an opinion on what is the most elegant
> > >programming language in the world today?
> > >
> > >And has there been any recent languages especially noted for their
> > >elegance?
> >
> > [skipped]
>
> In my opinion, it's just interesting that such an innocent
> question can yield the enormous amount of infuriated answers with
> no variance: "shut up".
[snip]

About a year ago someone asked the question "What is the best language?"
the result was a months long argument with everybody vehemently putting
forth their personal opinion. That discussion brought out some real nut
cases.

The problem here is, there just is no answer, it is purely a metter of
personal opinion. Some people do get hot under the collar when their
opinion is challenged. So, to avoid another 'best langauge' debacle a
lot of persons are saysin 'shut up'.

Note: many questions of this nature are just trolls. The poster is
bored and wants to foment argument since this is more interesting to him
than the normal technical discussions and help responses that you
usually get.

Les Carter

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Anyone will agree that 'ML' is the most elegant langauge :))

Jeffrey C. Dege wrote in article ...

>On 19 Sep 1997 20:49:56 GMT, "pcm" <p...@mira.net> wrote:
>>
>>Does anyone want to venture an opinion on what is the most elegant
>>programming language in the world today?
>>
>>And has there been any recent languages especially noted for their
>>elegance?
>

>I've recently invented a language that appears to be simpler and more
>expressive than any I've seen so far. It contains no variables, no
>functions, and only one statement: "do_what_i_want". Every program,
>no matter how complicated, when translated into my new language,
>is represented by this one statement.
>
>I've gone beyond this promising start to write a compiler that translates
>the high-level source code into a platform-independent byte code. Only
>one byte-code is defined, 0x01, (usually referred to by its mnemonic,
>DWIW). Compiled programs are always exactly one byte long.
>
>I've started designing a virtual machine that will execute the byte code
>generated by this new language, but I haven't gotten very far. Is anyone
>willing to help?
>

Thant Tessman

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Dann Corbit wrote:

> Brevity and readability are often opposites. [...]

Too often this is nothing more than an excuse made by
the designers of bad languages.

Particularly annoying is an analogous claim made by Bjarne
Stroustrup in http://www.research.att.com/~bs/blast.html

"Over the years C++ has been deemed useless because it
lacked (among other things) type checking, metaclasses,
multiple inheritance, garbage collection, generics,
concurrency support, exceptions, co- and contra-variance,
dynamic linking, typecase switches. Simultaneously, it
was - often by the same people - deemed useless because
it was too complicated and had too many features."

So how come there are languages that manage to support
most of the above features without being NEARLY as
complicated and butt-ugly as C++?

And to add a little weight to my claims, here's yet
another example of why C++ sucks that I ran across
just last week. (I have a bunch of these examples. I
was thinking of putting together a book of examples of
why C++ sucks except I hear somebody named Scott Meyers
already beat me to it.)


struct Base {

virtual void foo() const = 0;
};


struct ImpLeft : virtual Base {

virtual void foo() const {}
};


struct ImpRight : virtual Base {

ImpRight() {

foo();
}

};

struct Derived : ImpLeft, ImpRight {};


main () {

Derived a; // Kablooey! foo is still pure virtual
// even though ImpLeft is built before
// ImpRight
}


--
thant at acm dot org

add...@bottom.of.message

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

In article <86n2l7g...@athene.nhh.no>, Tom I Helbekkmo <t...@nhh.no> wrote:
>Damn -- I can't remember their name. It's an American company, and
>the hammer I'm thinking of has a beautiful, warm golden brown handle
>and a delicious sheen to the metal. The head is not all that special;
>it's just clean and functional, but that's part of the beauty of it.

<homer>
Mmmm, hammers.
</homer>

But seriously, please take this out of comp.lang.prolog at
least... discussions like this come around at least twice a year.

--Jamie.
` andrews at csd.uwo.ca

Ray Dillinger

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

Arthur Gold wrote:


> In article <01bcc53d$2d9ef3c0$2f2d11cb@pc1>, "pcm" <p...@mira.net> wrote:
>
> >Does anyone want to venture an opinion on what is the most elegant
> >programming language in the world today?
> >
> >And has there been any recent languages especially noted for their
> >elegance?
> >
> >- Peter.
> >
> >(Personally, my vote would go for Scheme with the latest ANSII standard C++
> >a close second, but I'm certainly open to suggestions)
>
> Without ascribing any particular intent to the original poster, this is
> obviously a 'troll'-type question--which can sometimes actually be
> valuable. What may be gained here (through iterative discussion) is the
> answer to a more important question, i.e. "What makes a programming
> language elegant?"
>
> I offer a starting point: the elegance of a language is comprised of three
> aspects, its expressibility (what meta-concepts can be expressed), its
> brevity (how long does it take to express these concepts) and its
> readibility (how easily can someone other than the original programmer
> deduce what's going on, at a high level).
>
> So there's some grist for the mill. I just truly hope it's useful grist.
>

I have a counteropinion... I think that elegance in a language can be
measured as a ratio of how much expressibility (your definition),
brevity, and efficiency a language buys for how little an investment
of programmer knowledge.

Elegant languages don't have as many different statement types as
inelegant languages.

Elegant languages don't (necessarily) have as big a standard library
as inelegant languages.

Elegant languages don't require the programmer to remember as many
rules, or as many exceptions to rules, as inelegant languages.

And yet, despite that, elegant languages tend to express the same
algorithm in a smaller number of symbols than inelegant languages.


Of course, the last statement implies the existence of an algorithm --
meaning, elegance in some cases is relative to what problem you're
working on.

Bear

David Hanley

unread,
Sep 22, 1997, 3:00:00 AM9/22/97
to

pcm wrote:

> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?

English, but compilers which emit high-quality code are rare.

> - Peter.
>
> (Personally, my vote would go for Scheme with the latest ANSII
> standard C++
> a close second, but I'm certainly open to suggestions)

Huh. I don't know if I'd place those two in the same bit-bucket.
and, while I'dcall C++ 'powerful' I'm not sure if I'd call it 'elegant'.

SML and Haskall are fairly elegant, thought I wouln't qualify them
as
'most elegant', as I have not tried everything....

dave

Darin Johnson

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

In article <3426FE...@signature.below>, Thant Tessman wrote:
>So how come there are languages that manage to support
>most of the above features without being NEARLY as
>complicated and butt-ugly as C++?

Probably because of the way C++ implements the features
it does have. It's keyword heavy, and there are a lot of
combinations of keywords.

In many places, C++ does not decide upon one way of doing things, but
instead lets the programmer choose between two or more alternatives.
Ie, you have dynamic and static method binding, three levels of
attribute protection, virtual and non-virtual inheritance, etc. So
even with the feature set it does have, it is still complex. It's a
tradeoff - more choices allows the programmer to optimize the code
better, but it complicates the code, the compiler, maintenance, etc.

--
Darin Johnson
da...@usa.net.delete_me

Mark Carroll

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

Hmmm... personally, I think elegance in a language comes from having
compact but expressive syntax and semantics: the language definition
is small, but you can write pretty much anything you want fairly
concisely and naturally and your source code is readily comprehensible
by others.

I think Modula-3 is quite elegant, considering you can do systems
programming in it. But, I'll probably find a functional language
I consider more elegant once I've learned more better.

Followups trimmed to comp.lang.misc.

-- Mark

Boyd Roberts

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

<homer>
Donuts... Is there anything they can't do?
</homer>

--
Boyd Roberts <bo...@france3.fr> UTM N 31 447109 5411310

``Not only is UNIX dead, it's starting to smell really bad.'' -- rob

This week's Spam Address Troll (SPAT): mar...@mindsprint.com

Dennis Weldy

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

note: In your example, calling a virtual function from the CONSTRUCTOR,
winds up calling the base class' method. This is expected behavior, if I
recall correctly.
Note that ImpRight knows nada about ImpLeft's definition of foo.

Feel free to post more examples of "Why c++ sucks". ;-)

Dennis

Thant Tessman wrote in article <3426FE...@signature.below>...

>Dann Corbit wrote:
>
>> Brevity and readability are often opposites. [...]
>
>Too often this is nothing more than an excuse made by
>the designers of bad languages.
>
>Particularly annoying is an analogous claim made by Bjarne
>Stroustrup in http://www.research.att.com/~bs/blast.html
>
>"Over the years C++ has been deemed useless because it
>lacked (among other things) type checking, metaclasses,
>multiple inheritance, garbage collection, generics,
>concurrency support, exceptions, co- and contra-variance,
>dynamic linking, typecase switches. Simultaneously, it
>was - often by the same people - deemed useless because
>it was too complicated and had too many features."
>

>So how come there are languages that manage to support
>most of the above features without being NEARLY as
>complicated and butt-ugly as C++?
>

>And to add a little weight to my claims, here's yet
>another example of why C++ sucks that I ran across
>just last week. (I have a bunch of these examples. I
>was thinking of putting together a book of examples of
>why C++ sucks except I hear somebody named Scott Meyers
>already beat me to it.)
>
>
>struct Base {
>
> virtual void foo() const = 0;
>};
>
>
>struct ImpLeft : virtual Base {
>
> virtual void foo() const {}
>};
>
>
>struct ImpRight : virtual Base {
>
> ImpRight() {
>
> foo();
> }
>
>};
>
>
>
>struct Derived : ImpLeft, ImpRight {};
>
>
>main () {
>
> Derived a; // Kablooey! foo is still pure virtual
> // even though ImpLeft is built before
> // ImpRight
>}
>
>
>--
>thant at acm dot org

>.
>


Thant Tessman

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

[...followups redirected...]

Darin Johnson wrote:
>
> In article <3426FE...@signature.below>, Thant Tessman wrote:

> >So how come there are languages that manage to support
> >most of the above features without being NEARLY as
> >complicated and butt-ugly as C++?
>

> Probably because of the way C++ implements the features
> it does have. It's keyword heavy, and there are a lot of
> combinations of keywords.

Close, but not quite right. It has nothing to do with
keywords per se. The design goal of being based on "C"
meant that many design features couldn't be added cleanly.
C++ has many solutions that are only about 80% right. But
what's worse, they're not orthogonal to each other, and
they have all sorts of very subtle and unintuitive
interactions with each other. For example, namespaces and
overloading interact with each other in very peculiar ways.
And while templates are one of the best things about C++,
they are an incredible source of not only compiler complexity,
but a blizzard of truly subtle and bizarre programming
gotchas.

C++ just simply turned out to be a really bad idea. But so
many people have put so much energy into it, no one wants
to admit it.

-thant

Thant Tessman

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

[...followups redirected...]

Dennis Weldy wrote:
>
> note: In your example, calling a virtual function
> from the CONSTRUCTOR, winds up calling the base class'
> method. This is expected behavior, if I recall
> correctly. Note that ImpRight knows nada about
> ImpLeft's definition of foo.

It's the defined behavior, not the expected behavior.
Note that the only time ImpRight can't see ImpLeft::foo
is in the constructor and destructor. ImpRight can legally
call foo any other time and get ImpLeft's implementation.
And ImpLeft is free to affect values in Base to be seen
by ImpRight at construction time as well.

What surprised me was that the designers let me get away
with calling a pure virtual function at all. But it's
right there in section 10.4.6 of the 1997 C++ Public
Review Document:

Member functions can be called from a constructor (or
destructor) of an abstract class; the effect of making
a virtual call to a pure virtual function directly or
indirectly for the object being created (or destroyed)
from such a constructor (or destructor) is undefined.


> Feel free to post more examples of "Why c++ sucks". ;-)

Read through the C++ Public Review Document and look for
occurences of the phrases "behavior is undefined" and
especially "no diagnostic is required".

Or here's an even simpler indicator of how much C++ sucks:
Print out the C++ Public Review Document. Have someone
hold it about three feet above your head and then drop it.
Thus you will be enlightened.

-thant

Richard Katz

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

Jeffrey C. Dege wrote:

>
> On 19 Sep 1997 20:49:56 GMT, "pcm" <p...@mira.net> wrote:
> >
> >Does anyone want to venture an opinion on what is the most elegant
> >programming language in the world today?
> >
> >And has there been any recent languages especially noted for their
> >elegance?
>
> I've recently invented a language that appears to be simpler and more
> expressive than any I've seen so far. It contains no variables, no
> functions, and only one statement: "do_what_i_want". Every program,
> no matter how complicated, when translated into my new language,
> is represented by this one statement.
>
> I've gone beyond this promising start to write a compiler that translates
> the high-level source code into a platform-independent byte code. Only
> one byte-code is defined, 0x01, (usually referred to by its mnemonic,
> DWIW). Compiled programs are always exactly one byte long.
>
> I've started designing a virtual machine that will execute the byte code
> generated by this new language, but I haven't gotten very far. Is anyone
> willing to help?
>
> --
> From briefcase then there comes a list of things we must revise.
> And all but four within the room are taken by surprise.
> And all but four are thinking of their last job with remorse:
> The customer, the manager, the doggy and the horse.


You're in luck. A bug-free version of this language was created by one
William Ramage during the mid-1970s. It's only statement is:

do_what_i_meant

Even now we're still trying to install the exception handler which
calls:

do_what_i_forgot

Richard Katz

Joel Dinolt

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

Richard Katz wrote:
>
> Jeffrey C. Dege wrote:

> You're in luck. A bug-free version of this language was created by one
> William Ramage during the mid-1970s. It's only statement is:
>
> do_what_i_meant
>
> Even now we're still trying to install the exception handler which
> calls:
>
> do_what_i_forgot
>

In the video game industry, there's something very similar.
It's actually a hidden hardware bit in memory, which is often emulated
in software
because game hardware manufacturers never document it's whereabouts(or
if
it is documented, the third party liscencing agreement explicitly
forbids writing to that area of memory in a shipped product), called the
"BMPB",
or the Be My Product Bit.


--

Joel Dinolt
jdi...@pacbell.net
It's more fun to compute.

Jesse Paulsen

unread,
Sep 23, 1997, 3:00:00 AM9/23/97
to

In article <slrn6298o6...@jdege.visi.com>,

Jeffrey C. Dege <jd...@nospam.visi.com> wrote:
>I've recently invented a language that appears to be simpler and more
>expressive than any I've seen so far. It contains no variables, no
>functions, and only one statement: "do_what_i_want". Every program,
>no matter how complicated, when translated into my new language,
>is represented by this one statement.

Have you considered implementing a version of your new language
optimized for use in artificial intelligence through the addition
of the statement "do_what_you_want"?
--
Jesse Paulsen
jpau...@itis.com

"Imagination is more important than knowledge." - Albert Einstein

Richard A. O'Keefe

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

Thant Tessman <add...@signature.below>

>Read through the C++ Public Review Document and look for
>occurences of the phrases "behavior is undefined" and
>especially "no diagnostic is required".

Thant, there ISN'T any address, @ your signature or anywhere else.
Hence I'm following up here.

How many one obtain a copy of the C++ Public Review Document?
How recent is it?

I have the December 1996 draft, which convinced me that C9X would be
out before the C++ standard.

Alex Krol

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

Jesse Paulsen wrote:
>
> In article <slrn6298o6...@jdege.visi.com>,
> Jeffrey C. Dege <jd...@nospam.visi.com> wrote:
> >I've recently invented a language that appears to be simpler and more
> >expressive than any I've seen so far. It contains no variables, no
> >functions, and only one statement: "do_what_i_want". Every program,
> >no matter how complicated, when translated into my new language,
> >is represented by this one statement.
>
> Have you considered implementing a version of your new language
> optimized for use in artificial intelligence through the addition
> of the statement "do_what_you_want"?

No, the real improvement would be "do_no_what_I_think_I_want_but_
what_I_really_want_but_can't_formulate" :)

Regards,
Alex Krol

Mike Rubenstein

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

jd...@jdege.visi.com (Jeffrey C. Dege) wrote:

> I've recently invented a language that appears to be simpler and more
> expressive than any I've seen so far. It contains no variables, no
> functions, and only one statement: "do_what_i_want". Every program,
> no matter how complicated, when translated into my new language,
> is represented by this one statement.

Unfortunately, this isn't very useful. I really need a language with
the statement "do_what_i_should_want".

Michael M Rubenstein

Boyd Roberts

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

In article <3427FD...@signature.below>, Thant Tessman <add...@signature.below> writes:
>
>C++ just simply turned out to be a really bad idea. But so
>many people have put so much energy into it, no one wants
>to admit it.
>

I'm with you Captain. I can already smell the Napalm burning!

Charles Fiterman

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

The language do_what_i_want or do_what_i_should_want has a bug.
It eliminates programming jobs which is not what I want. In
fact given the amount of computer control it reduces us to
the level of pets which is really not what I want.

Alicia Carla Longstreet

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

Mike Rubenstein wrote:
>
> jd...@jdege.visi.com (Jeffrey C. Dege) wrote:
>
> > I've recently invented a language that appears to be simpler and more
> > expressive than any I've seen so far. It contains no variables, no
> > functions, and only one statement: "do_what_i_want". Every program,
> > no matter how complicated, when translated into my new language,
> > is represented by this one statement.
>
> Unfortunately, this isn't very useful. I really need a language with
> the statement "do_what_i_should_want".

Well gentlemen, I developed a language some time ago that has a single
instruction. Unfortunaltly, hardware capabilities are still lagging so
the computer I executed my program on is still laboring on the first
instruction.

Oh BTW, the only instruction is just_do_everthing

Thant Tessman

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to Richard A. O'Keefe

[...posted and e-mailed...]

Richard A. O'Keefe wrote:

> How many one obtain a copy of the C++ Public Review Document?
> How recent is it?

http://www.bby.com.au/%7Egnb/wp/

Dann Corbit

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

Alicia Carla Longstreet wrote in article <34291A...@ici.net>...


[clip]


>Well gentlemen, I developed a language some time ago that has a single
>instruction. Unfortunaltly, hardware capabilities are still lagging so
>the computer I executed my program on is still laboring on the first
>instruction.
>
>Oh BTW, the only instruction is just_do_everthing

Unfortunately, Nike felt that this infringed upon a copyright slogan and the
whole thing ended up mired in court.

Bill House

unread,
Sep 24, 1997, 3:00:00 AM9/24/97
to

Arthur Gold <arti...@weirdness.com> wrote in article
<artiegold-220...@apm6-147.realtime.net>...
>
>[snip]
>
> I offer a starting point: the elegance of a language is comprised of three
> aspects, its expressibility (what meta-concepts can be expressed), its
> brevity (how long does it take to express these concepts) and its
> readibility (how easily can someone other than the original programmer
> deduce what's going on, at a high level).
>
These are a fine start, but I suggest that different problem domains and user
communities will favor different portions of these ingredients. What seems
elegant to engineers programming CAD/CAM applications might not seem so
wonderful to graphic designers programming Web pages.

For a bit of an anecdote, I was having a debate with a German language designer
and a mathematician friend over the proposed syntax of a programming language.
They favored a Pascal-like declaration syntax, and visible end-of-line tokens
(i.e. semi-colons). I maintained that this would not be accepted by the
majority of their not-so-technical target audience. The better solution, I
held, was to use the same word order as C, and to dispense with the end-of-line
completely (i.e., CR/LF is end-of-line). Of course, they thought I was crazy.

Realizing that I was getting nowhere, I suggested that we try a bit of an
experiment -- we corralled the matematician's wife (an Irish RN) and asked her
to choose which style of declaration she preferred:

Customer MyCust;

MyCust: Customer;

MyCust As Customer

Customer MyCust

She chose the last one, citing the lack of puzzling punctuation, brevity and
more "natural" word order as the reasons for her choice. I never did try

MyCust The Customer

but perhaps I should have. <g>

Bill House
--
http://www.housewebs.com
Note: My e-mail address has been altered to confuse spambots


Dale Gerdemann

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

On the topic of elegence and computing, the following book notice
caught my eye:

Machine Beauty : Elegance and the Heart of Computing (Master Minds
Series)
by David Hillel Gelernter
Published by Basic Books
Publication date: February 1, 1998
ISBN: 0465045162

I can't say whether or not the book will be any good. But perhaps
Gelernter has something controversial to say since he somehow managed
to get the attention of the Unabomber.

-- Dale Gerdemann

Alexey Raschepkin

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

pcm wrote:

> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
> And has there been any recent languages especially noted for their
> elegance?
>

> - Peter.
>
> (Personally, my vote would go for Scheme with the latest ANSII
> standard C++
> a close second, but I'm certainly open to suggestions)

I think the most elegant languages are ones by Wirth.
But, elegant doesn't mean useful, the most useful languahes I consider C
and C++.
They are general-purpose language and reflect curren computer
architecture instead of, for example, LISP.

Alicia Carla Longstreet

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

I disagree, elegant does indeed imply useful, at least as far as
computer programs are concerned.

An elegant solution to a problem is both efficatious and efficient. It
is beautiful for its simplicity and usefullness of design. It is a
program that does its job succinctly but completely. If a language is
not useful it is definitly not elegant.

David Ness

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

Joachim Hoffmann wrote:
>
> <snip>
>
> Ervery primitive in J is a (composite) ASCII symbol of max. 2 chars.
>

Not that it matters much, but this is no longer quite true. V3.02 introduced `map fetch' represented
by `{::'. Of course, this doesn't invalidate anything you were saying ...

Dave Hansen

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

Posted and emailed. Newsgroups trimmed.
On 24 Sep 1997 23:45:56 GMT, "Bill House"
<bho...@nospam.housewebs.com> wrote:

>Realizing that I was getting nowhere, I suggested that we try a bit of an
>experiment -- we corralled the matematician's wife (an Irish RN) and asked her
>to choose which style of declaration she preferred:
>
> Customer MyCust;
>
> MyCust: Customer;
>
> MyCust As Customer
>
> Customer MyCust

I wonder what she would have said if you'd thrown

Customer *MyCustArray[20]
MyCustArray: Array [0..19] of Pointer to Customer

at her. C is my favorite language, but its declaration syntax has
been insightfully described as "an experiment that failed." I won't
post a really gross example, we've probably all seen them.

If you want to avoid punctuation, and you don't mind a few extra
keywords, how about:

MyCustArray is a 20 Element Array of Pointer to Customer

Regards,

-=Dave
dha...@btree.com

I can barely speak for myself, so I certainly can't speak for B-Tree

Paul Prescod

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

In article <3426FE...@signature.below>,

Thant Tessman <add...@signature.below> wrote:
>Dann Corbit wrote:
>
>> Brevity and readability are often opposites. [...]
>
>Too often this is nothing more than an excuse made by
>the designers of bad languages.
>
>Particularly annoying is an analogous claim made by Bjarne
>Stroustrup in http://www.research.att.com/~bs/blast.html

Why are you trying to start a protacted C++-centric flame war in many
innoncent newsgroups?

Paul Prescod


Joachim Hoffmann

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

ro...@127.0.0.1 (Ulrich Mayring) wrote:

>"pcm" <p...@mira.net> writes:
>>Does anyone want to venture an opinion on what is the most elegant
>>programming language in the world today?

I vote for J. (http://www.jsoftware.com)

>What do you mean by elegant? I can think of these criteria:

>1) clear and conceptually well founded semantics. I guess Prolog and LISP
>would do well in this area, as would many other logic and functional
>programming languages.
J: very short grammar; no exceptions, consistent.
Pure functional and also explicit programming style possible.

>2) as little syntax as possible. Prolog, LISP score high again.
IMHO J also, see above.

>3) as little keyboard-typing as possible during development - I would pick
>something like Prograph.


Ervery primitive in J is a (composite) ASCII symbol of max. 2 chars.

No reserved words.
No memory allocation nor variable declarations.

>4) similarity to human thinking. You would have to look at neuronal nets,
>frame-based systems, rules-based systems or whatever else you think
>actually resembles human thinking. I guess you could make a point for OOP
>here, too.
J is devoloped following the English language and
is also descibed in terms of a natural language,
e.g. nouns, verbs, adverbs, gerunds, copula ...

Nevertheless it's a very powerful mathematical notation and
practical progamming language.

>5) scalability to any project-size. This is probably still unresolved,
>no language that I know of does that well.
>...
No limit on object size in J. Higly modular and OO-oriented.
Easy access to other software.

>6) personal anti-stress factor. Pick your favorite language ;-)
Developing in J is fun, because your problems are solved very
quickly and productively, without overhead imposed by the language
itself.
In relation to the effort of learning J,
my expressivity (ability to solve problems)
was raised exponentially.


JoHo


Thant Tessman

unread,
Sep 25, 1997, 3:00:00 AM9/25/97
to

Paul Prescod wrote:

> Why are you trying to start a protacted C++-centric flame war
> in many innoncent newsgroups?

Because C++ REALLY SUCKS! And so does anyone who defends it!

[...followups redirected...]

Richard A. O'Keefe

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

"Bill House" <bho...@nospam.housewebs.com> writes:
>Realizing that I was getting nowhere, I suggested that we try a bit of an
>experiment -- we corralled the matematician's wife (an Irish RN) and asked her
>to choose which style of declaration she preferred:

> Customer MyCust;
>
> MyCust: Customer;

> MyCust As Customer

> Customer MyCust

>She chose the last one, citing the lack of puzzling punctuation, brevity and


>more "natural" word order as the reasons for her choice. I never did try

What you _should_ have done was either
- to explicitly say that ":" is to be pronounced as "is a" or "is an"
- to propose Pascal/Ada syntax with the colon spelled out.

I strongly suspect that

MyCust is a Customer

would have been a clear winner in your test. That certainly is a _far_
more natural word order in English (the language of your test) than
"Customer MyCust".

This can be combined with a neat hack that was suggested back in the 70s
for Pascal. In addition to
<identifier> <isa> <type>
allow
a/an [<modifier>] <type name>
as the way to declare
the [<modifier>] <type name>

For example, one might have

raise_lecturer_pay(a staff ID, a percentage) is
the income[the staff ID] :=
the income[the staff ID] *
(1.0 + the percentage/100.0)
end;

equivalent to

raise_lecturer_pay(the_staff_ID: ID, the_percentage: percentage) is
the_income[the_staff_ID] :=
the_income[the_staff_ID] *
(1.0 + the_percentage/100.0)
end;

Joachim Flodqvist

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to th...@acm.org

Thant Tessman wrote:
>
> Paul Prescod wrote:
>
> > Why are you trying to start a protacted C++-centric flame war
> > in many innoncent newsgroups?
>
> Because C++ REALLY SUCKS!

Even if the statement 'C++ REALLY SUCKS' should be true, it seems like a
poor excuse for starting a flame war.

> And so does anyone who defends it!

It takes two, so... Include the other side too, please.

> [...followups redirected...]
>
> --
> thant at acm dot org

Flame away - I probably won't read it.

/J - Whose personal opinion about C++ is... well, personal.

--
Which is worse - Ignorance or apathy? Who knows? Who cares?
joa...@ecs.se


Matthew Faupel

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

pcm wrote:
>
> Does anyone want to venture an opinion on what is the most elegant
> programming language in the world today?
>
> And has there been any recent languages especially noted for their
> elegance?
>
> - Peter.
>
> (Personally, my vote would go for Scheme with the latest ANSII standard C++
> a close second, but I'm certainly open to suggestions)

For computer languages I would take elegant to mean "combining
conceptual simplicity
with expressiveness", and probably tack on "fit for purpose". Given
this definition,
I think that Self counts as my favourite for the most elegant language.

See http://self.sunlabs.com/

Cheers,


Matthew

Andrew Koenig

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

In article <342B12...@signature.below> Thant Tessman <add...@signature.below> writes:
> Paul Prescod wrote:

> > Why are you trying to start a protacted C++-centric flame war
> > in many innoncent newsgroups?

> Because C++ REALLY SUCKS! And so does anyone who defends it!

The most appropriate response I have seen to this kind of assertion comes
from Ayn Rand, who wrote the following in the July, 1964 (!) issue of
the Objectivist Newsletter:

``There is a certain type of argument which, in fact, is
not an argument, but a means of forestalling debate and
extorting an opponent's agreement with one's undiscussed notions.

...

the psychological pressure method consists of threatening to
impeach an opponent's character by means of his argument,
thus impeaching the argument without debate. Example:
`Only the immoral can fail to see that Candidate X's argument
is false.'

...

The essential characteristic of the Argument from Intimidation
is its appeal to moral self-doubt and its reliance on the fear,
guilt, or ignorance of the victim. It is used in the form of
an ultamatum demanding that the victim renounce a given idea
without discussion, under threat of being considered morally
unworthy. The pattern is always: ``Only those who are evil
(dishonest, hearless, insensitive, ignorant, etc.) can hold
such an idea.''
--
--Andrew Koenig
a...@research.att.com
http://www.research.att.com/info/ark

Thant Tessman

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

Paul Prescod:

> Why are you trying to start a protacted C++-centric flame war
> in many innoncent newsgroups?

Me:

> Because C++ REALLY SUCKS! And so does anyone who defends it!

Andrew Koenig:

> The most appropriate response I have seen to this kind of
> assertion comes from Ayn Rand, who wrote the following in
> the July, 1964 (!) issue of the Objectivist Newsletter:
>

> [...]


>
> The essential characteristic of the Argument from
> Intimidation is its appeal to moral self-doubt and
> its reliance on the fear, guilt, or ignorance of
> the victim. It is used in the form of an ultamatum
> demanding that the victim renounce a given idea
> without discussion, under threat of being considered
> morally unworthy. The pattern is always: ``Only
> those who are evil (dishonest, hearless,
> insensitive, ignorant, etc.) can hold such an idea.''

I'm flattered you take me so seriously as to call me
"intimidating."

I prefer to persuade people of C++'s failings via logic but
there is nothing logical about the popularity of C++. It is
popular because it panders to people's suspicion of the novel
and claims to offer the path of least resistance. The argument
that C++ is a good language because many people use it is just
as silly as my admittedly childish epithets. But I have yet
to see a successful defense of the use of C++ based on any
other argument.

And yeah I can't help but think that there are more than just
a few C++ vetrans who wear their battle scars a bit too proudly,
and don't like to entertain the idea that there might be easier
paths to programmer guru-dom than the one they so laboriously
traveled.

-thant

Bill House

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

Richard A. O'Keefe <o...@goanna.cs.rmit.edu.au> wrote in article
<60f3tj$j9q$1...@goanna.cs.rmit.edu.au>...

>
> I strongly suspect that
>
> MyCust is a Customer
>
> would have been a clear winner in your test. That certainly is a _far_
> more natural word order in English (the language of your test) than
> "Customer MyCust".
>
Very good point, and I think you are probably right. If I get up to SF and see
Joan, I'll try it on her!

Kaz

unread,
Sep 26, 1997, 3:00:00 AM9/26/97
to

In article <3426667D...@cmg.nl>, Rijn Buve <rijn...@cmg.nl> wrote:
>Mark Wilden wrote:
>>
>> Alicia Carla Longstreet wrote:
>> >
>> > Right, there is no such thing as a elegant programming language, only
>> > elegant programs.
>>
>> A programming language is implemented by programs. The syntax is its
>> user interface. Saying that there is no such thing as an elegant
>> programming language is like saying there is no such thing as an elegant
>> natural language, only elegant sentences.
>
>Questions like "what's the most elegant language" occasionally lead to
>Style Wars and Deep Thoughts about what beauty and elegance really are.
>These threads, although amusing at times, usually lead nowhere. My "most
>elegant" language will probably not be yours.

I think that good programmers can often manage to write elegant programs in
laguages that are less than elegant. The C language has some inconsistencies
and some infelicities here and there, yet it's possible to write elegant code.
My initial impression of the language was biased by the fact that I was
reading the K&R book with its neatly written examples. In real-world
programs, clueless people can make a real mess of it, though.
--


Martin Rodgers

unread,
Sep 27, 1997, 3:00:00 AM9/27/97
to

Kaz wheezed these wise words:

> My initial impression of the language was biased by the fact that I was
> reading the K&R book with its neatly written examples. In real-world
> programs, clueless people can make a real mess of it, though.

I'm disturbed at the number of times I've seen examples in books and
magazines that ignore the advise given in "Elements of Programming
Style". If K&P (now just K) wanted to update their book, they could
pick modern examples in C and C++.

The ideas in their book can be used in _any_ language. Perhaps I've
only seen more bad examples in C is because I've seen more C code in
the last 10 years than in any other language. Not counting my own
code, of course! That improved after I read EoPS, about 15 years ago.
In those days, the book still had _two_ authors.

The Elements of Programming Style
by Brian W. Kernighan

2nd Edition
Paperback, 168 pages
Published by Computing McGraw-Hill
ISBN: 0070342075

If you're looking for elegant code, you could start with this book. It
shows you can write elegant code in Fortran and PL/I. In fact, it
shows how you can do it in _any_ language.

After that, you can consider which language to use. At least you'll
have a better idea what to look for in a language. Since programmers
will still be arguing over what consitutes an "elegant language" for
as long as there are programming languages, we can ignore that
question. Life is too short to waste on such things. Whatever you
pick, tehre will be plenty of people to tell you that you made the
wrong choice. So, just make your choice and then write good code.

Hopefully, we can agree on what constitutes good code. If not, then
I'm off. ;) As I said, life is too short. All I can offer is a book
that gave me a few answers, some years ago. I've moved on since then,
but we all have to start somewhere. It's the programmers that haven't
even made it to first base that worry me, and the code they write for
their books and magazine articles.

Anyway...Happy coding.
--
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough
"As you read this: Am I dead yet?" - Rudy Rucker
Please note: my email address is gubbish

over...@ihug.co.nz

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

On 20 Sep 1997 20:31:37 +0200, Tom I Helbekkmo <t...@nhh.no> wrote:

>As for the kind of handtools I use most, auto mechanic's tools, I'd
>have to vote for Stahlwille of Germany as the makers of the most
>elegant ones. The feel of a Stahlwille spanner in your hand is
>something that needs to be experienced to be understood. Quality,
>purpose and, yes, elegance are exquisitely present in these tools.

For the exact same reasons, I'd vote Snap-On (except for the
not-so-elegant price :)
>
>Of course there are elegant programming languages. I don't think you
>can name a "most elegant" one, though -- the intended problem domain
>has to be a part of the evaluation. Scheme is elegant, and so is APL,
>but for different reasons.

I agree. C is quite an elegant language, if written correctly. In
fact, most procedure based languages can be used very elegantly,
because it allows your final code to be very readable ad easy to
follow and modify. As you mention with tools, Quality and Purpose go
hand in hand with elegance.

-Adam

Thant Tessman

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

Alicia Carla Longstreet wrote:

> In other words, there is no elegant language only elegant
> programs. [...]

For a given language, how likely is the programmer to
unintentionally write ambiguous statements? --or code
that results in surprising behavior? How easy does the
language make it for the programmer or the compiler to
find bugs? --or for the programmer to avoid them in the
first place? How much of the language does the programmer
have to know before they can get real work done? How well
does the language support expressing abstractions that the
language designer didn't anticipate?

No programming language will compensate for a bad
programmer, but there are differences between good
and bad programming languages, and a good programmer
with a good language will be more productive than a
good programmer with a bad language.

Is this really that controversial a statement?

> C appeals due to is simplicity and elegance.

C's appeal is that it was part of the computer
virus known as the UNIX operating system.

[...followups redireced...]

Jeremy Brinkley

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

On Mon, 29 Sep 1997 16:19:02 -0400, Alicia Carla Longstreet (ca...@ici.net) put forth:
> Thant Tessman wrote (edited):

> >
> > No programming language will compensate for a bad
> > programmer, but there are differences between good
> > and bad programming languages, and a good programmer
> > with a good language will be more productive than a
> > good programmer with a bad language.
>
> > Is this really that controversial a statement?
> No, but bad languages rapidly lose any following and disappear, leaving

This statement isn't controversial, but it misses the point of the
discussion. "Most elegant" and "best" are two entirely different
things. Elegant code (which I believe *is* more or less easy to write,
depending on the language used) isn't necessarily the best solution
to a problem.

C is elegant because of its close and simple relationship to the first
principles upon which computerized operations are based. I'm not
talking about bit operations here; I put forth the example of C's
elegantly simple relationship with memory, that allows the elegant
manipulation of complex and/or large data objects by manipulating
pointers to those objects.

I would say that code written in a strictly structured manner (one entry
and one exit from each sequential, selection or iteration structure) is
most elegant. But such code may not answer best the objectives of the
program.

> I use the languages I am most comfortable with and allow me to write the
> most elegant programs,

I use the languages I am most comfortable with and allow me to write the
most *useful* programs, and I think the distinction is important.

> > > C appeals due to is simplicity and elegance.

Yes. Personally I think C is beautiful in the same way that math is
beautiful. When I write in C I am conscious of the effort to
create lexical art in addition to writing a useful program. C made
total sense to me in a way that no other language does.

> > C's appeal is that it was part of the computer
> > virus known as the UNIX operating system.

C appeals due to many things, among which are its close relationship
with Unix, its simplicity, elegance and a number of other factors
including:

A degree of portability difficult to achieve with such efficiency.
A degree of efficiency difficult to achieve with such portability.
Flexibility in the extreme.


--
Jeremy Brinkley jer...@wishbone.stanford.edu
System Administrator finger for PGP key (2.6.2) or
Stanford Blood Center http://wishbone.stanford.edu/~jeremy

Kaz

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

In article <342FCB...@signature.below>,

Thant Tessman <add...@signature.below> wrote:
>
>C's appeal is that it was part of the computer
>virus known as the UNIX operating system.

But seriously, folks, C's appeal has a lot to do with its low-level
abstractions that are related to machine languages, such as pointers and
pointer arithmetic and bitwise operations. Plus programmers love the terse
syntax. I immediately fell in love with the use of && and || instead of
``and'' and ``or'', for instance, and simple curly braces for delimiting
statement blocks, aggregate initializers and struct/union member declarations.
I also liked the declarator syntax which mimics the syntax of the use of an
identifier in an expression. The relationship between arrays and pointers
struck me as immediately intuitive and obvious, as well and I was nuts
about the preprocessor. :)
--


Alicia Carla Longstreet

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

Jeremy Brinkley wrote:
>
> On Mon, 29 Sep 1997 16:19:02 -0400, Alicia Carla Longstreet (ca...@ici.net) put forth:
> > Thant Tessman wrote (edited):
> > >
> > > No programming language will compensate for a bad
> > > programmer, but there are differences between good
> > > and bad programming languages, and a good programmer
> > > with a good language will be more productive than a
> > > good programmer with a bad language.
> >
> > > Is this really that controversial a statement?
> > No, but bad languages rapidly lose any following and disappear, leaving

> This statement isn't controversial, but it misses the point of the
> discussion. "Most elegant" and "best" are two entirely different
> things. Elegant code (which I believe *is* more or less easy to write,
> depending on the language used) isn't necessarily the best solution
> to a problem.

Different definitions, I would include "being the best solution" as part
of being the most elegant solution, but thsat is just a matter of
definition.



> C is elegant because of its close and simple relationship to the first
> principles upon which computerized operations are based. I'm not
> talking about bit operations here; I put forth the example of C's
> elegantly simple relationship with memory, that allows the elegant
> manipulation of complex and/or large data objects by manipulating
> pointers to those objects.

> I would say that code written in a strictly structured manner (one entry
> and one exit from each sequential, selection or iteration structure) is
> most elegant. But such code may not answer best the objectives of the
> program.

> > I use the languages I am most comfortable with and allow me to write the
> > most elegant programs,

> I use the languages I am most comfortable with and allow me to write the
> most *useful* programs, and I think the distinction is important.

Again, I would not consider a program that is not useful as being
elegant. To me an elegant program would be the 'best' solution
(although the best solution may vary under different circumstances) or
call it the optimal solution for a real problem. Sometimes the best or
optimal solution is to do it by hand, in which case, no computer program
for that problem would be considered (by me) as elegant.



> > > > C appeals due to is simplicity and elegance.

> Yes. Personally I think C is beautiful in the same way that math is
> beautiful. When I write in C I am conscious of the effort to
> create lexical art in addition to writing a useful program. C made
> total sense to me in a way that no other language does.

Same here, please note: elegance and asthetic do not mean the same
thing.



> > > C's appeal is that it was part of the computer
> > > virus known as the UNIX operating system.

> C appeals due to many things, among which are its close relationship
> with Unix, its simplicity, elegance and a number of other factors
> including:

> A degree of portability difficult to achieve with such efficiency.
> A degree of efficiency difficult to achieve with such portability.
> Flexibility in the extreme.

C is a wonderful langauge.

--
************************************************
* Alicia Carla Longstreet ca...@ici.net *

* Remove the _JUNK_ when replying to me. *
************************************************
My programming is Wobbly. It's good programming but it Wobbles,
and the statements sometimes get in the wrong places.
************************************************

Alicia Carla Longstreet

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

In other words, there is no elegant language only elegant programs.

What I meant was what you said. A good programmer can write an elegant
program in any programming language. One merely need to make the most
efficient and efficacious use of the language (this, of course, doesn't
include a 'broken' language).

A good mechanic can do an excellent job fixing your car with most any
quality tool.

Mark Carroll

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

In article <34300D...@ici.net>,
Alicia Carla Longstreet <carla...@ici.net> wrote:
>Thant Tessman wrote:
(snip)

>> For a given language, how likely is the programmer to
>> unintentionally write ambiguous statements? --or code
>> that results in surprising behavior? How easy does the
>> language make it for the programmer or the compiler to
>> find bugs? --or for the programmer to avoid them in the
>> first place? How much of the language does the programmer
(snip)
>Granted, some languages make it easier to write elegant programs but
>only by limiting what the programmer can do. These languages are less
>flexible, that, in my opinion, does not make them more elegant.

Do you mean, constrain the style or whatever the programmer can write
in, or limit the types of applications that can be written in the
language? If the former, maybe I'd agree with you. If the latter, I
certainly wouldn't.

In particular, a powerful, elegant language is normally made up of a
fairly small set of simple, orthogonal features. It's as you tack
things on and don't get much extra functionality for them that things
normally start going amiss - IME if you can already write a fairly
small, neat program to do a particular thing, you probably don't need
to add extra constructs to facilitate it. OTOH, if your original set
of language features wasn't particularly well-thought-out, you
probably end up having to tack things on just to make the damn thing
useful. (-:

Note followups.

-- Mark

Alicia Carla Longstreet

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

Thant Tessman wrote:
>
> Alicia Carla Longstreet wrote:
>
> > In other words, there is no elegant language only elegant
> > programs. [...]


> For a given language, how likely is the programmer to
> unintentionally write ambiguous statements? --or code
> that results in surprising behavior? How easy does the
> language make it for the programmer or the compiler to
> find bugs? --or for the programmer to avoid them in the
> first place? How much of the language does the programmer
> have to know before they can get real work done? How well
> does the language support expressing abstractions that the
> language designer didn't anticipate?

Many of the above features are mutually exclusive. A highly flexible
language will allow the programmer to write ambigous statments and will
be harder to debug, but will be very good at supporting abstractions and
allow the programmer to write code that better fits the target platform,
or more important will allow the compiler to better optimize the code to
fit the target platform.

Granted, some languages make it easier to write elegant programs but
only by limiting what the programmer can do. These languages are less
flexible, that, in my opinion, does not make them more elegant.

> No programming language will compensate for a bad
> programmer, but there are differences between good
> and bad programming languages, and a good programmer
> with a good language will be more productive than a
> good programmer with a bad language.

> Is this really that controversial a statement?
No, but bad languages rapidly lose any following and disappear, leaving

only a bit of code to mark their passing. Most of the languages
currently in use are good languages, equally elegant, if you will, or
equally lacking in elegance. If all languages are equally elegant, but
unequal in features, then each will select a langauge according to his
or her needs and desires.

I use the languages I am most comfortable with and allow me to write the

most elegant programs, I assume you do as well. Again; it is the
programer, interacting with his/her language of choice that produces an
elegant program.

> > C appeals due to is simplicity and elegance.

> C's appeal is that it was part of the computer
> virus known as the UNIX operating system.

I just love the way you present your opinion as fact.
BTW, My opinion differs from yours. So what do they call the virus cum
operating system that you choose to use?

Gavin E. Mendel-Gleason

unread,
Sep 29, 1997, 3:00:00 AM9/29/97
to

I fail to see how anyone can think that a language that has 15
different levels of precedence and must be read in different
direction for different operators in its syntax is elegant. ie:

char (*(*x[3])())[5] (example from ANSI C the programming language)

read as:

x: array[3] of pointer to function returning pointer to array[5] of char.

While this code is not that likely to occur, it does point out the problems
with c's infix operators, wich can be both difficult to use, and hellish to
debug. I think c is niether elegant nor lends to readablility.
As for portability, I think that that is purely a function of the
realative ease of creating a compiler in c on a new platform, and that c code
is likely to be less portable then some other languages due to its weak
typeing and lack of a standard I/O in the description of the language.
Of course this is just my opinion, YBrainMV.


--
_____________________________________________________
Gavin E. Gleason | "If you ain't busy bein' born,
ggle...@tvi.cc.nm.us| You's busy dien'." -somebody
_____________________________________________________

goga

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Hello,

ggle...@tvi.cc.nm.us (Gavin E. Mendel-Gleason) writes:

> I fail to see how anyone can think that a language that has 15
> different levels of precedence and must be read in different

I cannot figure out from your statement what you would like:
a Pascal-like system of precedence (with some 5 levels) or
Lisp/Scheme-like (no precedence at all). With Pascal-like system,
where AND has the same precedence as *, you soon end up putting braces
around every pair of operands, because if you don't, the statement
usually means something different than you expected. Lisp-like
approach is OK, but it is too different from what you have become used
to in school, and formulas become longer.

The C system of precedence reflects the intuition of people who are
used to writing math formulas, and reflects it close to perfect (if
you start couning, usual mathematical formulas surely have more than
10 levels of precedence).

> direction for different operators in its syntax is elegant. ie:
>
> char (*(*x[3])())[5] (example from ANSI C the programming language)
>
> read as:
>
> x: array[3] of pointer to function returning pointer to array[5] of char.
>

Different human languages have different word orders, and I am not
sure that you are thinking English while you are writing programs.

The declaration you have demonstrated is surely awful, but any normal
C programmer would split it into several typedefs (and if he ever
needed this type, he is sure to need the intermediates).

> While this code is not that likely to occur, it does point out the problems
> with c's infix operators, wich can be both difficult to use, and hellish to
> debug. I think c is niether elegant nor lends to readablility.

It is easier to write badly looking programs in C than, say, in Ada,
but it is also possible to write programs that are both readable and
terse. No Ada program may be as ugly as an ugly C program, but no Ada
program may be as beautiful as a really good C program.

> As for portability, I think that that is purely a function of the
> realative ease of creating a compiler in c on a new platform, and that c code
> is likely to be less portable then some other languages due to its weak
> typeing and lack of a standard I/O in the description of the
language.

A compiler for Pascal is as easy to write as a C one, but the power of
C is that if something is easy to write in C, then it may be
effectively implemented. And C is much more flexible: compare, for
example, the for loop syntaxes. C's is easily used, for example, to
scan a linked list.

> Of course this is just my opinion, YBrainMV.

Well, this is mine. Somewhere in this thread there is a message by
kaz; i can only add that his feelings about C are very similar to mine
(only that I am not so fond of the preprocessor: for me, it is too
weak. I would like something like m4 in its place). I have had some
experience with Algol/Pascal like languages when I first learned C. I
found out that this language reflects the way of thinking I already
had.

Gareth McCaughan

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

[I've trimmed the followups somewhat. -- gjm]

Alicia Carla Longstreet wrote:

> Many of the above features are mutually exclusive. A highly flexible
> language will allow the programmer to write ambigous statments and will
> be harder to debug,

I don't think I understand this. At least, in so far as I understand it
I don't believe it.

Two of the most `flexible' languages around, I suppose, are C++ and
Common Lisp. C++ certainly bears out your statement: its grammar is
complicated and difficult to parse, and debugging it is hard. But
Common Lisp doesn't; its grammar is rather simple and debugging it
is pretty easy. And I'm sure there are languages at many points in
between. I don't see that there's any necessary correlation between
flexibility and ambiguity, or between flexibility and difficulty of
debugging.

But maybe I don't know what you mean by `flexible'. Can you explain?
Is assembly language the most flexible language (because anything
that can be implemented in any language can be implemented in
assembly language), or the least flexible language (because only
very simple things can be implemented comprehensibly in assembly
language)?

> No, but bad languages rapidly lose any following and disappear, leaving
> only a bit of code to mark their passing. Most of the languages
> currently in use are good languages, equally elegant, if you will, or
> equally lacking in elegance.

I find it hard to believe that you really believe this. Sure, a
language that survives must have *something*, but why should it
be elegance?

Look at a little selection of languages people are using out there:
COBOL, dBASE, Perl, x86 assembler, C++, ML, Scheme. For any one of
these languages you can probably find a sort-of-plausible definition
of `elegant' that applies to it; but any notion of `elegant' that
applies to *all* of them must surely be impossibly vague. Or maybe
just a synonym for `surviving'.

Actually, I have trouble taking seriously the statement that COBOL
is as `good' a language as the `best' languages around these days.
I'm sure it does its job, but I'm also sure I don't know of anyone
who *enjoys* writing COBOL. Whereas I do know of people who enjoy
writing (for instance) C, Lisp, ML, Perl. (Actually I know of people
who enjoy writing INTERCAL, but that's another story.)

--
Gareth McCaughan Dept. of Pure Mathematics & Mathematical Statistics,
gj...@dpmms.cam.ac.uk Cambridge University, England.

Martin Rodgers

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Alicia Carla Longstreet wheezed these wise words:

> > C's appeal is that it was part of the computer
> > virus known as the UNIX operating system.
>
> I just love the way you present your opinion as fact.
> BTW, My opinion differs from yours. So what do they call the virus cum
> operating system that you choose to use?

I think that Thant may have been refering to memes. The Unix meme is a
rather old and widely spread meme. The C meme just hitch-hiked a ride.
The OS(s) that you, I, or Thant use is irrelevant to the point about
the viral nature of Unix and how this has helped propagate C.

Or are you saying that C has never been supplied with Unix?

Followups adjusted.


--
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough

Please note: my email address is gubbish

assert(got(coat)).

David Hanley

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Alicia Carla Longstreet wrote:

> Thant Tessman wrote:
> >
> > Alicia Carla Longstreet wrote:
> >
> > > In other words, there is no elegant language only elegant
> > > programs. [...]
>
> > For a given language, how likely is the programmer to
> > unintentionally write ambiguous statements? --or code
> > that results in surprising behavior? How easy does the
> > language make it for the programmer or the compiler to
> > find bugs? --or for the programmer to avoid them in the
> > first place? How much of the language does the programmer
> > have to know before they can get real work done? How well
> > does the language support expressing abstractions that the
> > language designer didn't anticipate?
>

> Many of the above features are mutually exclusive. A highly flexible
> language will allow the programmer to write ambigous statments and
> will
> be harder to debug,

Wow... Where do you get this from?

> but will be very good at supporting abstractions and
> allow the programmer to write code that better fits the target
> platform,
> or more important will allow the compiler to better optimize the code
> to
> fit the target platform.

That's not typically a feature of more flexible langugaes,
actually.In a more flexible language, because you can do more, you're
limiting
what the optimizer can do.

> Granted, some languages make it easier to write elegant programs but
> only by limiting what the programmer can do. These languages are less
>
> flexible, that, in my opinion, does not make them more elegant.

Hmmm.... You seem to me to be contradicting yourelf here.

dave


Joerg Hoehle

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Alexey Raschepkin (a...@artelecom.ru) wrote:
: I think the most elegant languages are ones by Wirth.
: But, elegant doesn't mean useful, the most useful languahes I consider C
: and C++.
: They are general-purpose language and reflect curren computer
: architecture instead of, for example, LISP.

I don't see how C reflects current computer architecture. You
probably think about arrays and auto decrement/increment? But:

C function calling sequence imposes the caller to pop arguments off
the stack. Imposing such a property does not necessarily reflect
current computer architecture, as you like to say. It makes
tail-calling difficult in C and imposes unfortunate restrictions on
some programming styles. Did you never replace a JSR xyz; RTS by a
JMP xyz in assembly language? Don't you understand how this is
extremely useful?


BTW, LISP is also general-purpose.

Jo"rg Ho"hle.
Joerg....@gmd.de http://zeus.gmd.de/~hoehle/amiga.html

Kaz

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

In article <naoyuki_tai-ya02408...@news.avid.com>,
Naoyuki Tai <naoyu...@avid.com> wrote:
> When you say C, you probably include C preprocessor which I
>think very ugly language. Its confused language definition has
>a lot to do with incompatible implementation of C preprocessors
>especially recursive macro expansion. Also, such an incomplete
>definition left as is for years is the sure sign of unixism where
>the elegance is neglected, attacked and discarded.

That is nonsense. The ANSI/ISO C language standard provides a sound and
adequate requirement specification for what the preprocessing stage must do.
It is very precise in defining how repeated rescanning works and which
identifiers are eligible.

Deviations from these requirements are implementation bugs. If you are going
to deride the C language for bugs in its implementations, why don't you also
balance your view by looking at bugs in the implementations of other
languages?
--


Kaz

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

In article <60r8mf$7...@omega.gmd.de>, Joerg Hoehle <hoe...@zeus.gmd.de> wrote:
>Alexey Raschepkin (a...@artelecom.ru) wrote:
>: I think the most elegant languages are ones by Wirth.
>: But, elegant doesn't mean useful, the most useful languahes I consider C
>: and C++.
>: They are general-purpose language and reflect curren computer
>: architecture instead of, for example, LISP.
>
>I don't see how C reflects current computer architecture. You
>probably think about arrays and auto decrement/increment? But:
>
>C function calling sequence imposes the caller to pop arguments off
>the stack. Imposing such a property does not necessarily reflect

I looked through the ANSI/ISO C standard forwards and backwards but could not
find any references to a stack. The C language leaves calling conventions up
to the implementation. C has no disavantage here compared to any other
language.

You are naively confusing definition and implementation issues, which
makes me wonder what you are doing in a debate about programming languages.

>current computer architecture, as you like to say. It makes
>tail-calling difficult in C and imposes unfortunate restrictions on
>some programming styles. Did you never replace a JSR xyz; RTS by a
>JMP xyz in assembly language? Don't you understand how this is
>extremely useful?

I totally understand why it is useful. I also know C compilers that have
no trouble converting tail recursive functions into loops.

In any case, smart programmers don't write tail recursive functions, because a
C implementation is not required by the ISO standard to recognize and optimize
tail recursion.

In other words, you can do the same replacement in C that you do in assembly
language. Instead of tail recursion, you write a loop, like a real programmer.

You are basically complaining that C implementations don't always compensate
for stupidity.
--


Martin Rodgers

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Alicia Carla Longstreet wheezed these wise words:

> C is a wonderful langauge.

It's a wonderful "assembly language". Look at all the compilers that
produce C code. Even cfront. It's a very old idea, predating C. There
are compilers that produce Fortran code, too.

If you look hard, you can still find people advocating the use of
assembly language. Perhaps they mean assembly language is great for
writing things like MPEG drivers. Not all of us write MPEG drivers,
nor do all of us need that kind of control over the hardware. For most
software, it would be highly inappropriate.

At some point in a discussion like this someone will say, "If your
only tool is a hammer, everything looks like a nail." Perhaps someone
else said, and I missed it. Anyway, I said it anyway. All the
arguments I've seen for low level languages, like C, also work for
assembly language. Let's balance them with a few arguments for high
level languages, too. 20 years ago, C may have looked "high level",
but it's looking rather different today, even to the marketing droids
to define reality for many people.

Not that any of this matters. Ever since I started using computers, in
the early 80s, I've seen people making arbitrary choices and then
rationalising their choices. Eg, buying a first machine, discovering
that the CPU is a 6502 (early 80s, remember), and then deciding that
this is the most elegant CPU in the world. Maybe some people have had
the same experience with programming languages?

Martketing may be playing a part in this. Ego, too. The former tells
you what to use, while the latter says that _you_ can't be wrong. The
result is a curious breed of fanatics that insist on telling us all
what a great language C++ is. Even more strange, they often do it by
dumping on other languages, like Lisp!

Please note the followups. (I just wish there was a comp.lang.advocacy
newsgroup, coz this is where this _really_ belongs.)

Kaz

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

In article <MPG.e9aba744...@news.demon.co.uk>,

Martin Rodgers <mcr@this_email_address_intentionally_left_crap_wildcard.demon.co.uk> wrote:
>Alicia Carla Longstreet wheezed these wise words:
>
>> C is a wonderful langauge.
>
>It's a wonderful "assembly language". Look at all the compilers that
>produce C code. Even cfront. It's a very old idea, predating C. There
>are compilers that produce Fortran code, too.
>
>If you look hard, you can still find people advocating the use of
>assembly language. Perhaps they mean assembly language is great for

The difference is that C is still used to produce all kinds of software.

In another window on my screen, I'm touching up an image using an excellent
program that was written in C. I'm logged in to an operating system that
was written in C, using a windowed display system that was written in C,
typing this mail in a text editor that was written in C, which will be
sent to an NNTP server that was also written in C using a TCP/IP stack
taht was written in C...

In fact there isn't a single program that I use daily that isn't written in C
(not C++, etc). C is the choice of programmers who get things done. It's a
_computer_ programming language. I, for one, didn't become interested in
computers because of some inane abstract language. I want to program
a computer, not a programming system.

>At some point in a discussion like this someone will say, "If your
>only tool is a hammer, everything looks like a nail." Perhaps someone

Except that in computing, everything does reduce to nails. This analogy is
completely inane, because a screw is not composed of nails, it's a completely
different thing. Hence you use a screwdriver for it rather than a hammer. And
it's not like you compile high-level screwdriver operations into low-level
hammer operations.

>else said, and I missed it. Anyway, I said it anyway. All the
>arguments I've seen for low level languages, like C, also work for
>assembly language.

Except that where can I get useful software written in assembly language?
Assembly advocates are mostly just wind-bags like Scott Nudds. If you are
advocating a language, it would help to point out some familiar works that
were produced in that language.

I can just tell some Joe Average that Quake was produced using the C language;
a modern game that people are playing today.
--


Dann Corbit

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

David Hanley <da...@nospan.netright.com> wrote in article
<34314122...@nospan.netright.com>...
[snip]
> Now that's an intelligent argument. Before you go off making
> blanketstatements like that, you should educate youself as to what you
> are taking about..
>
> int foo( int code , float blah )
> {
> if ( ............. ) return this( code );
> else if ( .............. ) return that( blah );
> else return the_other( code,blah );
> }
>
> That's tail-recursion, and it's not a loop, and it makes you
> look silly for saying that this can be done.
In what way is recursion even involved? This function does not call
itself. It calls either a function called this(), a function called
that(), or a function called the_other(). Are we to assume that one of
those calls foo()? Do you even know what recursion is?

To understand recursion, one must first understand recursion. ;-)


David Hanley

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Kaz wrote:

> In article <60r8mf$7...@omega.gmd.de>, Joerg Hoehle
> <hoe...@zeus.gmd.de> wrote:
> >Alexey Raschepkin (a...@artelecom.ru) wrote:
> >: I think the most elegant languages are ones by Wirth.
> >: But, elegant doesn't mean useful, the most useful languahes I
> consider C
> >: and C++.
> >: They are general-purpose language and reflect curren computer
> >: architecture instead of, for example, LISP.
> >
> >I don't see how C reflects current computer architecture. You
> >probably think about arrays and auto decrement/increment? But:
> >
> >C function calling sequence imposes the caller to pop arguments off
> >the stack. Imposing such a property does not necessarily reflect
>
> I looked through the ANSI/ISO C standard forwards and backwards but
> could not
> find any references to a stack. The C language leaves calling
> conventions up
> to the implementation. C has no disavantage here compared to any other
>
> language.

You are incorrect. There's somethig called the ABI that is
designedto allow linkage between code produced by different C compilers
on the same platform. It specifies quite a bit, including calling
convention.
And, yes, the C convention is not necessarily the best for modern
platforms. That's to be expected, as these ABI's were defined quite
awhile ago,

> You are naively confusing definition and implementation issues, which
> makes me wonder what you are doing in a debate about programming
> languages.

This kind of statement may come back to haunt you.

> >current computer architecture, as you like to say. It makes
> >tail-calling difficult in C and imposes unfortunate restrictions on
> >some programming styles. Did you never replace a JSR xyz; RTS by a
> >JMP xyz in assembly language? Don't you understand how this is
> >extremely useful?
>
> I totally understand why it is useful. I also know C compilers that
> have
> no trouble converting tail recursive functions into loops.

Now you're showing you don't know what your're talking about.Tail
recursion is a lot more than a function calling itself; a finction
may return the results of another function, which is very very useful
in a lot of library-style code.

> In any case, smart programmers don't write tail recursive functions,
> because a
> C implementation is not required by the ISO standard to recognize and
> optimize
> tail recursion.

Groovy. But if it's the most elegant way to solve a problem,you're
being forced to not use an elegant solution.

> In other words, you can do the same replacement in C that you do in
> assembly
> language.

No, you can't.

> Instead of tail recursion, you write a loop, like a real programmer.

Now that's an intelligent argument. Before you go off making


blanketstatements like that, you should educate youself as to what you
are taking about..

int foo( int code , float blah )
{
if ( ............. ) return this( code );
else if ( .............. ) return that( blah );
else return the_other( code,blah );
}

That's tail-recursion, and it's not a loop, and it makes you
look silly for saying that this can be done.

> You are basically complaining that C implementations don't always
> compensate
> for stupidity.

Apparently, they must.

dave

Thant Tessman

unread,
Sep 30, 1997, 3:00:00 AM9/30/97
to

Kaz wrote:

> In other words, you can do the same replacement in C that

> you do in assembly language. Instead of tail recursion, you

> write a loop, like a real programmer.

ROTFL

It's hopeless. I give up.

It is loading more messages.
0 new messages