9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Eris Discordia <eris.discordia@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] nice quote
Date: Fri,  4 Sep 2009 21:18:01 +0100	[thread overview]
Message-ID: <BB8E3A2E5419E566D0361D29@[192.168.1.2]> (raw)
In-Reply-To: <542783.92348.qm@web83904.mail.sp1.yahoo.com>

Caveat: please add IMH(UI)O in front of any assertion that comes below.

Since education was brought up: I remember I found it seriously twisted 
when I was told mathematics freshmen in a top-notch university not 
(geographically) far from me are taught not one but two courses in computer 
programming... in Java.

Being the hobbyist (as contrasted to the professional) here, and the one 
who's got the smaller cut out of the intelligence cake, I think I am sure C 
was a lot easier to learn and comprehend than either Pascal--all the kids 
were into "Pascal or C? That's the problem" back then--or C++ or even the 
mess of a language called GW-BASIC (which I learnt as a kid and before I 
knew C, too, could be learnt by kids). Even if Pascal got all the buzz 
about being a "teaching language."

What seems to distinguish--pedagogically, at least--C is, as I noted on 
that other thread, its closeness to how the small computer, not the actual 
small computer but the mental model of a small computer, works. Pointers? 
They're just references to "pigeonholes" in a row of such holes. Scope? 
It's just how long your variables are remembered. Invocation? Just a way to 
regurgitate your own cooking. If one has to solve a problem, implement an 
algorithm, on a small computer one needs to be able to explain it in terms 
of the primitives available on that computer. That's where C shines. 
There's a close connection between language primitives and the primitives 
of the underlying computer. I'm not saying this is something magically 
featuring in C--it's a property that _had_ to feature in some language some 
time, C became that. In a different time and place, on different machines, 
another language would/will be that (and it shall be called C ;-))

I whined about LISP on yet another thread. Above says precisely why I did. 
LISP is twofold hurtful for me as a naive, below average hobbyist. For one 
thing the language constructs do not reflect the small computer primitives 
I was taught somewhere around the beginning of my education. For another, 
most (simple) problems I have had to deal with are far better expressible 
in terms of those very primitives. In other words, for a person of my (low) 
caliber, LISP is neither suited to the family of problems I encounter nor 
suited to the machines I solve them on. Its claim to fame as the language 
for "wizards" remains. Although, mind you, the AI paradigm LISP used to 
represent is long deprecated (Rodney Brooks gives a good overview of this 
deprecation, although not specifically targeting LISP, in "Cambrian 
Intelligence: The Early History of the New AI"). One serious question today 
would be: what's LISP _really_ good for? That it represents a specific 
programming paradigm is not enough justification. Ideally, a language 
should represent a specific application area, as does C, i.e. 
general-purpose system and (low-level) application programming.

A favorite quote out of my favorite physics textbook:

> Further progress lies in the direction of making our equations invariant
> under wider and still wider transformations. This state of affairs is
> very satisfactory from a philosophical point of view, as implying an
> increasing recognition of the part played by the observer in himself
> introducing the regularities that appear in his observations, and a lack
> of arbitrariness in the ways of nature, but it makes things less easy for
> the learner of physics.

-- P. A. M. Dirac, The Principles of Quantum Mechanics

Unlike physical phenomena languages (natural or artificial) are subject to 
constraints that act (in comparison) very slowly and very leniently. 
There's a great deal of arbitrariness in how a computer language might 
look. It is epistemologically, aesthetically, and pragmatically 
advantageous to "remove arbitrariness" by fitting a language to either its 
target platform or its target problem, preferably both. C did and continues 
to do so, LISP doesn't (not anymore, to say the least).


P.S. UI stands for "uninformed."

--On Friday, September 04, 2009 10:47 -0700 "Brian L. Stuart" 
<blstuart@bellsouth.net> wrote:

>> >> > K&R is beautiful in this respect. In
>> contrast, I
>> >> never managed to
>> >> > bite in Stroustrup's description.
>> >>
>> >> Ok, now I'll get provocative:
>> >> Then why do so many people have a problem
>> understanding C?
>> >
>> > Are you saying that there is a significant number of
>> > people who understand C++ but not C?  The reason
>>
>> I wasn't saying anything, I was asking a question. :)
>
> Ah, I misunderstood.  The question about why people don't
> understand C on the heels of a reference to Stroustrup
> led me to think that was a suggestion C++ was easier to
> understand than C.  Of course, I may be a little too
> sensitive to such a claim, because of what I've been
> hearing in the academic community for a while.  Some
> keep saying that we should use more complex languages
> in the introductory course because they're in some way
> easier.  But I've yet to understand their definition
> of easier.*
>
> BLS
>
> *Well, actually I do kind of realize they are suggesting
> that a tinkertoy approach makes it easier for a beginner
> to see something happen.  The problem I have is that's
> not the point of teaching that material.  Just getting
> something to happen might be training, but it sure isn't
> education.
>
>



  parent reply	other threads:[~2009-09-04 20:18 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-02 14:29 ron minnich
2009-09-02 14:51 ` Rodolfo (kix)
2009-09-03  9:52   ` Greg Comeau
2009-09-03 11:15     ` Skip Tavakkolian
2009-09-03 13:59       ` Greg Comeau
2009-09-03 15:01     ` David Leimbach
2009-09-02 15:19 ` Enrique Soriano
2009-09-02 16:38 ` erik quanstrom
2009-09-02 16:56   ` David Leimbach
2009-09-02 16:58   ` Robert Raschke
2009-09-02 17:03     ` David Leimbach
2009-09-02 17:36       ` erik quanstrom
2009-09-02 18:08         ` Richard Miller
2009-09-02 18:27           ` David Leimbach
2009-09-02 18:35             ` erik quanstrom
2009-09-02 18:46               ` David Leimbach
2009-09-03 15:02                 ` Uriel
2009-09-03 15:02                   ` David Leimbach
2009-09-02 19:10             ` Jonathan Cast
2009-09-02 20:02               ` David Leimbach
2009-09-02 20:23                 ` Jonathan Cast
2009-09-02 20:45                   ` David Leimbach
2009-09-02 17:31 ` Eric Van Hensbergen
2009-09-02 18:25   ` David Leimbach
2009-09-02 18:47 ` ron minnich
2009-09-02 19:11   ` Brian L. Stuart
2009-09-02 19:32     ` David Leimbach
2009-09-02 22:59     ` Roman V Shaposhnik
2009-09-03  9:53       ` Greg Comeau
2009-09-03 11:24         ` Skip Tavakkolian
2009-09-03 12:01           ` tlaronde
2009-09-03 12:06             ` Brantley Coile
2009-09-03 14:03               ` Greg Comeau
2009-09-03 15:13               ` Jason Catena
2009-09-04  9:04                 ` Greg Comeau
2009-09-03 14:02             ` Greg Comeau
2009-09-03 14:57               ` Robert Raschke
2009-09-04  9:04                 ` Greg Comeau
2009-09-03 17:40               ` Brian L. Stuart
2009-09-04  9:03                 ` Greg Comeau
2009-09-04 17:47                   ` Brian L. Stuart
2009-09-04 18:01                     ` Jack Norton
2009-09-04 20:18                     ` Eris Discordia [this message]
2009-09-04 21:36                       ` Daniel Lyons
2009-09-04 22:50                         ` andrey mirtchovski
2009-09-05 14:14                         ` Eris Discordia
     [not found]                         ` <7AAFE4127E1DB57785BB273A@192.168.1.2>
2009-09-05 14:36                           ` Eris Discordia
2009-09-06  1:58                           ` Jason Catena
2009-09-06  3:38                             ` David Leimbach
2009-09-06 18:29                               ` Tim Newsham
2009-09-06 18:44                                 ` David Leimbach
2009-09-06 17:08                             ` Eris Discordia
     [not found]                             ` <9C0E59DDCCDD197FBD4EC404@192.168.1.2>
2009-09-06 18:05                               ` David Leimbach
2009-09-06 18:34                                 ` James Chapman
2009-09-06 18:26                             ` Tim Newsham
2009-09-06 18:40                               ` David Leimbach
2009-09-07  8:54                         ` Paul Donnelly
2009-09-07  9:07                       ` Greg Comeau
     [not found]                     ` <BB8E3A2E5419E566D0361D29@192.168.1.2>
2009-09-04 21:52                       ` Jason Catena
2009-09-05 11:02                         ` Richard Miller
2009-09-05 11:22                           ` Akshat Kumar
2009-09-05 12:11                             ` tlaronde
2009-09-06 20:04                               ` Rudolf Sykora
2009-09-06 20:45                                 ` erik quanstrom
2009-09-07  7:51                                   ` Vinu Rajashekhar
2009-09-05 13:38                             ` Anthony Sorace
2009-09-07  9:07                             ` Greg Comeau
2009-09-07  9:39                               ` Akshat Kumar
2009-09-07 15:49                                 ` Greg Comeau
2009-09-07 15:58                                   ` erik quanstrom
2009-09-07 20:56                                     ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-07 21:21                                       ` Federico G. Benavento
2009-09-07 21:33                                         ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-09  8:30                                           ` Greg Comeau
2009-09-09 11:22                                             ` erik quanstrom
2009-09-09 15:48                                               ` Charles Forsyth
2009-09-09 16:00                                                 ` Russ Cox
2009-09-09 16:37                                                   ` Abhishek Kulkarni
2009-09-09 16:51                                                     ` Jack Norton
2009-09-09 16:07                                                 ` erik quanstrom
2009-09-09 16:07                                                 ` Akshat Kumar
2009-09-09 16:08                                                 ` Richard Miller
2009-09-09 16:13                                                   ` Richard Miller
2009-09-10 21:45                                                   ` erik quanstrom
2009-09-11  7:54                                                     ` Richard Miller
2009-09-11 10:21                                                       ` erik quanstrom
2009-09-09 16:11                                                 ` David Leimbach
2009-09-09 16:29                                                 ` Jason Catena
2009-09-09 17:17                                                 ` Skip Tavakkolian
2009-09-09 18:36                                                   ` Jason Catena
2009-09-09 17:29                                                 ` Iruata Souza
2009-09-09 17:57                                                 ` Tim Newsham
2009-09-10 11:59                                                 ` Eris Discordia
     [not found]                                                 ` <99A870099C1B1D6560F4CF1A@192.168.1.2>
2009-09-10 15:58                                                   ` hiro
2009-09-10 21:24                                                     ` Eris Discordia
2009-09-09  8:30                                       ` Greg Comeau
2009-09-09  8:29                                     ` Greg Comeau
2009-09-05 14:27                           ` Eris Discordia
2009-09-05 14:33                           ` Eris Discordia
     [not found]                           ` <B6F7A6BD1919CC67B621FDE3@192.168.1.2>
2009-09-05 14:36                             ` John Floren
2009-09-05 14:51                               ` Eris Discordia
2009-09-05 19:30                                 ` Daniel Lyons
2009-09-05 23:48                                   ` Eris Discordia
2009-09-05 18:26                               ` erik quanstrom
2009-09-06  0:05                                 ` Eris Discordia
2009-09-06  0:17                                   ` erik quanstrom
2009-09-06  0:37                                     ` Eris Discordia
2009-09-06  0:56                                       ` erik quanstrom
2009-09-06 16:51                                         ` Eris Discordia
2009-09-06 17:32                                           ` tlaronde
2009-09-06  4:23                                 ` J.R. Mauro
2009-09-06 17:24                                   ` Eris Discordia
     [not found]                                   ` <393394D0A7F3F4A227F94CDA@192.168.1.2>
2009-09-06 18:03                                     ` Rob Pike
2009-09-06 19:26                                       ` Eris Discordia
2009-09-07 15:47                                       ` J.R. Mauro
2009-09-07  8:54                     ` Paul Donnelly
2009-09-07  9:04                       ` Daniel Lyons
2009-09-07  9:05                       ` Vinu Rajashekhar
2009-09-07  9:05                     ` Greg Comeau
2009-09-07  9:49                       ` Daniel Lyons
2009-09-07 11:34                         ` erik quanstrom
2009-09-07 16:00                         ` Greg Comeau
2009-09-07 19:23                           ` Eris Discordia
2009-09-09  8:29                             ` Greg Comeau
2009-09-09  8:35                           ` Paul Donnelly
2009-09-03 19:38               ` tlaronde
2009-09-03 21:55                 ` Daniel Lyons
2009-09-03 22:01                 ` Tharaneedharan Vilwanathan
2009-09-07  8:54                   ` Greg Comeau
2009-09-04  9:15                 ` Greg Comeau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='BB8E3A2E5419E566D0361D29@[192.168.1.2]' \
    --to=eris.discordia@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).