Live data from Hacker News

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

norvig.com

41–50 of 114 posts

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

#41
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.

The popularity of frameworks is largely due to the non-modularity of the languages in use. Frameworks are much less popular in languages that support proper modularity where small, composable libraries are the norm.

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

#42
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.

Lisps have been used continuously for university level introductory programming courses at least since MIT's 6.001 in the 1980's. Today, PLT (the group responsible for Racket) might be considered to be the leader in research into the pedagogy of computer programming and Felleisen's How to Design Programs and student language sequence are used by several schools. I believe they include Rice, University of British Colu…

At my bachelor university (University of Bologna, Italy) we used to have Scheme with htdp for the programming 101 course. That's what I did when I studied there but apparently now they (unfortunately) changed it to C++. The day I found that out was a very sad day for me.

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

#43
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.

Grinnell College

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

#44
post #13

Earlier quoted context omitted.

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?

ClojureScript is a subset of Clojure that compiles to Google Closure-optimized JavaScript, so close enough, right?

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

#45
post #36

Earlier quoted context omitted.

> I'm afraid you're browser doesn't support XScript, please download Chrome Explorer 310. But this sort of thing already happens all the time. You don't have the right flash player, or the right silverlight player, or the right version of Java. There would be very little difference in the UX between different scripting languages and the current UX w.r.t. media codexes, and the end result would be the same in both cas…

> But this sort of thing already happens all the time. You don't have the right flash player, or the right silverlight player, or the right version of Java. That's exactly the point. Imagine dozens of them.

Dozens of what? Browser plugins? I don't have to imagine, that's the world we live in. Dozens of languages? I very much doubt that will happen. Just as we only have a small handful of codexes that actually matter (Flash, Silverlight, H264, maybe ogg) I predict that we will end up with a small number of languages that actually matter: Javascript, Python, Ruby, and Scheme. Maybe CL.

IMHO that would be a better world than the one we currently live in. Javascript is serviceable for its original purpose, but for serious webapps it's broken beyond redemption. NOTE: This is not to say that it is impossible to write serious webapps in Javasceript. Obviously it is possible. What I mean is that at some point the aggregate cost of dealing with Javascript's design flaws becomes greater than the aggregate cost of dealing with multiple browser scripting languages.

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

#46
> Simple debugging. This is an area where AI techniques could be quite helpful. Detecting and explaining common syntax and runtime errors is a crucial step in teaching a new language. Tools which provide this type of support could increase the interest in this language in the mainstream. Our current debugging support is minimal and provides only the basic commands: step, skip, and continue.

I have given some thought to this in the past. Has there ever been a serious attempt at this?

Sometimes the error messages for really simple mistakes (missing semicolon, wrong punctuation, etc.) are obtuse and almost completely meaningless. Of course, if it were easy to give simple, clear error message in such cases, they resulting message would be simple, so it's other complexities that get in the way. The biggest problem I see is that having labelled training data, e.g. source code that fails compilation along with the specific actual error, is unlikely, and having an expert provide small, self-contained examples is unlikely to be useful (really, enough training data to be effective) in real world errors, even when novice programs are fairly small.

Edit: I was just thinking about this, and with prudent use of a VCS, labelled training data would just be pairs of the form . It would be interesting to see if it's possible to pull useful data from exiting history, or if some level of restraint is necessary in practice. Really, I'm just thinking about the precipice of supervised and unsupervised learning here.

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

#48
As I was reading, I couldn't help but thinking about why the world didn't turn out this way, and I came to the conclusion that in 1998 the only two companies who realized that the future of the web was the browser were Microsoft and AOL. [1] The rough isomorphism between HTML and Lisp S-expressions [2] was an obvious technical advantage over JavaScript and among the Lisps, though tellingly not the case with Scheme, the association list was already in place to do all the work that JSON has come to perform in exactly the same way but for syntax.

AOL of course destroyed Netscape after purchasing it by encumbering itself and all it touched with an East Coast Big Dumb Company mindset. It wasn't until years later when Google started seeing Microsoft as the competition that anyone else treated the browser strategically. By that time, JavaScript had won just by showing up in IE 6 and in the legacy Mozilla carried from Netscape.

What might have happened if Yahoo had decided the browser was strategic instead of living off banner ad revenue at the expense of increasing irrelevance? They had Graham and the Viaweb team, and so some manager decided to port their code to C++ and the rest, as they say, is history that never was.

[1] It is interesting to think that Apple would build its future in ways that treated the browser as a commodity - first with the iPod and then with the app store.

[2] See Slava Akhmechet's The Nature of Lisp. It's definitely worth reading: http://www.defmacro.org/ramblings/lisp.html

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

#49
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.

> Nothing uniquely qualifies Javascript.

The kind and amount of technical expertise behind the development mass that drives most of the Web nowadays does, sadly.

Post reply on HN