@louis common lisp for job security of course :) As long as it's nothing super specialized you need to interact with and customer doesn't care why not take the chance. I've delivered three systems in cl and it was a pleasure to work on them all.
@louis Business coordination system for an internet operator was the largest one. Was a great success, fast and easily evolved everyone loved it as far I know.
Second one was a stand alone desktop app something akin to google refine (now open refine) but for a special business need.
Third one was a recommendation engine for an auction house. Was supposed to be a proof of concept but made it into production as often is the case and lived a couple of years until concepts got rewritten in a language other developers were more accustomed to.
@louis Congratulations! Also, will it be possible for you to write an after-action-report afterwards? I'd love to read about the Common Lisp stack that you use in the end.
@dekkzz76 For the most part, it would be Huchentoot, easy-routes, Postmodern, JZON, perhaps Reblocks from @svetlyak40wt for the Web UI.
Or, try out the new full features Tungsten Toolkit from @galdor ?
Not that CL would bring a big advantage in terms of time saving, but it could result in some contributions to existing packages, either as code, time or monetary.
@svetlyak40wt Looking at OpenRPC now. Didn't know about it. Is that like what WSDL was for SOAP?
Because I have a very specific use case in mind. I run a lot of microservices (written in Ruby, Go and Python) that are called from a Go process via Websockets. They exchange messages via JSON.
However, everything is hardcoded and extending these is very error prone. OpenRPC + your library looks just like the perfect solution.
@louis OpenRPC is like OpenAPI (Swagger), but built around JSON-RPC and JSON-schema.
My library provides a macro to define server methods and a macro to generate a client from OpenRPC spec.
For example, you can build a microservice in Common Lisp and talk to it from a microservice written in Go. There are dozen packages related to openrpc: https://pkg.go.dev/search?q=openrpc&m= but I can't recommend any because have no experience with Go.
@dekkzz76 Don't get me started... I love the new Number One, Rebecca Romijn. She is the perrrrfect modern version of Captain Janeway which I adored at the time 😎
Please don't use Tungsten, it is not production ready. We could have a discussion regarding me making it ready, but it would be expensive and would take time.
Funny thing is that I was recently discussing about potential contract work, and we joked about Erlang and Common Lisp. But I'll be working in Go for a thousand reasons.
@galdor Thank you for mentioning that. The project looks super active on GitHub and very comprehensive though. Why do you all that excellent work when you wouldn't even use it for your own contract work?
I built it both for personal projects (they are personal so I may as well have fun writing them) and hoping to maybe use them for commercial work.
It turned out that as I already learned years ago, the CL ecosystem is in shamble, and the effort to get it up to my standards is insane compared to Go.
I'm well aware that many CL enthusiasts are convinced that the CL ecosystem is production ready. And maybe it is for their needs. Not for mine.
For your example, a REST API using JSON and Postgres is trivial with Go. You only need the excellent pgx and you're done. Static typing, fast compilation of static binaries for any platform you want without any headaches, fast GC, suitable concurrency model. Again, suitable concurrency modern. Essential for a server.
And as always, this is just my personal opinion, there are multiple viable options depending on your skills, the job, the technical and human context…
@galdor You are right, as always. On a rational level though. 🙂 Type safety, mature and supported libraries are more important than the language itself to be successful in a project like this, which is about high-level CRUD programming.
The Web UI though could be a good target for Reblocks and SBCL. I'll seriously evaluate that option.
@louis@dekkzz76@svetlyak40wt@galdor
What about using and contributing to fukamachi's clack as a choice? It supports a tungsten server, and you could look at some of the other current options.
Add comment