Live data from Hacker News

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

norvig.com

61–70 of 114 posts

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

#61
post #51

> The syntactic and semantic simplicity of LISP enables non-experts to quickly master a basic level of LISP programming. For Scheme this might hold true. But most Common Lisp programs I've seen are beyond hairy. Plus, the (classic intro-to-LISP) notion that "it has a simple syntax with few constructs so it must be easy to program in" has to die. Assembly has very simple syntax too. I wouldn't write a large program in…

> "Plus, the (classic intro-to-LISP) notion that "it has a simple syntax with few constructs so it must be easy to program in" has to die. Assembly has very simple syntax too. I wouldn't write a large program in it."

Suppose we amend that to simple high-level constructs?

I don't think I've ever picked up a language as fast as I picked up scheme. Not even python.

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

#62
post #40
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.

Once you "accept" transpilation,you can use any language in the browser and you stop asking yourself these questions. You still need to know javascript though. Dart,CoffeeScript,Typescript,ClosureScript... IT's not like people dont have the choice today.And sourcemaps work well when debugging,usually.

If we had LISP, we wouldn't really need CSS or HTML either. Everything could be represented with s-expressions and we would all reach nirvana.

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

#63
post #45

Earlier quoted context omitted.

> 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 th…

> Dozens of what? Browser plugins? I don't have to imagine, that's the world we live in.

That's quite a stretch. There are two browser plugins that are in broad use on the web: Flash, for fallback audio/video support and some casual games, and Silverlight, for Netflix. Both are dead technologies when you consider mobile web; even if you're only thinking about laptops/desktops, both Silverlight and Flash have essentially been abandoned by their creators, and the web platform has almost entirely subsumed their original purpose for existing, currently with the exception of DRM.

Personally, what I'm hoping happens is that we get one, single better compile target, and languages can just target that — giving the web a broader selection of languages without the fragmented nightmare (and security nightmare) of introducing dozens of new plugins. This is something that browser vendors are currently working on: Google with PNACL, and Mozilla (and, to some extent, Google as well) with asm.js. I hope we end up with PNACL, but a sufficiently optimized asm.js would serve the same purpose, albeit with a more difficult debugging / performance optimization story.

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

#64
post #61
post #51

> The syntactic and semantic simplicity of LISP enables non-experts to quickly master a basic level of LISP programming. For Scheme this might hold true. But most Common Lisp programs I've seen are beyond hairy. Plus, the (classic intro-to-LISP) notion that "it has a simple syntax with few constructs so it must be easy to program in" has to die. Assembly has very simple syntax too. I wouldn't write a large program in…

> "Plus, the (classic intro-to-LISP) notion that "it has a simple syntax with few constructs so it must be easy to program in" has to die. Assembly has very simple syntax too. I wouldn't write a large program in it." Suppose we amend that to simple high-level constructs? I don't think I've ever picked up a language as fast as I picked up scheme. Not even python.

Scheme's extremely simple* but it's a perverse simplicity.

My experience from tutoring CS students in Scheme back in the day was that it usually either clicked immediately, or not at all. The folks who'd perhaps never get good at it aren't necessarily poor programmers. I don't know that any of them were great programmers, but that might be my prejudice as someone who was having a hard time teaching them a programming language. Some of them went on to get more impressive ones than the one I have, so probably definitely it was just prejudice. Anyway, the point remains, I've met a lot of people who struggled with Scheme, and it was most certainly not for want of smarts. My best guess is that it's just that the language is only suitable for people who have a certain approach to thinking that's perhaps unusual.

* And beautiful - easily one of the most lovely languages I know.

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

#65
post #45

Earlier quoted context omitted.

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 th…

> Dozens of what? Browser plugins? I don't have to imagine, that's the world we live in. That's quite a stretch. There are two browser plugins that are in broad use on the web: Flash, for fallback audio/video support and some casual games, and Silverlight, for Netflix. Both are dead technologies when you consider mobile web; even if you're only thinking about laptops/desktops, both Silverlight and Flash have essentia…

> Personally, what I'm hoping happens is that we get one, single better compile target

That is a terrific idea in theory, but the last time anyone tried to do that the result was the JVM.

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

#66

Earlier quoted context omitted.

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?

Googling turned up several on just the first page of results:

http://www.biwascheme.org/

http://sisc-scheme.org/sisc-online.php

http://lisperator.net/slip/

http://alex.nisnevich.com/ecmachine/

But the parent is really the right answer -- ClojureScript is actually targeted at meeting modern web development challenges and has a thriving ecosystem of powerful tools for the same.

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

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

You are right, I misspoke and would have said "in addition to"

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

#68
post #40
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.

Once you "accept" transpilation,you can use any language in the browser and you stop asking yourself these questions. You still need to know javascript though. Dart,CoffeeScript,Typescript,ClosureScript... IT's not like people dont have the choice today.And sourcemaps work well when debugging,usually.

You can't simultaneously assert that you can use any language in the browser, and that you still need to know Javascript.

The latter implies that you are always really using Javascript. Which is also borne out by how you list only languages which are thin veneers over Javascript (Dart a possible exception)

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

#69
post #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…

For syntax errors, check out: http://research.swtch.com/yyerror

It's not "AI" but I think it's a much more practical approach that any parser could implement, with enough work and feedback.

I haven't used Go enough to know if this technique makes a qualitative difference on the friendliness of error messages. Interested to hear opinions.

Post reply on HN