One still hear's tones of regret that the good old days are over, when one's choice of a first year computer language was obvious: Algol or Pascal. Today there's no such consensus (if there ever was), but another question is "should we have learning languages?" There was a time when it was considered intuitive that languages not used in the "real world" could be all that much more powerful as educational tools because weighted to "learner" needs. BASIC was one of those languages, and we may argue that it gave birth to the PC era, which is what gave rise to the *nix explosion (aka the "dot com bomb") as a follow-on event.** But is the Darwinian process that winnows the field to but a few languages also giving us more learnable ones? Consider Grace, a new language in development for the express purpose of teaching object oriented programming to students. Why not use Python? Python lacks compile time type checking. Is that bad? It's a subject of religious wars. Note how the voices beneath the main question worry about it's "subjective" nature: code for it's potential to inspire "flame wars": http://stackoverflow.com/questions/125367/dynamic-type-languages-versus-stat... The answer that's eventually accepted takes the approach of reserving scorn for extremists in both camps. Kirby ** of course "dot com bomb" sounds bad for business whereas the *Nix revolution paved the way for the Free Web and free just about everything. New businesses depend on "going viral" i.e. the infinite replicability of binary objects is the key to their success, versus failure (a big turnaround in some industries)
On Mon, February 13, 2012 2:42 am, kirby urner wrote:
One still hear's tones of regret that the good old days are over, when one's choice of a first year computer language was obvious: Algol or Pascal.
LISP, Sir, LISP every time. Well, Logo or Scheme, more recently. (I reviewed The Little LISPer for Byte Magazine in 1978, and called it the best introductory programming book in any language. It has been replaced by The Little Schemer.) One of the greatest advantages of LISP is that one can rewrite the read-eval-print loop to one's own taste, so that LISPers are almost the only people in computing who are aware that syntax is bupkes. They call it syntactic sugar. But I know APLers who do the same thing, and it was even applied to FORTRAN once, in the form of RATFOR. Myself, I write tutorials for elementary school students in Turtle Art, where they get to program directly in tree structures, not in text. Thus they are not "sheltered" from parse trees, and can easily see that a TA program is the same in tree form, or if translated to Logo, Python, Smalltalk, APL/J, FORTH, or any other language in which TA has been or could be implemented.
Today there's no such consensus (if there ever was), but another question is "should we have learning languages?"
Yes. Multiple languages.
There was a time when it was considered intuitive that languages not used in the "real world" could be all that much more powerful as educational tools because weighted to "learner" needs.
Logo, Smalltalk, and APL, in particular. Logo and Smalltalk were designed so that children could learn them, and APL so that people could talk to each other about computers. Ken Iverson successfully used APL to teach first-grade arithmetic in an IBM-funded project. Except that they actually are used in what real programmers laughingly refer to as "the real world".
BASIC was one of those languages, and we may argue that it gave birth to the PC era, which is what gave rise to the *nix explosion (aka the "dot com bomb") as a follow-on event.**
But is the Darwinian process that winnows the field to but a few languages also giving us more learnable ones?
The process is in no way Darwinian, which would imply Natural Selection or Sexual Selection. What we have instead is network effects in which the existence of large bodies of code in horrible languages is taken as sufficient reason to continue to program in the languages of those corpora. My father, a pioneer in the use of APL in actuarial work, offered to write a textbook in APL to be published by the Actuarial Society, but they insisted on FORTRAN instead. (This heavy-handed approach was only possible in the time of dead-tree textbooks, of course, but unfortunately that time is not quite over.) Since then FORTRAN has taken to stealing from the design of APL, but has never stolen enough. At the same time, "mainstream" CS academics have wandered all across the map of programming languages, from Algol to BASIC to Pascal to C to Java, but have never let up on the fundamental fallacy that every budding high-school CS student should be taught the same single language so that they can take the same AP exam.
Consider Grace, a new language in development for the express purpose of teaching object oriented programming to students. Why not use Python? Python lacks compile time type checking.
Why not Smalltalk? Why not J? and while we are at it, why not teach functional programming?
Is that bad?
It's a subject of religious wars. Note how the voices beneath the main question worry about it's "subjective" nature: code for it's potential to inspire "flame wars":
http://stackoverflow.com/questions/125367/dynamic-type-languages-versus-stat...
Edsger Dijkstra taught that separation of concerns was one of the most important concepts in applying Computer Science to real programming. In particular, getting programs provably correct before worrying in the least about efficiency. He described, advocated, and demonstrated the process in A Discipline of Programming. Similarly, Donald Knuth claimed, "Premature optimization is the root of all evil." However, neither of them applied his principle to language design. Dijkstra claimed that APL was "a mistake carried through to perfection", while Knuth to this day teaches MIX assembly language in The Art of Computer Programming.
The answer that's eventually accepted takes the approach of reserving scorn for extremists in both camps.
"I invented the phrase Object-Oriented Programming, and C++ was not what I had in mind."--Alan Kay APL, the unCOBOL--me, on a bumper sticker sold at APL conferences
Kirby
** of course "dot com bomb" sounds bad for business whereas the *Nix revolution paved the way for the Free Web and free just about everything. New businesses depend on "going viral" i.e. the infinite replicability of binary objects is the key to their success, versus failure (a big turnaround in some industries) _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://wiki.sugarlabs.org/go/Replacing_Textbooks
participants (2)
-
kirby urner
-
mokurai@earthtreasury.org