News for hackers. Stuff that matters.
Re:The future of Lisp... by pg on Wednesday January 21, 2009 @11:51PM (#444378)
Do all new languages have to be built on top of existing popular VMs? If so (a) that's a new rule, because Ruby, Python, Perl, etc, weren't, and (b) the article could have a much bolder title: it could be about the future of programming languages, not just the future of Lisp.

And if it's not the case that this principle applies to all new languages, what's special about dialects of Lisp that makes it only apply to them? Why can you build a new language with infix syntax and Greenspun's-tenth-law semantics up from scratch, but not a new Lisp?

Re:The future of Lisp... by miked on Thursday January 22, 2009 @04:57AM (#444582)
>> Why can you build a new language with infix syntax and Greenspun's-tenth-law semantics up from scratch, but not a new Lisp?

pg: I'm a big fan, but I think you're a bit off on this one. Costs, risks, and benefits.

Costs: with Java/.Net, you get free garbage collectors, machine code compilers, debuggers maybe, vast numbers of libraries from thousands of sources, a huge installed technology base and ecosystem. Versus almost none of that with start-from-scratch.

Risks: by staying on a known platform risk is minimized. If an organization is looking to replace/supplement language X with a new language Y, it helps that X and Y are both calling the same libraries. Developers get knowledge re-usability and the organization gets a way to easily recode new programs in X that were recently written in Y before everyone decided that Y was a mistake.

Benefits: much reuse of platform knowledge, libraries, etc., most of which have typically been heavily used and debugged (again reducing risk.)

You once pointed out that moving away from the herd's choice of languages can bestow some major competitive advantages. I agree, but think that this will work only if one doesn't acquire so many disadvantages in the switch that the advantages are obviated. Clojure on the JVM gives the best of Lisp, FP, and the JVM/Java ecosystem while minimizing the problems of each.

The languages don't "have to be built on top of existing popular VMs", but why, given all these advantages, do it any other way?

Re:The future of Lisp... by pg on Thursday January 22, 2009 @11:50AM (#445009)
How can I be off? I didn't draw any conclusions; I merely explained that the author's statement translates into one of two possibilities, and asked which they meant.

It seems to me you're saying it's the latter case: that new Lisps will get an advantage from being built on existing VMs that new "mainstream" languages don't need. Maybe. But in that case, let's follow the thread further: what is it about Lisp dialects that makes them need this extra crutch?

Not the semantics, surely. I'm sure if you gave ordinary schmoes a language that looked familiar, they wouldn't balk at it because it happened to have clean semantics. Is it merely the name "Lisp?" You could solve that problem by refusing to call it a Lisp. So all that's left is syntax. You're saying, in effect, that a language with s-expression syntax needs the extra boost of being on a popular VM to make it.

I don't know if that's true or not. It might be. But it is interesting to know that this is what the argument reduces to.

Re:The future of Lisp... by miked on Thursday January 22, 2009 @09:15PM (#445806)
Sorry, my bad. Upon carefuly re-reading your original post I can see the point you were actually making, rather than the one I thought you were making. I completely agree that there is nothing special about Lisp-class languages rather than those of other classes. In fact, I would go further. Having implemented a small Scheme on .Net and also having read thru most of the Clojure code on the JVM, I'd guess that the OO/statically typed nature of both platforms gets in the way of Lisp-like languages more than those of other paradigms. So, in effect, I may "more than" agree with you.

>> You're saying, in effect, that a language with s-expression syntax needs the extra boost of being on a popular VM to make it.

Actually, my guess is that all future non-DSL languages are going to need to be built on a popular VM/framework in order to succeed, because of the advantages I listed in my earlier post. A DSL can get by without a popular platform because, by definition, it doesn't extend beyond its narrow scope and thus doesn't need access to a broad range of libraries. Also, DSLs don't tend to be performance sensitive and therefore don't need the compiler optimizations.

What I was really responding to was the fact that you are the co-author of Arc, and I was (wrongly) seeing your post in that context. My apologies for confusing the issue, although I do think that the point I'm driving at is an important one.

Re:The future of Lisp... by dlat on Thursday January 22, 2009 @03:43AM (#444532)
What "existing popular VMs" are you talking about? Was there a widely spread VM before JVM? Perl and Python are older than Java, Ruby should be around the same age.
Re:The future of Lisp... by rbanffy on Thursday January 22, 2009 @05:49AM (#444618)
The Smalltalk VM comes immediately to mind.
Re:The future of Lisp... by hassy on Thursday January 22, 2009 @05:55AM (#444621)
which one? Squeak first appeared around the same time as Java. was there a free, open-source, solid Smalltalk VM back when Perl, Python or Ruby were started?
Re:The future of Lisp... by rbanffy on Thursday January 22, 2009 @06:15AM (#444633)
The original Smalltalk VM was not open-source (the concept was not invented back then) but was very well documented and had some different implementations.
Re:The future of Lisp... by megaduck on Thursday January 22, 2009 @02:34AM (#444490)
Agreed, there's nothing special about Lisp. He could have been talking about the future of scripting languages, or the future of statically-typed languages, or anything. However, one thing is clear: The future of languages is definitely VMs. There's just too many advantages to them. I'm hard-pressed to think of a significant language in the past fifteen years that isn't VM based.

Once that's taken as a given, why reinvent the wheel? It seems like there's numerous advantages to using established VMs like the JVM or the CLR. In order to justify the engineering effort of building and maintaining a new VM, you'd have to have a compelling reason and I'm not sure that the reason is always there.

Re:The future of Lisp... by hassy on Thursday January 22, 2009 @05:25AM (#444609)
you're right in that my argument can be generalized to most (new) programming languages:

unless your programming language requires a new VM for some good reason, build it on top of an existing one.

when would a new VM be required? well, Erlang for example just could not have been implemented on top of JVM (forget for the moment that it predates the JVM by a few years). BEAM, the Erlang VM, has an overhead of ~500 bytes per process -- try that with JVM. Factor, IIRC, outgrew the JVM very quickly too – though i forget how exactly.

most of Lisp's power lies in uniform syntax which manifests itself in Lisp macros. that's not a good reason to write a whole new VM.

the reason i talk about "future of Lisp" rather than all programming languages is that at the time i was thinking about Lisp & why it remains unpopular despite being an awesome language.

Re:The future of Lisp... by trominos on Thursday January 22, 2009 @01:32AM (#444455)
Because Lisp has about a million pounds of stigma attached to it.
Re:The future of Lisp... by pg on Friday January 23, 2009 @12:04AM (#445970)
Even at current exchange rates, that's a lot of money.
Re:The future of Lisp... by ynniv on Thursday January 22, 2009 @12:17PM (#445049)
No one ever completed the C-like (or JavaScript-like) lisp syntax, which I suspect could be implemented via reader macros. The question would then be, why would someone write JavaScript for execution in a lisp VM? Which would make an excellent context in which to point out that JavaScript is getting very popular, and while Rhino get some use, there is no clear winner in the non-browser JavaScript runtime.