Software engineering is hard. Just look at the tools software developers have.
Programming languages, let alone all the other tooling, massively suck, across the board, one way or another. There's the suck of bad paradigms (cf. imperative vs. say flow based) and then there's the suck of just bad UX.
Things like: crappy documentation; missing features that would help allow more quality code; unclean history (when I search for "ocaml batteries set" I see Set and BatSet - which is the right one to use?!); unwillingness to change things for the better (generics in Go); inability to change things due to constraints like having enough people working on it, or knowing how to actually even do it at all (SMP in Ocaml).
And of course it isn't just the language, it is the ecosystem. Doesn't help me if there's a good language that suffers from any problems like: slow compiler; lack of a (good) standard library; hell to get setup on my random home laptop; bad package manager; insufficiently large or helpful community and history and answers on stack overflow; bad license; etc. ad nauseum.
It blows my mind that the ivory towers mostly haven't figured out how to even get the expression problem solved in a way that doesn't look like pure hell to me. (I dunno, I'd guess multimethods with exhaustiveness checking seems the most straight forward to me, if one is stuck with crappy ascii as the medium.)
Or, say, record data types.
Or, say, type aliasing.
Or, say, generics, with support for the curiously recurring template pattern.
Or. say, functional style features.
Or, say, a quality, performant, cross-platform (mobile for eff's sake?!) runtime.
Or, say, an actually reasonable debuggering story (source level debugging; breakpoints; breakpoint conditions & actions; time travel; etc.).
Or, say, syntax that isn't sooner or later inevitably crappy.
Or, say, semantics and syntax that fly in the face of everything that's considered to be the best way to code in general, and in that language (cf. prefer factories over constructors in Java shyeah right good luck with that crap, buddy).
etc. ad nauseum.
forsooth, let us all go shopping! (nowadays that means i guess doing our shopping online, which probably means we're hitting sites using C++, Java, and Perl, god help us all?!)
No comments:
Post a Comment