Live data from Hacker News

Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

norvig.com

11–20 of 114 posts

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#11
post #6
post #3

Earlier quoted context omitted.

MIT's introductory engineering course used to teach Scheme to the students using the excellent SICP text. I believe they now teach their beginning students Java or Python. I am not sure if there are blog posts or papers detailing the benefits of using Scheme in the class room.

They switched the introductory course from Scheme to Python. The reason is because programming doesn't consist of building things up from first principles anymore, as is done in SICP. Now it largely consists of debugging and customizing already existing code, often via frameworks.

Maybe for a fairly standard CRUD web app which seems to be all the rage, but honestly it's not like you need to go to university to build something like that. The people making the frameworks, tools and unique domain specific programs still need to build things up from first principles.

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#13
post #9

Browser makers like Mozilla have had the option, at any time, to enable the use of Lisp (or any other language) in the place of Javascript. Nothing uniquely qualifies Javascript.

Not even "in place of" but "in addition to". There's a reason that the script tag has a language attribute as part of the standard.

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#15
post #6
post #3

Earlier quoted context omitted.

MIT's introductory engineering course used to teach Scheme to the students using the excellent SICP text. I believe they now teach their beginning students Java or Python. I am not sure if there are blog posts or papers detailing the benefits of using Scheme in the class room.

They switched the introductory course from Scheme to Python. The reason is because programming doesn't consist of building things up from first principles anymore, as is done in SICP. Now it largely consists of debugging and customizing already existing code, often via frameworks.

Reading a short account of the rationale behind the change, described by Sussman himself, paints a very different picture: http://cemerick.com/2009/03/24/why-mit-now-uses-python-inste... .

It's not that programming now "largely consists of debugging and customizing already existing code, often via frameworks". For one thing, it's only the narrow, web-constrained definition of "framework" that even vaguely works that way. Second, I'd argue that, unless the code which programmers debug has been written somewhere until the late 1990s, new code gets written often enough that programming largely consists of writing new code instead of debugging old one. That there are programmers hopelessly churning on the umpteenth bug because someone at the end of the Internet decided to change the format of their JSON objects and the mapping of their HTTP request handlers (pretentiously calling that "an API") is not a testament to how programming has evolved, it's merely a proof that not every change counts as evolution.

Instead, the choice of Python over Scheme -- which has been received with mixed feelings by almost every programmer able to write a Quicksort function without googling for compiler errors -- seems to have been driven by related, but vastly different reasons, such as:

* There are vast amounts of interactions spread over multiple languages, machines and platforms. Independently reasoning about objects, while essential to programming, is as central to teaching as integration in already existing architectures is. Unlike the early 1980s, when pretty much every new computer meant a new editor, a new set of programs and more often than not, a couple of new languages, being able to reason about existing architectures is incredibly important. Scheme is able to provide this, but requires fairly intimate knowledge of the implementation, whereas Python pretty much gives this away for free.

* A considerable deal of modern CS/CompEng research is centered around studying non-fundamental applications. It's important to have access to tools that allow people to whip up quick experiments. Whether Python does this better than Scheme is debatable, but Python does arguably score better in terms of integration and, therefore, in terms of being able to glue new fundamental discoveries to practical problems that they solve. Perl does that too, arguably better than Python, actually, but there are lines even seasoned teachers would rather not cross.

* Many of the so-called real problems come from more specific fields, are sloppier and can often be less rigorously stated than those for which SICP was initially written. Again, this is debatable, but Python is more universal and easier to convey. I don't know how much truth is behind this. I tend to disagree, because personal experience has shown me that this is the argument preferred by the kind of people who think that cool 3D data visualisation programs are a good example of a real-life problem and rotation matrices are a typical example of a useless problem that doesn't stem from real life applications.

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#16
post #9

Browser makers like Mozilla have had the option, at any time, to enable the use of Lisp (or any other language) in the place of Javascript. Nothing uniquely qualifies Javascript.

While nothing uniquely "requires' Javascript, replacing it in an existing browser is no easy feat. Look at how much work has gone into making Dart work just in Chrome.

And if any browser is going to replace Javascript, it's going to be Chrome (first), not Firefox - Mozilla is doubling-down on Javascript with both asm.js and FirefoxOS. Google is doubling-down on efforts to replace and/or subvert Javascripts, with both Dart and NaCl.

Nothing uniquely qualifies Javascript now, but being the status quo is a qualification of sorts. Replacing (or adding a second option of) a scripting language for the DOM in an existing browser is going to be tough, regardless of what the existing language is (which happens to be Javascript in all modern browsers).

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#17
post #2

I wonder if any teacher already tried to teach LISP as a first language instead of java or C, and what there was to learn about it.

MIT is where the legendary "Wizard Book" (SICP)[0] was developed, for teaching their introductory class using Scheme. A few years ago, MIT restructured their entire CS curriculum (not just the intro class) in a way that required redesigning the individual curricula of each of the classes, including the intro class. As a result, they couldn't use SICP, since it didn't cover the same topics. At this time, they ended up…

[deleted]

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#18
post #13
post #9

Browser makers like Mozilla have had the option, at any time, to enable the use of Lisp (or any other language) in the place of Javascript. Nothing uniquely qualifies Javascript.

Not even "in place of" but "in addition to". There's a reason that the script tag has a language attribute as part of the standard.

This I would love to see. I'm not aware of any project working to enable Scheme or Common Lisp in the browser, though. Anyone else?

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#19
post #2

I wonder if any teacher already tried to teach LISP as a first language instead of java or C, and what there was to learn about it.

We use Racket[1] at the University of Waterloo. We use HTDP [2] instead of SCIP.

[1]: http://racket-lang.org/ [2]: http://htdp.org/

Re: Lisp: A Language for Internet Scripting and Programming (1998) [pdf]

#20
post #4
post #2

I wonder if any teacher already tried to teach LISP as a first language instead of java or C, and what there was to learn about it.

Scheme used to be and still is the first CS class taught in many universities. See SICP.

I believe the University of Waterloo is one of them.
Post reply on HN