Hacker News new | past | comments | ask | show | jobs | submit login

All of those are basically Lisps if you squint hard enough. In particular, they are much closer to Lisp than the two languages people were using for Viaweb competitors at the time, namely C++ and Perl (according to the "Beating the Averages" essay), and specifically the mid-'90s version of C++ and Perl. Perl 5, released 7 months before Viaweb launched, added anonymous functions (lambdas) and the ability to have variables that were references to variables. Perl 5.004, released almost two years later, added funcrefs, which made anonymous functions useful. C++ technically let you define objects with operator() all along, but there was no useful support until the STL, first released less than a year before Viaweb launched. boost::function only showed up in 2001, and native lambdas in 2011.

The curious thing is that, even so, none of those languages are really Lisps at all. I think the lesson is not so much "Use Lisp" as "Use a programming language that actually has some basic features and which your tech folks are familiar at", and most programming languages in the '90s didn't have what we'd rightly consider basic features today.

See also http://raganwald.com/2013/07/19/javascript-is-a-lisp.html .




IIRC PG's main argument was that macros were so powerful he could write stuff to write features vs writing features directly. Hence being super fast compared to competition.

Even if that was accurate, I would guess with modern web apps or UIs there's gonna be a large overhead that might wipe out any benefit. Using F# in a live app, for instance -- sure, the main parts are nicer, shorter. And yes, it makes me feel sane. But compared to the overall effort a company needs, I'm not sure it matters in most cases.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: