I have valid criticisms of statically typed languages, based around code patterns that are both expressive and efficient that are either difficult or impossible to implement in a statically typed language without “an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.”
Typescript, however, is different. Its type annotation functionality is not the same as a static type system, which means I get to keep all those things I like about dynamically typed languages while still having compile-time validation.
Flip-side, however, is the complete lack of runtime validation in typescript, and the fact that junior developers trip on that a lot. I would call that a real advantage of javascript (if not enough to stop me from using Typescript). Having no check at all is better than being convinced typescript is protecting you when it’s not.
From a dev point of view, there’s a relevant XKCD to this. And we all know it.
But at the same time, I’ve been thinking a lot of what you’re saying here for quite a while regarding Lemmy in particular, and the modern Fediverse as a whole. I don’t think the federation mechanisms used, even the federation strategy used, is scaleable to the type of userbase needed to get what many of the users are looking for from Lemmy.
Flipside, we all know that it’s going to be pulling teeth to get people onto that new platform. That’s why I never pulled the trigger on writing my take on it.