You linked obviously the much later code than what can be anything relevant for the first Javascript implementation in Netscape in nineties.
If I understand it correctly, this is the experimental code that was supposed to be used in the research for a "big leap" in Javascript syntax considered by Mozilla around the middle of the previous decade.
The keyword to search for can be Epimetheus, it appears in the sources you linked:
If I understand it correctly, this is the experimental code that was supposed to be used in the research for a "big leap" in Javascript syntax considered by Mozilla around the middle of the previous decade.
>>> Eich "wrote JavaScript in ten days" in 1995,[1] having been "recruited to Netscape with the promise of “doing Scheme” in the browser".[2] (The idea of using Scheme itself was abandoned when "engineering management [decided] that the language must ‘look like Java’".[2]) In fall 1996, Eich, needing to "pay off [the] substantial technical debt" left from the first year, "stayed home for two weeks to rewrite Mocha as the codebase that became known as SpiderMonkey".[1]
Enslaved? This word reminds me of C, C++, Java, C#, ... :-)
It's funny that all these modern languages have copied - and are still copying - features which Lisp had for decades.
I know really many programming languages but the power of Lisp is still superior. I can express myself in much less code than in all other modern languages. Python is an exception but that's no surprise because Python is just a subset of Lisp with a modern syntax and clean API.
Regarding Javascript, I think it will be the top language of the coming decade because it offers everything the average programmer needs: easy syntax, many APIs and even speed (Google V8 etc.). Even Microsoft supports Javascript. I also believe that many of the other languages will provide backends for Javascript soon.
Modern languages copying features that Lisp had for decades
Lisp is still superior
Can write less code in Lisp
Ok. Gotcha.
Now, I'd like to build a web-app with some storage backend (mixed of RDBMS and NoSQL). Can do REST API. Requires web-service integration. Will perform nightly batch computation using Hadoop. Would like to have automation test and continuous integration.
Before Clojure, how can I do all of these with less code using LISP?
PS: I'm still unsure how pure Clojure can help me as well seeing that now suddenly I required a Java object with JAXB annotation and probably require JAX-WS client API to do web services, etc.
RDBMS - CLSQL it does everything.
NoSQL - Whatever you want. Cl-mongo exists. There's even CLOS object stores for when you really want object persistence.
REST - This isn't really a language thing.
Web- UnCommon Web, Huchentoot, Weblocks. You can even write your javascript in parenscript and be lisp all the way down.
> how can I do all of those and at the same time write in
> less code.
It's not about writing the same algorithms in less code but about the way you design them. When you write Lisp code the same way as say Java or C++ then it's likely that you won't have less code.
Lisp changed the way how I write programs. THAT makes the difference. For instance, in Java or C++ I write a loop to apply a function on a data collection. In Lisp I just use a map function for those elements. In Lisp it's very usual to use macros to shorten code. These macros have NOTHING to do with the harmful C++ macro system. They are just functions to create well structured code.
Python copied list comprehensions from Lisp. This is a good example how a Lisp fesature makes code way shorter.
Let me rephrase the question. Why do you believe you have to roll your own frameworks for everything?
I just presented you with a couple of frameworks geared towards web development. There are NoSQL solutions as well. Couch, Mongo, Redis whatever. Writing your own bindings shouldn't be too difficult either.
> Now, I'd like to build a web-app with some storage backend
>(mixed of RDBMS and NoSQL). Can do REST API. Requires
> web-service integration. Will perform nightly batch
> computation using Hadoop. Would like to have automation
> test and continuous integration.
The only thing I miss is a sophisticated GUI editor like in Delphi Pascal. MrEd is similar but only supports the basic GUI components (labels, buttons, ...). I hope composed components (tables ...) will come in future.
Let me rephrase it then: fundamentally, JavaScript is sound. It's like a nice city with a couple of bad neighborhoods you can usually avoid. Other languages have much more pervasive bad features, and yet others are fundamentally unsound. JavaScript is fine.
Saying that "Javascript is fundamentally sound" is like saying "McDonalds serves fundamentally nutritious food". It's technically true, but ignores completely what people actually mean when they use the phrases like "fundamentally sound".