#pouring one out for old method_missing
Explore tagged Tumblr posts
Text
my shitpost theory of webdev is that every sufficiently advanced client/server library wants to be written in a Lisp, demonstrated by the one good decision Paul Graham ever made
also, having seen a very small view of things, it seems like languages that aren't lispy from the start like Ruby often develop similar traits to macros with kludges often arising from their dissimilarity from true macros (which may have only started to exist in Racket? Not sure)
Python has decorators in flask and I think fastapi, not sure what the hell Django's doing, it looks like it's wearing Python as a skinsuit
Haskell has a piss-poor "actual macro" system but most of the benefit of the advanced type system is the ability to replicate macro like features, like dynamic dispatch + sealed objects (DataKinds and closed type families) and complex adhoc inheritance-like behaviors (the deriving mechanism, where a library author writes some instances of a trait for a bunch of base objects (String, Int, etc.) and some instances for combinations of those objects) which appear to be not unlike C++ templates
These additions are used heavily in Haskell's best webshit library family, where you specify your routes wholly in the types and you get automatic generation of client functions (which, when called, act as if they hit the HTTP route, handy for testing without testing the networking stack) whenever you add a new route to your server and that's not even getting into property testing in Haskell, which imo is the true argument in favor of Haskell if you're not a compiler dev or otherwise oddly situated
there have been, no doubt, countless "advances" which have served only to delay or destroy progression of the development of software systems. but i should be grateful, for the following reads mostly like nonsense to me
34 notes
·
View notes