5 ms·
How is Common Lisp for SPA development? I tried to look for anything on either Racket or CL side and pretty much a dead wasteland on that front. I've used re-f
by serpix 9y ago
How is Common Lisp for SPA development? I tried to look for anything on either Racket or CL side and pretty much a dead wasteland on that front.
I've used re-frame ClojureScript for a few years now but would like to dip my toes in CL, just can't seem to get a head start. Maybe trying CL on the backend first, but even there Clojure dominates..
- flavio81 9y agoThere's not much there for SPA development, perhaps because Lispers generally aren't in that field. That being said, there is Parenscript, which is a Common Lisp subset that compiles server-side to javascript (so it can be used client-side for SPAs, etc). It is an evolved project so it works just fine. There's a lib for doing React dev using Parenscript, as well. Besides that, there is JSCL which is an attempt to bring a full CL implementation on javascript. This is very interesting, however it isn't suited for a SPA. And of course there are a lot of CL libraries for html generation, JSON parsing, web servers, etc. >Maybe trying CL on the backend first I'd say CL is just perfect for the backend side, everything you need should be there.
- preek 9y agoI wouldn’t say that. Clojure has been adopting React as soon as it came out and brought great contributions like Code hot reloading. Something that still has no parallel in JS. Yes, I know about module hot loading with various JS frameworks, but most loose state on reloading. Well, not saying Clojure is better. Just saying that Lispers totally are on the SpA bandwagon. For example the CircleCI frontend is written in ClojureScript.
- flavio81 9y agoYes, you are correct. It's just that I considered "Lisp"="Common Lisp" in this case.
- grovehaw 9y agoThe Potato open source chat platform has a Common Lisp backend and a Clojurescript frontend. There is a fascinating talk by one of the authors on Youtube [0], and the code is on github [1]. A relatively new Web Application Environment called Radiance may also be worth looking at.[2] [0] https://www.youtube.com/watch?v=bl8jQ2wRh6k https://www.youtube.com/watch?v=bl8jQ2wRh6k [1] https://github.com/cicakhq/potato https://github.com/cicakhq/potato [2] https://shirakumo.github.io/radiance/ https://shirakumo.github.io/radiance/
- jdormit 9y agoWhy not Clojure on the backend as well?
- flavio81 9y ago>Why not Clojure on the backend as well? It is said that CL provides a nicer experience to the developer (like, for example, clearer error messages, a more interactive development experience, etc.)
- lokedhs 9y agoBecause I believe that Common Lisp is a better language than Clojure. I'd be happy to discuss specifically what I believe the most important differences are in case you're curious. Clojurescript was chosen on the client side because its integration with Om was very nice and matched the idea of immutability in Clojure. Now that Om is no longer well supported we have a problem. The client side needs to be rewritten, but none of us have the time to do so. We'll see what happens with the project. This highlights another benefit of Common Lisp. It's very mature and I don't have to worry about the fameworks that I use becoming obsolete after a short period of time.
- vindarel 9y agoThere's a fantastic update of the Weblocks framework going on: https://github.com/40ants/weblocks/blob/reblocks/docs/source/quickstart.rst https://github.com/40ants/weblocks/blob/reblocks/docs/source... it's more or less like React, components based, but server-based. We don't write any JS, the framework does jsonp calls and updates the UI. I tried it, it works fine, but still very alpha and moving. However, thinking about the possibility to write a SPA all in Lisp (no JS!), and then with easy deployments, executables, easy inclusion with Electron (Ceramic) is extremely exciting.
- ScottBurson 9y agoGreat to see Weblocks getting some love! I wrote an app in it several years ago, and was helping maintain it for a while, but haven't had any need for it since. Are you aware of my fork [0]? You're certainly welcome to take anything from there that you like. I think the most recent work was on the 'bootstrap' branch. I recall that I was going a little bit in a different direction from what the other maintainer wanted to do, but I no longer recall the details. [0] https://github.com/slburson/weblocks https://github.com/slburson/weblocks
- pjmlp 9y agoCommercial Common Lisps like LispWorks and Allegro have relatively good native GUI support.