From: Tayssir John Gabbour
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <cfmno4$qch@odak26.prod.google.com>
Tim Josling wrote:
> Actually Basic (VB) is the dominant language, according to the stats
I
> have seen.

I'm pretty sure HTML is. A parenthetical language just like lisp.

In the old days, people apparently had the most amusing notions of
lisp, and one big point was no one could possibly work with
parenthetical syntax. Of course now we see that HTML/XML has been
adopted en masse by the public. And it's a reduced strength version of
lisp; this is what technologists get for trying too hard to fight
technology.

The internet is not a panacea, but I like how it shines a light into
some bad misconceptions.

MfG,
Tayssir

--
Video, audio, and other lisp odds & ends:
http://alu.cliki.net/Education

From: Jeff
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <evBTc.10173$mD.7035@attbi_s02>
Tayssir John Gabbour wrote:

> Tim Josling wrote:
> > Actually Basic (VB) is the dominant language, according to the stats
> I
> > have seen.
> 
> I'm pretty sure HTML is. 

How can HTML be considered a programming language? It is nothing more
than a data storage format that happens to be human readable.

Jeff
From: Pascal Bourguignon
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <87acwxatxa.fsf@thalassa.informatimago.com>
"Jeff" <···@nospam.insightbb.com> writes:

> Tayssir John Gabbour wrote:
> 
> > Tim Josling wrote:
> > > Actually Basic (VB) is the dominant language, according to the stats
> > I
> > > have seen.
> > 
> > I'm pretty sure HTML is. 
> 
> How can HTML be considered a programming language? It is nothing more
> than a data storage format that happens to be human readable.

Because it's so hard for non-programmers to write HTML that when they
archive a small HTML home page, they believe they must have been
programming it.

Non programmers seem to have a lot of problems with syntax, grammar
and spelling. HTML syntax is about as complicated as any programming
language.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: André Thieme
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <cfnfn5$fu0$1@ulric.tng.de>
Jeff schrieb:
 > Tayssir John Gabbour wrote:
 >
 >
 >>Tim Josling wrote:
 >>
 >>>Actually Basic (VB) is the dominant language, according to the stats
 >>
 >>I
 >>
 >>>have seen.
 >>
 >>I'm pretty sure HTML is.
 >
 >
 > How can HTML be considered a programming language? It is nothing more
 > than a data storage format that happens to be human readable.
 >
 > Jeff



If you don't see html as a programming language you could run into some 
definition problems of what a programming language should be.
Let's take php as an example.
Here is a little programm, written in php:

<?php
     echo "<html>\n";
     echo "<head>\n";
     echo "</head>\n";
     echo "<body>\n";
     echo "<br>\n";
     echo "<br>\n";
     echo "<center>\n";
     echo "Hello World\n";
     echo "</center>\n";
     echo "</body>\n";
     echo "</html>";
?>

It delivers your browser a little html-page which says "Hello World".
It just adds a few bytes to the html-code...



Andr�
--
From: Rob Warnock
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <Rvadnb-VLptv84LcRVn-ig@speakeasy.net>
Andr� Thieme  <······························@justmail.de> wrote:
+---------------
| Here is a little programm, written in php:
| <?php
|      echo "<html>\n";
|      echo "<head>\n";
|      echo "</head>\n";
|      echo "<body>\n";
|      echo "<br>\n";
|      echo "<br>\n";
|      echo "<center>\n";
|      echo "Hello World\n";
|      echo "</center>\n";
|      echo "</body>\n";
|      echo "</html>";
| ?>
+---------------

O.k., I'll bite:    ;-}  ;-}

In Common Lisp, with Tim Bradshaw's HTOUT macro package, this:

  (with-html-output (s *standard-output*)
    (:html
      (:head "")
      (:body :br :br (:center "Hello World"))))

outputs this:

  <HTML><HEAD></HEAD><BODY><BR><BR><CENTER>Hello World</CENTER></BODY></HTML>

Now, which is easier to write...?  ;-}  ;-}


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: Reini Urban
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham'sweb writings.
Date: 
Message-ID: <4129efb1$1@e-post.inode.at>
Rob Warnock schrieb:
> Andr� Thieme  <······························@justmail.de> wrote:
> +---------------
> | Here is a little programm, written in php:
> | <?php
> |      echo "<html>\n";
> |      echo "<head>\n";
> |      echo "</head>\n";
> |      echo "<body>\n";
> |      echo "<br>\n";
> |      echo "<br>\n";
> |      echo "<center>\n";
> |      echo "Hello World\n";
> |      echo "</center>\n";
> |      echo "</body>\n";
> |      echo "</html>";
> | ?>
> +---------------
> 
> O.k., I'll bite:    ;-}  ;-}
> 
> In Common Lisp, with Tim Bradshaw's HTOUT macro package, this:
> 
>   (with-html-output (s *standard-output*)
>     (:html
>       (:head "")
>       (:body :br :br (:center "Hello World"))))
> 
> outputs this:
> 
>   <HTML><HEAD></HEAD><BODY><BR><BR><CENTER>Hello World</CENTER></BODY></HTML>
> 
> Now, which is easier to write...?  ;-}  ;-}

In my own PHP HTML class I write:
    $h = new HTML;
    echo $h->html(
           $h->head(),
           $h->body($h->br,
                    $h->br,
                    $h->center("Hello World")));

With the phpwiki html classes it's much better, since I just store the 
XML tree in a similar fashion and output it on request as HTML 4.1 or 
XHTML or XML or stringified text without tags in any needed DTD fashion 
with automatic validation on request.
   echo $h->asHTML(); echo $h->asXML(); $h->asString(); $h->asPDF();

br()  => <br> or <br /> for example.
img() => <img ...> or <img .../> or <img ...></img>
same for content encoding. (charset, ...)

Haven't seen that with the simple lisp HTML macros so far. I'll have to 
look at CLHTTPD though. Maybe in DSSSL also.

   (with-xml-output (dtd "http://www.w3.org/TR/html4/loose.dtd")
                    (s *standard-output*)
     xml-tree)

With the perl CGI module it will look like this, from perldoc CGI:

use CGI qw/:standard/;
print header,
       start_html('A Simple Example'),
       h1('A Simple Example'),
       start_form,
       "What's your name? ",textfield('name'),p,
       "What's the combination?", p,
       checkbox_group(-name=>'words',
                      -values=>['eenie','meenie','minie','moe'],
                      -defaults=>['eenie','minie']), p,
       "What's your favorite color? ",
       popup_menu(-name=>'color',
                  -values=>['red','green','blue','chartreuse']),p,
       submit,
       end_form,
       hr;

Don't classify languages on their worst examples.
-- 
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/
From: Jeff
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <pqLTc.14447$TI1.3939@attbi_s52>
Andr� Thieme wrote:

> Jeff schrieb:
> > Tayssir John Gabbour wrote:
> > 
> > 
> > > Tim Josling wrote:
> > > 
> > > > Actually Basic (VB) is the dominant language, according to the
> > > > stats
> > > 
> > > I
> > > 
> > > > have seen.
> > > 
> > > I'm pretty sure HTML is.
> > 
> > 
> > How can HTML be considered a programming language? It is nothing
> > more than a data storage format that happens to be human readable.
> > 
> > Jeff
> 
> 
> 
> If you don't see html as a programming language you could run into
> some definition problems of what a programming language should be.
> Let's take php as an example.  Here is a little programm, written in
> php:
> 

No. PHP is a programming language. PHP /= HTML. PHP is a language that
generates data. PHP generates HTML. I have no problem with PHP, Perl,
ColdFusion or any other backend that generates HTML being called a
programming language. But HTML is not a programming language.

It would be interesting to define what constitutes a "programming
language". I've been thinking about this a bit since yesterday. This is
the best (so far) that I've come up with:

A programming language (as opposed to a "data" language like HTML) is
differenciated by the fact that conditionally executed control
structures may be implemented by the programmer.

Hardly eloquent, but it is a start.

Jeff
From: Pascal Costanza
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <cfoc35$7is$1@newsreader2.netcologne.de>
Jeff wrote:

> No. PHP is a programming language. PHP /= HTML. PHP is a language that
> generates data. PHP generates HTML. I have no problem with PHP, Perl,
> ColdFusion or any other backend that generates HTML being called a
> programming language. But HTML is not a programming language.
> 
> It would be interesting to define what constitutes a "programming
> language". I've been thinking about this a bit since yesterday. This is
> the best (so far) that I've come up with:
> 
> A programming language (as opposed to a "data" language like HTML) is
> differenciated by the fact that conditionally executed control
> structures may be implemented by the programmer.

Read something about metacircular evaluators or metacircular 
interpreters, and you will probably change your point of view. 
http://c2.com/cgi/wiki?MetaCircularEvaluator is a good start.


Pascal

-- 
Tyler: "How's that working out for you?"
Jack: "Great."
Tyler: "Keep it up, then."
From: Christopher C. Stacy
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <uekm8dq9y.fsf@news.dtpq.com>
>>>>> On Sun, 15 Aug 2004 15:36:53 GMT, Jeff  ("Jeff") writes:
 Jeff> But HTML is not a programming language.

I don't know what the point of arguing about this particular semantic is, 
but I would suggest that "HTML" includes its DOM and Javascript.
From: Joost Kremers
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <slrnchvqt8.j0m.joostkremers@j.kremers4.news.arnhem.chello.nl>
Jeff wrote:
> A programming language (as opposed to a "data" language like HTML) is
> differenciated by the fact that conditionally executed control
> structures may be implemented by the programmer.

i think a semanticist would say that you're trying to define the term
'programming language' by its extension, while the only really feasible way
to define the term would be by its intension.

my personal intuition, no doubt imperfect, would be to say that a
programming language is a set of rules for formulating expressions that
have side-effects. although i think that would make html a programming
language... :-/

-- 
Joost Kremers                                      ············@yahoo.com
Selbst in die Unterwelt dringt durch Spalten Licht
EN:SiS(9)
From: Shane Lile
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <XFcWc.71277$TI1.60825@attbi_s52>
Jeff wrote:
> Andr� Thieme wrote:
> 
> 
>>Jeff schrieb:
>>
>>>Tayssir John Gabbour wrote:
>>>
>>>
>>>
>>>>Tim Josling wrote:
>>>>
>>>>
>>>>>Actually Basic (VB) is the dominant language, according to the
>>>>>stats
>>>>
>>>>I
>>>>
>>>>
>>>>>have seen.
>>>>
>>>>I'm pretty sure HTML is.
>>>
>>>
>>>How can HTML be considered a programming language? It is nothing
>>>more than a data storage format that happens to be human readable.
>>>
>>>Jeff
>>
>>
>>
>>If you don't see html as a programming language you could run into
>>some definition problems of what a programming language should be.
>>Let's take php as an example.  Here is a little programm, written in
>>php:
>>
> 
> 
> No. PHP is a programming language. PHP /= HTML. PHP is a language that
> generates data. PHP generates HTML. I have no problem with PHP, Perl,
> ColdFusion or any other backend that generates HTML being called a
> programming language. But HTML is not a programming language.
> 
> It would be interesting to define what constitutes a "programming
> language". I've been thinking about this a bit since yesterday. This is
> the best (so far) that I've come up with:
> 
> A programming language (as opposed to a "data" language like HTML) is
> differenciated by the fact that conditionally executed control
> structures may be implemented by the programmer.
> 
> Hardly eloquent, but it is a start.
> 
> Jeff

HTML is a markup language, not a programming language. It classifies 
information in a document, and it just so happens that we have 
applications that will render the document differently based off of 
these marks.

A programming language is a set of instructions. A markup language is a 
set of rules on how to structure, index, link, and soforth documents.

-Shane
From: ·······@Yahoo.Com
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <REM-2004aug24-001@Yahoo.Com>
> From: Andri Thieme <······························@justmail.de>
> If you don't see html as a programming language you could run into
> some definition problems of what a programming language should be.
> Let's take php as an example.
> Here is a little programm, written in php:
> <?php
> ...
>      echo "Hello World\n";
> ...
> ?>
> It delivers your browser a little html-page which says "Hello World".

*any* programming language can be used to write a "hello world" program
that merely emits a canned output without taking any input and without
making any runtime decisions. (In fact I regard a "hello world" program
as only one of two steps in getting somebody started with a new
programming language, showing how to compile or otherwise make a
program in that new langauge but not yet showing how the language can
be used for anything more than just emitting a canned output which is
no better than a static WebPage. IMO, as soon as the student has gotten
his/her first "hello world" program working, immediately the
instructional material should remark how so-far that's no better than a
static WebPage, but the *next* program by the student will actually
take input and produce appropriate output related to the input, which
no static WebPage can do.) Consequently, showing how a particular
language, php in this case, *can* be used to create in effect a static
WebPage, says nothing about how this language should be classified as a
mere markup language such as HTML or an actual programming language
such as Java. The question that needs to be answered is whether the
particular language *can* be used to respond to user input in a way
that goes beyond what static WebPages can do. If so, then maybe it's a
real programming language, depending on how much the language supports
responsive activities beyond what HTML can provide. If not, it's surely
just a markup language.

The purpose of a hello-world program is of course not to demonstrate
the power of any particular language, because after all even a simple
text file can be treated as a Web page and from the view of the user
via a Web browser the best programming language is no better than just
a text file as Web page. For example I have hello-world examples in
various languages from simple text file to Java here:
  http://www.rawbw.com/~rem/hellos.html
Does anybody have similar examples in any other languages?

The purpose of a hello-world program is merely an exercise to see if
the programming language works at all for the novice programmer, if
that programmer is doing everything write to set up the program to run,
etc., as a very preliminary first step toward an 'actual' program in
the same programming language. (Note: I tried the php hello-world
example in the tutorial
  http://us2.php.net/manual/en/tutorial.firstpage.php
but it doesn't work for me. See the "under construction" section of
  http://www.rawbw.com/~rem/hellos.html
for current status of my attempt. Is there anybody here who can
diagnose such php problems?)

By comparison, here's an example of something that goes slightly beyond
a simple hello-world, by actually doing something dynamic:
  http://us2.php.net/manual/en/tutorial.useful.php
That's an example of something very simple that requires an actual
programming/scripting language, which can't be done with just a text
file or text-layout language such as HTML.

I'm thinking of making up next-step-beyond-hello-world examples like
that for all the languages (except .txt and .html) that I have in my
hello-world example collection. Maybe I'll have it show the current
date and time here in California, and show the IP number where the
user's Web browser/client is located. Then for a second step beyond
hello-world I'd have a HTML FORM that took user input in a text field
and the CGI script would examine the encoded-form-contents (via the GET
or POST method, not sure which would be best, maybe whichever is
easiest in each language) looking for certain keywords that indicated
special actions to perform. Then for a third step beyond hello-world,
we'd have a similar HTML FORM, but the CGI script would actually decode
the encoded-form-contents (detecting whether GET and POST method was
used and doing the appropriate thing in each case) to produce a table
of key-value pairs, and then do some trivial but correct processing on
those pairs. That's pretty much the minimal starting point for any real
CGI program in any language.

So anyway, perhaps we can define a programming language to be any
language that can perform the first-step-beyond-hello-world task?

Note: If a language can't read from stdin or can't write to stdout,
then it can't be used as a CGI application, so wouldn't qualify as a
programming language by this standard. I get the impression that
HyperCard and Visual Basic would fail for that reason, that they work
*only* on GUIs, not on stdin/stdout via CGI.
From: Patrick May
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <m1d61ssaog.fsf@localhost.localdomain>
···@zedat.fu-berlin.de (Stefan Ram) writes:
>   Here is a tic-tac-toe game written in HTML:
> 
> http://www.geocities.com/flo_kreidler/tictactoe.html

     Interesting.  This is the HTML equivalent of having a book
containing all possible games of tic-tac-toe with instructions on the
bottom of each page saying "If you placed an 'X' in position n, turn
to page m."  Does that make any natural language a programming
language?

>   An HTML-document might be considered as an instruction to display
>   text in a certain way (notwithstanding some freedom the
>   interpreter has to do this) and to react to user actions
>   (activation of links) in a certain way. This allowed Flo Kreidler
>   to "program" (i.e., to pre-determine) how an HTML-page interacts
>   with a user so as to play a game.

     It may not make HTML a programming language, but it certainly
makes Flo Kreidler a programmer.

>   That might be a reason to allow to call HTML a "programming
>   language", but I believe that most experts in the field of
>   computer science would not do so, possibly because whether a term
>   is used or not also depends on the tradition of technical
>   terminology and typical areas of usage of a formal language.

     My inclination when I started to write this was to claim that
HTML was not a programming language because it can only link between
previously existing pages.  The existence of tic-tac-toe programs
written in "real" programming languages that are implemented using a
dictionary of all possible games confuses the issue, though.

     Thanks for the pointer to the page.  I'll use it to argue the
"HTML is a programming language" position next time I'm having a beer
with the other developers I work with.

Regards,

Patrick

------------------------------------------------------------------------
S P Engineering, Inc.    | The experts in large scale distributed OO
                         | systems design and implementation.
          ···@spe.com    | (C++, Java, ObjectStore, Oracle, CORBA, UML)
From: Pascal Bourguignon
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <87657kbh1f.fsf@thalassa.informatimago.com>
···@zedat.fu-berlin.de (Stefan Ram) writes:
>   Here is a tic-tac-toe game written in HTML:
> 
> http://www.geocities.com/flo_kreidler/tictactoe.html

This is not a program.  It's merely DATA: a graph of the game states.

You could generate the graph of any DFA and write it in HTML in that
way, that would still not be a program.  A DFA is NOT a Turing Machine.

>       An artificial language for expressing programs.
HTML is an artificial language for expressing DATA.

Of course, you would write a chocolate cake recipe in HTML. That would
not mean that you've programmed your chief in HTML.  That would mean
that you've programmed you chief in chief programming language
(recipe), and that it happens that the encoding you've used for this
recipe program is HTML, in the same way that it may happen that the
encoding you use to write your lisp programs is ASCII or EBCDIC.
 
Or, said otherwise, the interpreter of HTML IS NOT a Turing Machine
(where is the infinite tape memory?).  An HTML renderer could be
implemented as a mere FA such as a Mealy Machine.


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Jens Axel Søgaard
Subject: Re: What is a programming language?
Date: 
Message-ID: <411f90b9$0$196$edfadb0f@dread11.news.tele.dk>
Pascal Bourguignon wrote:

> Or, said otherwise, the interpreter of HTML IS NOT a Turing Machine
> (where is the infinite tape memory?).  An HTML renderer could be
> implemented as a mere FA such as a Mealy Machine.

Although I agree with you, that HTML is not a programming language,
there exist non Turing complete programming languages.

Here is a cute robot programmed in Esterel:

     <http://www.emn.fr/x-info/lego//esterel.html>

The page on Esterel <http://www-sop.inria.fr/meije/esterel/esterel-eng.html>
says:

     Esterel is both a programming language, dedicated to programming
     reactive systems, and a compiler which translates Esterel programs
     into finite-state machines. It is one of a family of synchronous languages,
     like SyncCharts, Lustre, Argos or Signal, which are particularly well-suited
     to programming reactive systems, including real-time systems and control automata.

-- 
Jens Axel Søgaard
From: Christopher C. Stacy
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <uacwwdq4h.fsf@news.dtpq.com>
>>>>> On 15 Aug 2004 16:41:00 +0200, Pascal Bourguignon ("Pascal") writes:

 Pascal> ···@zedat.fu-berlin.de (Stefan Ram) writes:
 >> Here is a tic-tac-toe game written in HTML:
 >> 
 >> http://www.geocities.com/flo_kreidler/tictactoe.html

 Pascal> This is not a program.  It's merely DATA: a graph of the game states.

The Apple programming language "Hypercard" works in the
same way as has been shown in the Tic-Tac-Toe example.
I have seen Hypercard applications such as a Yahtzee, 
and a square dance choreography editor, implemented 
using exactly these encoded state techniques that you 
are saying do not constitute "programming".
From: Paul Wallich
Subject: Re: What is a programming language?
Date: 
Message-ID: <cfq9os$sjn$2@reader1.panix.com>
Christopher C. Stacy wrote:

>>>>>>On 15 Aug 2004 16:41:00 +0200, Pascal Bourguignon ("Pascal") writes:
> 
> 
>  Pascal> ···@zedat.fu-berlin.de (Stefan Ram) writes:
>  >> Here is a tic-tac-toe game written in HTML:
>  >> 
>  >> http://www.geocities.com/flo_kreidler/tictactoe.html
> 
>  Pascal> This is not a program.  It's merely DATA: a graph of the game states.
> 
> The Apple programming language "Hypercard" works in the
> same way as has been shown in the Tic-Tac-Toe example.
> I have seen Hypercard applications such as a Yahtzee, 
> and a square dance choreography editor, implemented 
> using exactly these encoded state techniques that you 
> are saying do not constitute "programming".

Any interpreted program is merely data, after all. Perhaps the typical 
interpreters for HTML are a little more unwieldy than most. (Oh, and I'm 
pretty sure that the pages in question aren't anywhere near a complete 
graph of the game, since they exclude losing positions.)

paul
From: Pascal Bourguignon
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <87wtzz9y6z.fsf@thalassa.informatimago.com>
······@news.dtpq.com (Christopher C. Stacy) writes:
>  Pascal> This is not a program.  It's merely DATA: a graph of the game states.
> 
> The Apple programming language "Hypercard" works in the
> same way as has been shown in the Tic-Tac-Toe example.
> I have seen Hypercard applications such as a Yahtzee, 
> and a square dance choreography editor, implemented 
> using exactly these encoded state techniques that you 
> are saying do not constitute "programming".

No, hypercard contains a programming language: you can really write
algorithms, without jumping from one card to the other.


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Christopher C. Stacy
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <uekm6g9pw.fsf@news.dtpq.com>
>>>>> On 16 Aug 2004 12:25:40 +0200, Pascal Bourguignon ("Pascal") writes:

 Pascal> ······@news.dtpq.com (Christopher C. Stacy) writes:
 Pascal> This is not a program.  It's merely DATA: a graph of the game states.
 >> 
 >> The Apple programming language "Hypercard" works in the
 >> same way as has been shown in the Tic-Tac-Toe example.
 >> I have seen Hypercard applications such as a Yahtzee, 
 >> and a square dance choreography editor, implemented 
 >> using exactly these encoded state techniques that you 
 >> are saying do not constitute "programming".

 Pascal> No, hypercard contains a programming language: you can really write
 Pascal> algorithms, without jumping from one card to the other.

But the applications I described were in fact
implemented by jumping around on cards.
From: Pascal Bourguignon
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <87u0v2959e.fsf@thalassa.informatimago.com>
······@news.dtpq.com (Christopher C. Stacy) writes:

> >>>>> On 16 Aug 2004 12:25:40 +0200, Pascal Bourguignon ("Pascal") writes:
> 
>  Pascal> ······@news.dtpq.com (Christopher C. Stacy) writes:
>  Pascal> This is not a program.  It's merely DATA: a graph of the game states.
>  >> 
>  >> The Apple programming language "Hypercard" works in the
>  >> same way as has been shown in the Tic-Tac-Toe example.
>  >> I have seen Hypercard applications such as a Yahtzee, 
>  >> and a square dance choreography editor, implemented 
>  >> using exactly these encoded state techniques that you 
>  >> are saying do not constitute "programming".
> 
>  Pascal> No, hypercard contains a programming language: you can really write
>  Pascal> algorithms, without jumping from one card to the other.
> 
> But the applications I described were in fact
> implemented by jumping around on cards.


((but (does (this use of sexps) (make lisp a (non programming language)))) ?)

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Christopher C. Stacy
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <uacwufo42.fsf@news.dtpq.com>
>>>>> On 16 Aug 2004 22:50:37 +0200, Pascal Bourguignon ("Pascal") writes:

 Pascal> ······@news.dtpq.com (Christopher C. Stacy) writes:
 >> >>>>> On 16 Aug 2004 12:25:40 +0200, Pascal Bourguignon ("Pascal") writes:
 >> 
 Pascal> ······@news.dtpq.com (Christopher C. Stacy) writes:
 Pascal> This is not a program.  It's merely DATA: a graph of the game states.
 >> >> 
 >> >> The Apple programming language "Hypercard" works in the
 >> >> same way as has been shown in the Tic-Tac-Toe example.
 >> >> I have seen Hypercard applications such as a Yahtzee, 
 >> >> and a square dance choreography editor, implemented 
 >> >> using exactly these encoded state techniques that you 
 >> >> are saying do not constitute "programming".
 >> 
 Pascal> No, hypercard contains a programming language: you can really write
 Pascal> algorithms, without jumping from one card to the other.
 >> 
 >> But the applications I described were in fact
 >> implemented by jumping around on cards.


 Pascal> ((but (does (this use of sexps) (make lisp a (non programming language)))) ?)

I don't understand what you're trying to convey.
From: Pascal Bourguignon
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <87pt5q8iqs.fsf@thalassa.informatimago.com>
······@news.dtpq.com (Christopher C. Stacy) writes:
>  Pascal> No, hypercard contains a programming language: you can really write
>  Pascal> algorithms, without jumping from one card to the other.
>  >> 
>  >> But the applications I described were in fact
>  >> implemented by jumping around on cards.
> 
>  Pascal> ((but (does (this use of sexps) (make lisp a (non programming language)))) ?)
> 
> I don't understand what you're trying to convey.

The fact that you use a language inexpressively does not makes all
other inexpressive languages as powerful as the language you use.




And don't be misled by the fact that the inexpressivelyness is still
related to the interpreter of your language, not to its syntax!

CL-USER> ((but (does (this use of sexps) (make lisp a (non programming language)))) ?)

EVAL: (BUT (DOES (THIS USE OF SEXPS) (MAKE LISP A (NON PROGRAMMING LANGUAGE)))) is not a function name
   [Condition of type SYSTEM::SIMPLE-SOURCE-PROGRAM-ERROR]


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Christopher C. Stacy
Subject: Re: What is a programming language? (was: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.)
Date: 
Message-ID: <uzn4ugetp.fsf@news.dtpq.com>
>>>>> On 17 Aug 2004 06:56:59 +0200, Pascal Bourguignon ("Pascal") writes:

 Pascal> ······@news.dtpq.com (Christopher C. Stacy) writes:
 Pascal> No, hypercard contains a programming language: you can really write
 Pascal> algorithms, without jumping from one card to the other.
 >> >> 
 >> >> But the applications I described were in fact
 >> >> implemented by jumping around on cards.
 >> 
 Pascal> ((but (does (this use of sexps) (make lisp a (non programming language)))) ?)
 >> 
 >> I don't understand what you're trying to convey.

 Pascal> The fact that you use a language inexpressively does not makes all
 Pascal> other inexpressive languages as powerful as the language you use.

Yes, I agree: the fact that you state a fact does not 
make all other statements facts.  (But I never claimed
that it did, and this does not address my example.)

 Pascal> And don't be misled by the fact that the inexpressivelyness
 Pascal> is still related to the interpreter of your language, not to
 Pascal> its syntax!

So, you're saying that not all random sequence of tokens 
constitutes a language?  I also agree with you there.
From: Christopher C. Stacy
Subject: Re: What is a programming language?
Date: 
Message-ID: <u657kdpys.fsf@news.dtpq.com>
>>>>> On 15 Aug 2004 15:07:08 GMT, Stefan Ram ("Stefan") writes:
 Stefan>   No programming language is a turing machine and no existing
 Stefan>   computer is. Moreover, the ISO-definition of the notion
 Stefan>   "programming language" does not mention turing machines.

I would also draw attention to the IBM "computing" machines that were
popular into the 1960s, involving punched cards and plugboards.
Consider how those relate to IBM's programming language RPG,
which (like my Apple Hypercard example) has always been accepted
as a "programming language".
From: Pascal Bourguignon
Subject: Re: What is a programming language?
Date: 
Message-ID: <87pt5r9xbm.fsf@thalassa.informatimago.com>
···@zedat.fu-berlin.de (Stefan Ram) writes:
> >Or, said otherwise, the interpreter of HTML IS NOT a Turing Machine
> >(where is the infinite tape memory?).
> 
>   No programming language is a turing machine and no existing
>   computer is. Moreover, the ISO-definition of the notion
>   "programming language" does not mention turing machines.

If you don't want to speak about Turing Machine (after all, the
infinite memory tape requirement  may difficult to fullfil), I'd agree
to consider a language a programming language if you can program an
interpreted for this language in this language.

Show me an interpreter for HTML written in HTML!


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Ray Dillinger
Subject: Re: What is a programming language?
Date: 
Message-ID: <PBw%c.12591$54.177748@typhoon.sonic.net>
Pascal Bourguignon wrote:

> 
> If you don't want to speak about Turing Machine (after all, the
> infinite memory tape requirement  may difficult to fullfil), I'd agree
> to consider a language a programming language if you can program an
> interpreted for this language in this language.

There's a reductio-ad-absurdem here.  Consider the programming
language that does nothing.  It's easy to write an interpreter
for it, using it.

> Show me an interpreter for HTML written in HTML!

That's a bit harder but with HTML 4.0, I'm pretty sure it could
be done.

				Bear
From: Pascal Bourguignon
Subject: Re: What is a programming language?
Date: 
Message-ID: <87brghco5y.fsf@thalassa.informatimago.com>
Ray Dillinger <····@sonic.net> writes:
> > Show me an interpreter for HTML written in HTML!
> 
> That's a bit harder but with HTML 4.0, I'm pretty sure it could
> be done.

We have to forbid javascript or any other kind of scripting that is
not specified in HTML 4.0.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Joe Marshall
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <fz6ni3o8.fsf@ccs.neu.edu>
"Jeff" <···@nospam.insightbb.com> writes:

> How can HTML be considered a programming language?

Consider it a primitive language used to program a display.
From: Rob Warnock
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <-q2dnUp54t_BSbTcRVn-oQ@speakeasy.net>
Joe Marshall  <···@ccs.neu.edu> wrote:
+---------------
| "Jeff" <···@nospam.insightbb.com> writes:
| > How can HTML be considered a programming language?
| 
| Consider it a primitive language used to program a display.
+---------------

You mean like RUNOFF & Troff & PostScript? Oh, wait, those *are*
programming languages. [Or at least PostScript is. While the former
two have macros, I'm not sure that make them programming languages...]


-Rob

-----
Rob Warnock			<····@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607
From: ·······@Yahoo.Com
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <REM-2004aug23-003@Yahoo.Com>
> From: "Tayssir John Gabbour" <···········@yahoo.com>
> In the old days, people apparently had the most amusing notions of
> lisp, and one big point was no one could possibly work with
> parenthetical syntax. Of course now we see that HTML/XML has been
> adopted en masse by the public.

One big disadvantage of parenthetical notation is that if you have a
very very large expression, like many pages, you can't see where the
parens match, and if you are using a plain-text editor and get a
mismatch it's nearly impossible to figure out what's wrong. Parens are
fine for single-screen expressions where you can either use EMACS
auto-match features or prettyprint the expression and visually see
where you goofed, but for multi-screen expressions SAIL (the Stanford
A.I. version of Algol-60) was best: BEGIN...END blocks could have
labels at each end, and the compiler would complain if you got them
mismatched. XML has a half-baked approach: It matches only the types of
tags, not the specific names, so a mismatch between a <em...> and a
</em> goes undetected whereas a mismatch between a <p...> and a </em>
gets flagged as bad syntax. To it right, XML should allow name
attributes on closing tags too, so it could check the match between <em
name="foo"> and </em name="foo">. SGML/HTML is even worse, not even
bothering to have matching opening/closing tags much of the time.

It would be nice to have a a language that allowed a mix of
<tag>...</tag> and (op ...) notation as appropriate for the context,
with the two formats being exactly equivalent semantically.
That way you could have small expressions such as (plus (expt x 2) 5)
instead of having to write it as
<plus><expt><atom>x</atom><atom>2</atom></expt><atom>f</atom></plus>
or somesuch, yet for huge page ranges you could do it the XML way (or
even better the SAIL way).
From: William Bland
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <pan.2004.08.24.01.35.10.133773@abstractnonsense.com>
On Mon, 23 Aug 2004 11:40:14 -0700, ·······@Yahoo.Com wrote:

> One big disadvantage of parenthetical notation is that if you have a
> very very large expression, like many pages, you can't see where the
> parens match...

This, to me, would be a sure sign that the expression is too large, and
needs refactoring.  IMHO, giving people matching begin and end tags just
encourages them to write longer blocks than they really should.

Cheers,
	Bill.
-- 
Dr. William Bland.
It would not be too unfair to any language to refer to Java as a
stripped down Lisp or Smalltalk with a C syntax.   (Ken Anderson).
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <pan.2004.08.25.15.19.29.265952@knm.org.pl>
On Tue, 24 Aug 2004 01:40:09 +0000, William Bland wrote:

>> One big disadvantage of parenthetical notation is that if you have a
>> very very large expression, like many pages, you can't see where the
>> parens match...
> 
> This, to me, would be a sure sign that the expression is too large, and
> needs refactoring.  IMHO, giving people matching begin and end tags just
> encourages them to write longer blocks than they really should.

I was recently writing an Emacs mode. It was already working, but
yesterday I decided to change the representation of the result of a couple
of functions dealing with autoindentation, which needed small rewriting in
a few places.

After my rewriting Emacs complained about a syntax error in the file.
I found a place when a closing paren was missing. Emacs complained again.
I found another missing closing paren. I wish Emacs pointed out *which*
paren was not closed, but anyway this was easy enough to find.

Then the file finally loaded, but <TAB> usually caused Emacs to enter
an infinite loop. I nailed down the probable function which was buggy,
because it looped when the code to be indented looked in a particular way,
and a stack trace showed that it was stuck in a while loop in that function.

I stared at the function. It had 38 lines, which even fit on one screen
(Emacs.geometry: 80x48). I double checked that the changed logic is
correct. I checked other functions which was calling and called by that
function but couldn't find an error. It had to be something stupid because
it worked before the change. I tried to learn how Emacs debugging works
or at least how to insert "debugging printfs" to see what's going on, not
very successfully. This bug took about half an hour.

Finally I found it, indeed in that function. One of statements had one
closing paren too many, the next statement had one too few (about 5 parens
in each case), which caused a statement to be moved outside a conditional,
despite indentation suggesting otherwise. Arghh.

Of course I indent automatically with Emacs and I'm careful to watch what
goes where while I'm typing, but this was a refactoring after which I had
to regenerate some closing parens. I must have been typing closing parens
while watching what they are closing, typed one too many or too few, then
balanced them in a nearby place, so globally they were balanced but one
statement slipped to the wrong side.

Yes, I do try to split code into many functions in general, I do write
functions called from only one place (this one was such a function). This
was actually the largest function. Too many functions is not good either,
one has to memorize many names and think about passing state between them,
so I don't see how I could have avoided the bug or found it faster.

For some reason problems with mismatched parentheses don't happen when I
program in other languages.

-- 
   __("<         Marcin Kowalczyk
   \__/       ······@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
From: Joost Kremers
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <slrncipchg.dd.joostkremers@j.kremers4.news.arnhem.chello.nl>
Marcin 'Qrczak' Kowalczyk wrote:
> Finally I found it, indeed in that function. One of statements had one
> closing paren too many, the next statement had one too few (about 5 parens
> in each case), which caused a statement to be moved outside a conditional,
> despite indentation suggesting otherwise. Arghh.

put the cursor on the first line of the function (well, you can start at
the line after defun) and hit tab. then move the cursor one line down, and
hit tab again, and so on. emacs will re-indent every line for you, and if
you've mismatched parens inside a function, the indenting will not go as
you expected.

-- 
Joost Kremers                                      ············@yahoo.com
Selbst in die Unterwelt dringt durch Spalten Licht
EN:SiS(9)
From: Peter Seibel
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <m34qmrp50o.fsf@javamonkey.com>
Joost Kremers <············@yahoo.com> writes:

> Marcin 'Qrczak' Kowalczyk wrote:
>> Finally I found it, indeed in that function. One of statements had one
>> closing paren too many, the next statement had one too few (about 5 parens
>> in each case), which caused a statement to be moved outside a conditional,
>> despite indentation suggesting otherwise. Arghh.
>
> put the cursor on the first line of the function (well, you can start at
> the line after defun) and hit tab. then move the cursor one line down, and
> hit tab again, and so on. emacs will re-indent every line for you, and if
> you've mismatched parens inside a function, the indenting will not go as
> you expected.

Or put the cursor on the opening paren of the defun and hit C-M-q
(indent-sexp).

-Peter

-- 
Peter Seibel                                      ·····@javamonkey.com

         Lisp is the red pill. -- John Fraser, comp.lang.lisp
From: Fred Gilham
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's  web writings.
Date: 
Message-ID: <u77jrn148x.fsf@snapdragon.csl.sri.com>
> Or put the cursor on the opening paren of the defun and hit C-M-q
> (indent-sexp).

Be careful with this.  Emacs will try to close off all parentheses
that are not matched.  You might wind up with unexpected results.

-- 
Fred Gilham                                       ······@csl.sri.com
I know the strange tale of the Slug; / the Early Sin -- the Fall --
the Sleep -- the Vision -- and the Vow -- / the Quest -- the Crown --
the Call.                                      --- G. K. Chesterton
From: Matthew Danish
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's  web writings.
Date: 
Message-ID: <20040825205936.GJ8087@mapcar.org>
On Wed, Aug 25, 2004 at 11:06:54AM -0700, Fred Gilham wrote:
> > Or put the cursor on the opening paren of the defun and hit C-M-q
> > (indent-sexp).
> Be careful with this.  Emacs will try to close off all parentheses
> that are not matched.  You might wind up with unexpected results.

Not for me; it just complains about a scan error.  Which emacs are you
using?  I am using GNU Emacs 21.3.50.1.  Maybe you loaded some
additional package?

-- 
;;;; Matthew Danish -- user: mrd domain: cmu.edu
;;;; OpenPGP public key: C24B6010 on keyring.debian.org
From: Coby Beck
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's  web writings.
Date: 
Message-ID: <TKoXc.12715$A8.11909@edtnps89>
"Matthew Danish" <·······@andrew.cmu.edu> wrote in message
··························@mapcar.org...
> On Wed, Aug 25, 2004 at 11:06:54AM -0700, Fred Gilham wrote:
> > > Or put the cursor on the opening paren of the defun and hit C-M-q
> > > (indent-sexp).
> > Be careful with this.  Emacs will try to close off all parentheses
> > that are not matched.  You might wind up with unexpected results.
>
> Not for me; it just complains about a scan error.  Which emacs are you
> using?  I am using GNU Emacs 21.3.50.1.  Maybe you loaded some
> additional package?

None of my emacs installations do that either and I don't think I would
appreciate it if they did.  *occasionally* I will add a slew of )'s a line
below where I'm working if I want to auto-indent an unfinished chunk of
code...but I would not want that automated for exactly the caution Fred
Gilham mentioned above.

-- 
Coby Beck
(remove #\Space "coby 101 @ big pond . com")
From: spoj
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's  web writings.
Date: 
Message-ID: <87ekltw8bo.fsf@wyy.dyndns.org>
"Coby Beck" <·····@mercury.bc.ca> writes:

> None of my emacs installations do that either and I don't think I would
> appreciate it if they did.  *occasionally* I will add a slew of )'s a line
> below where I'm working if I want to auto-indent an unfinished chunk of
> code...but I would not want that automated for exactly the caution Fred
> Gilham mentioned above.

I think some previous revisions of Slime did that.  It seems it
doesn't do that anymore though.

-- 
Darth Vader sleeps with a Teddywookie.
From: Oliver Korpilla
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <cirep0$3ke$1@wsc10.lrz-muenchen.de>
Marcin 'Qrczak' Kowalczyk wrote:
> On Tue, 24 Aug 2004 01:40:09 +0000, William Bland wrote:
> 
> 
>>>One big disadvantage of parenthetical notation is that if you have a
>>>very very large expression, like many pages, you can't see where the
>>>parens match...
>>
>>This, to me, would be a sure sign that the expression is too large, and
>>needs refactoring.  IMHO, giving people matching begin and end tags just
>>encourages them to write longer blocks than they really should.

> Yes, I do try to split code into many functions in general, I do write
> functions called from only one place (this one was such a function). This
> was actually the largest function. Too many functions is not good either,
> one has to memorize many names and think about passing state between them,
> so I don't see how I could have avoided the bug or found it faster.
> 
> For some reason problems with mismatched parentheses don't happen when I
> program in other languages.

Well, other languages have a more diverse syntax (infix, prefix, postfix for C, 
e.g.), but that is actually a limit to their expressive power. It may make them 
easier to read. But most languages are vastly easier to read with the right 
editor, goes the same for Lisp: Indentiation, coloring, paren-matching. I'm 
making paren-mismatching, semicolon-omitting, etc. errors all the time. The 
language is more diverse, and the error-checking is easier for the compile (step 
down decision tree, is it construct XY?). With a good compiler and a good editor 
this is a feature, but one you pay a lot for: It's harder to generate C code, C 
doesn't understand its own macros (just a pre-processor trick), and C compilers 
are much harder to write and to get right, especially when you're doing 
something new. Especially if you're extending the language.

With a proper editor, and stuff like etags/ctags, you don't have to memorize 
function names. You jump from call to definition, so that's not much of a point. 
A good function name is self-explaining anyway, so is it really a problem of 
memorizing it? Crude code, possibly multiple pages of it, is a much bigger 
problem, because it overflows the "buffer" of the programmer, studies tend to 
show that: the shorter a function, the easier to understand. If you hit the 
line/complexity limit, understanding a function becomes vastly harder.

With a better editor, proper additional tools, and maybe a code graph generator, 
this problem would be easier tackleable, than saying: Those darn parentheses.

My (wiseass) 2 cents.

Oliver
From: ·······@Yahoo.Com
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <REM-2004aug27-001@Yahoo.Com>
> From: William Bland <·······@abstractnonsense.com>
> > One big disadvantage of parenthetical notation is that if you have a
> > very very large expression, like many pages, you can't see where the
> > parens match...
> This, to me, would be a sure sign that the expression is too large, and
> needs refactoring.  IMHO, giving people matching begin and end tags just
> encourages them to write longer blocks than they really should.

The discussion here was comparing SGML/XML and s-expressions as a way
of expressing nested structure. In a LISP program where each function
is a stand-alone thing, it's reasonable to have each function fit on a
single page where parentheses matching is sufficient. But in a WebPage
document, where there must be a wrapper around the whole page,
currently <html>...</html>, and another warpper inside that around the
main body, currently <body>...</body>, it's unreasonable to insist that
the entire WebPage, the entire file basically, fit on a single screen
of an editor. Also in object-oriented programming, where there's a
wrapper around an entire class, it's unreasonable to insist that all
the methods of that entire class fit on a single screen of an editor.

The idea of unifying s-expressions and SGML/XML is to support both
large things (entire WebPages, entire classes) and small things
(individual functions or methods or mathematical expressions etc.)
within a single framework, allowing begintag...endtag notation, or
BEGIN "label" ... END "label" notation, for structures that are very
large, and allowing (...) notation for structures that are small enough
to fit on one screen, and allowing the author discretion in borderline
cases.
From: William Bland
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <pan.2004.08.27.17.45.07.893429@abstractnonsense.com>
On Fri, 27 Aug 2004 10:29:09 -0700, ·······@Yahoo.Com wrote:

> Also in object-oriented programming, where there's a
> wrapper around an entire class, it's unreasonable to insist that all
> the methods of that entire class fit on a single screen of an editor.

I've never worked on a project where I thought the classes were too small.
I have worked on more projects than I care to remember where the classes
were too big.  It might be unreasonable to insist that all the methods of
a class fit on one screen, but I don't think people need any encouragement
at all to make classes bigger.

To bring this back on-topic, one of the things I'm starting to like about
CLOS is that you don't have to put your methods in the same place as your
class definitions, so you can break things up into more manageable pieces.

Cheers,
	Bill.
-- 
Dr. William Bland.
It would not be too unfair to any language to refer to Java as a
stripped down Lisp or Smalltalk with a C syntax.   (Ken Anderson).
From: Thomas A. Russ
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <ymi4qmfcjt9.fsf@sevak.isi.edu>
William Bland <·······@abstractnonsense.com> writes:

> 
> On Fri, 27 Aug 2004 10:29:09 -0700, ·······@Yahoo.Com wrote:
> 
> > Also in object-oriented programming, where there's a
> > wrapper around an entire class, it's unreasonable to insist that all
> > the methods of that entire class fit on a single screen of an editor.
> 
> I've never worked on a project where I thought the classes were too small.
> I have worked on more projects than I care to remember where the classes
> were too big.  It might be unreasonable to insist that all the methods of
> a class fit on one screen, but I don't think people need any encouragement
> at all to make classes bigger.

Of course, one could at least have the goal of trying to keep EACH
method on one screen :)

Essentially, the enclosing class delimiters are sort of like a top-level
PROGN.  Necessary for syntactic reasons in those languages, but not
really adding anything essential to the understanding.  That one
dangling close brace isn't something you need to look for -- unless the
compiler can't find it :)

-- 
Thomas A. Russ,  USC/Information Sciences Institute
From: Joost Kremers
Subject: Re: E. W. Dijkstra VS. John McCarthy. A rebuttal to Paul Graham's web writings.
Date: 
Message-ID: <slrnciuugl.a5.joostkremers@j.kremers4.news.arnhem.chello.nl>
·······@Yahoo.Com wrote:
> of an editor. Also in object-oriented programming, where there's a
> wrapper around an entire class, it's unreasonable to insist that all
> the methods of that entire class fit on a single screen of an editor.

only if the language in question requires that methods are part of a class,
which is not the case with CLOS.

-- 
Joost Kremers                                      ············@yahoo.com
Selbst in die Unterwelt dringt durch Spalten Licht
EN:SiS(9)