I’m a Lisp developer. In a perfect world where everyone is seeking for Lisp developers, I could have found a job in Common Lisp as soon as I finished university. But it’s not what happened.
I wrote some Elm for two years. But I never could stop to watch the Lisp developers with envy. Just like a little child watching other children eating ice cream, but who don’t dare to ask their parent to get one too. Lisp was terribly attracting, but I’m unable to work on a side project outside of my job with a new language. I needed to test it for real, on a real project. And before doing something new with Lisp, there were summer vacation.
The French Pastries officially project started in last October, when I was working for a big client (NDA, bla bla bla…). Pushing Clojure (or worst! Common Lisp) was complicated. All the company was running Node and JS or ReasonML, and I it was simpler for me to focus on JS. It was a simple language I could easily maintain. And Clojure, well… The JVM and I never really were friends… And I didn’t had time to learn all the Clojure specificities. The decision was taken! JS it will be. Let’s find a server. Oh, wait…
Is someone able to explain me why everything I found about JS and backend are whether Express.js or Express.js-like servers? I really dislike Express. It exposes the
request and the
response object anytime. I just feel bad about it. I like purity. I like functional programming. I really dislike having to write
res.send(realResponse) to return a response! No no no! Why no one took inspiration from Clojure and the beautiful
This thoughts were turning in my head over and over since September, way before the mission started. Why no one was writing a cool server for Node.js? Why everyone was just satisfied with something so verbose? Maybe because of the Blup Paradox? I couldn’t understand why. Maybe it was because it’s impossible in JS? “Stop kidding me, let me one day and I will do something like this…”
That’s what I used for the client, and I never could write some much code so quickly. Because of the promise oriented approach and monad mindset of MilleFeuille the codebase grew quick, but with little technical debt. A complete refactoring of the code took me one day. So little code was expressing so much. No useless LoC, no useless imperative statement. Only functions, computations, and returns. The project was good, and go to production. French Pastries stack was mature enough to go with it.