Lisp in Web-Based Applications (2001)
lib.store.yahoo.net
lib.store.yahoo.net
After the trip came back and dropped RoR and prototyped the app in CL (CMUCL IIRC). The users loved it, so to deploy it with a UI, ended up with Lisplets [1] (checkout who wrote it!)
Fast forward a year or so, the users were happily mining the data with a clear impact on bottom line. Then I came across NLP in CL and extended the app with NLP functionality so users could do kind of google search for their queries ("show me all movies which were directed by X and starred Y, Z and made N dollars in A, B, C territories). Writing NLP app in non ML hype phase was fun, note that there was some simple query syntax for users to learn.
Last I heard, after I left, a year or so later, they did a rewrite of the app in Java land; most Lispers here can predict how that story ended :-(. One of the most enjoyable phases in my career and don't even ask me how I pulled off writing CL in corporate for 4+ years, because frankly I don't remember (side effect of coding in CL being fun!) but I think my manager had failingly invested a lot in getting this app developed prior to giving me a chance to prototype 'quickly' and I think the prior pressure of not-shipping helped me.
It's easier in the last few years to see why startups aren't using a Lisp, despite PG's early advocacy of that -- they want a very polished-looking Web/app frontend, and everyone is pushing you to buy into their frameworks and SDKs for that.
But I'd still like to see some students who played with Racket/Scheme/CL in college spin out to do a startup with a Lisp for prototyping/beta, and once they have real funding (when they should probably be rewriting prototype code in any case, or even pivoting) decide whether to keep going with a Lisp. (If they keep going with a Lisp, a bonus is that they have special access to a disproportionately high-skilled labor pool, like in other niches that attract nerdy enthusiasts.)
I also have a prototype of a server-mediated version of the SC4 secure communications system [2] [3] written in CL. The code for this is a bit of a mess so it's not publicly released but if you're interested drop me a line. Contact info is in my HN profile.
A useful reminder of why much of web development is the way it is.
Clojure with whatever the standard libraries are nowadays is easy to get setup and running.
I'm sure there's a common Common Lisp set of libraries for web apps too.
And there's a variety of smaller Lisp projects for various other runtime environments, e.g. various Lisp-to-JavaScript transpilers that you could run on top of Node.js.
Here's a quick tutorial on web applications in Racket: https://docs.racket-lang.org/web-server/index.html
and here is some documentation on deployment http://www.luminusweb.net/docs/deployment.html
The closest to literally LAMP would just be LAML. Configure Apache to reverse-proxy to your Lisp application running its own web server (Hunchentoot is a popular base choice to get up and running) on some local port and use CLSQL to talk to MySQL.
He writes how keyword parameters helped evolve the code. Today we might say “anti-fragile”.
> Rtml even depended heavily on keyword parameters, which up to that time I had always considered one of the more dubious features of Common Lisp. Because of the way Web-based software gets released, you have to design the software so that it's easy to change. And Rtml itself had to be easy to change, just like any other part of the software. Most of the operators in Rtml were designed to take keyword parameters, and what a help that turned out to be. If I wanted to add another dimension to the behavior of one of the operators, I could just add a new keyword parameter, and everyone's existing templates would continue to work. A few of the Rtml operators didn't take keyword parameters, because I didn't think I'd ever need to change them, and almost every one I ended up kicking myself about later. If I could go back and start over from scratch, one of the things I'd change would be that I'd make every Rtml operator take keyword parameters.
Does someone know if they rewrote QPX with one of their internal approved languages (Java?) or if they continued to use CL? The Wikipedia page mentions that they offered a simplified API but was discontinued April last year.
I would dare to say they canned the product for good... ^__^;
It is still Common Lisp. Among other things you can tell by their contributions to open source Lisp projects.
Really? One would have thought that this was true a couple of years ago. Now? Does it really matter which languages your backend is written in, since you are going to interact using APIs anyway? And the backend is going to be composed of containerized microservices, so not even runtime installation is an issue now.
Not sure who in the right mind is still advocating for writing backend code exclusively in NodeJS in 2019.
Millions of node.js developers? ;)
Also, paypal, netflix, ebay, linkedin, uber,...
For a while, it looked like Python had a shot at becoming the next dominant teaching language. Then the coding bootcamps realized they could save money and retain more students if they pitched JavaScript as the language for client and server. And so millions more developers are emerging with little exposure to anything outside JavaScript.
I think it's more like pendulum swings. Those biases come and go. The Lisp world is mostly uncorrelated with them.
My pet theory is that each swing is kicked off by a new generation pushing against the previous bias, which by then has been around long enough for its weaknesses to show. It's exciting the first two or three times you go through this, but after a while there's a curious feeling of nothing much ever changing. At that point Lisp looks pretty good again.
Lisp -- even transpiled to JS for ingestion by Node -- is patently out of consideration on such a project.
Is there a connection between their opinion and how they came to be high-ranking?
Is it Java Shop Politics[0] at play?
I find their opinion frustrating.
[0] http://sasamat.xen.prgmr.com/michaelochurch/wp/2012/04/13/ja...
Nothing but class files, many with one or two public func^H^H^H^H methods in each file, as far as the eye can see :-(
To me, idiomatic JS is FP oriented, but I guess that’s just me. Most of my work has been on the front end, with the Java guys largely staying out of the way, rather than on node.
(JS being considered poor for new work could happen. Look at how quickly even some of the hottest Web frameworks in just the last few years have suddenly become frowned-upon.)
It's one of those ideas that sounds good until you realise the single-language stack you've chosen is based on JavaScript, Node and npm.
where is this bias? The majority of enterprise development still happens in Java and C#.