Imagine how refreshing it'd be to see Lisp driving webapps, front and back-end.
Not even saying that should be the one size fits all, I'm saying, anything else...
Imagine how refreshing it'd be to see Lisp driving webapps, front and back-end.
Not even saying that should be the one size fits all, I'm saying, anything else...
Of course, it's probably not Lisp's fault that that project was a mess, but the ultimate level of flexibility that CL provided let bad ideas worm their way down to the compilation level, making it really hard to work your way back out.
Honestly, you've never felt tech debt pain like unwinding reader macros.
IIRC this happened in comments on jwz's blog - cite on request, though you'll have to excuse me for waiting until i'm back at a machine with a keyboard and a big display before I go hunting it down again.
Netscape didn't "plan" to do Scheme in any deep or detailed way, either. It was a gleam in the eyes of jg & mtoy when they recruited me. By the time I got there the Java deal was on, and MILLJ was the management edict.
Evidently nowhere! Apologies for the misrepresentation, and thanks for clearing it up.
duskwuff:
So, since I have to ask: What would we be stuck with if JS hadn't happened?
Brendan Eich:
Something like PHP only worse, which Netscape's VP Eng killed fast (in early July 1995, if memory serves; I did JS in early-mid-May) since it was "third" after Java and JS. Two new web programming languages were hard enough to justify...
also:
Ten days to implement the lexer, parser, bytecode emitter (which I folded into the parser; required some code buffering to reorder things like the for(;;) loop head parts and body), interpreter, built-in classes, and decompiler. I had help only for jsdate.c, from Ken Smith of Netscape (who, per our over-optimistic agreement, cloned java.util.Date -- Y2K bugs and all! Gosling...).
Sorry, not enough time for me to analyze tail position (using an attribute grammar approach: http://wiki.ecmascript.org/doku.php?id=strawman:proper_tail_...). Ten days without much sleep to build JS from scratch, "make it look like Java" (I made it look like C), and smuggle in its saving graces: first class functions (closures came later but were part of the plan), Self-ish prototypes (one per instance, not many as in Self).
and:
Scheme was the ideal admired by the JS supporters at Netscape, and the trick used to recruit me. But (see above) the "look like Java" orders and the intense time pressure combined to take out a lot of good ideas from Scheme that would've taken longer (not much longer, sigh) to implement. One example: just the C-like syntax makes tail calls harder (or less likely: consider falling off the end of a function returns undefined, so the last expression-statement before such an implicit return is not in tail position).
You'll want to wrap that jwz.org link in a referer stripper, for the benefit of those not already savvy about the NSFW redirect he has configured for people who go there from here.
My recollection is that Eich's bosses wanted something that looked like CJava++.
Demo here: http://dragonfly.apptruck.de
This is only even a perception in the Silicon Valley echo chamber, and it's not even true there. I worked at a contracting firm that did apps last year and we never once wrote one in JS.
Get web browsers to embed a Lisp in them, and this will happen.
Though even then, Lisp will never be nearly as popular as Javascript due to its unfamiliar syntax.