But … I feel like documenting all the thoughts in an essay/blog form may be helpful to others.
(And my post history will show I’ve gone down this path before. Trying again. Since last time I gave up due to the paradox of choice.)
36 karma · joined January 18, 2015
But … I feel like documenting all the thoughts in an essay/blog form may be helpful to others.
(And my post history will show I’ve gone down this path before. Trying again. Since last time I gave up due to the paradox of choice.)
In the long run, CL is a great option. My theory is that it’s a place I could go if/when I’m up and running in another Lisp.
Clojure is a tougher call. For this project it might be good.
However, I want to include some CLI scripts … and the JVM adds deployment complexity for those.
ClojureScript is tempting, but I don’t see a great story about the server piece for rapid web app development there.
And you're right, I should have considered Gambit. Dang, now I have a ternary decision to make.
Yes, Clojure is cool.
Yes, LFE is a thing that exists. Yes Elixir is Lisp-adjacent.
Yes, any of those would give me access to a larger ecosystem and the resources of a well used, well supported VM.
I may be an idiot (it's been said), but I'm not a stupid idiot. I've ruled each of those out for good-ish reasons.
The project began in 1991 targeting set-top boxes. [source](https://web.archive.org/web/20100210225651/http://www.java.c...)
WASM is another iteration of the same noble idea done with different technologies at a different moment.
Java and the JVM have been incredibly successful. WASM has the potential to bring the dream of a universal binary even farther.
It obviously has the same problem any Tor browser has though, you run into bot blocking on a very large % of the regular (non .onion) interwebs.
Worth consideration for putting on your daily driver phone.
(By that simile, Lisp would be Sanskrit?)
It’s using an ActiveRecord-style ORM (or any ORM) without grokking what lies beneath.
A database layer IS a model. It’s just not a class or an object.
ActiveRecord is a really nice trick when it works … but it can create some really performance-killing side effects.
Ruby’s Datawrapper ORM and its siblings in other languages requires understanding both sides (the object system and RDBMS) but can let you get your class/object semantics to play nicely with your database.
And just passing around database connections and arrays of hashes can get you awfully far.
But, if you want to not think about the database layer, ActiveRecord-style ORMs are a real win for developer ergonomics.
And that’s part of the win of Rails/Django/etc. You can live in a single mental model (classes/objects with references to each other) and ignore the database layer.
Except when you can’t.
One reason (not a criticism) that NoSQL can be such a win is that the semantics are closer to class/object semantics. So you’re not trying to manipulate data with an abstraction that doesn’t quite fit.
But most of our projects aren’t Twitter or FaceBook or Google or anything else functioning at galactic scale.
Perl doesn’t need to be Python. It’s great to be the #20 language.
Now if only Verizon had shame.
So far,our testers love it. It seems to have gotten them quickly past the user dread. It also means your first participation in our site can happen by submitting one form and confirming one email. That's somewhere between two and five steps shorter than had we required account setup. While it adds an extra step to subsequent interaction, email confirmation, we feel like it's a good trade off for them. After all, going through a password reset when you come back to the site is an easy way to lose people.
And for us, it eliminated a lot of development headaches. When a user first participates in the site we assign them a randomly generated username. And they can change it to whatever they like ... They just fill put the change my username form and confirm by email.
Obviously, if we wanted to save credit card info or something like that we might need to modify this approach for PCI compliance, but I believe a fundamentally similar workflow could be employed even then.