3 ms·
Ironically, the 'bad faith' argument in this post is an example of a bad faith argument. > These "big idea languages" tend to assert a kind of "programming ide
by yawaramin 5y ago
Ironically, the 'bad faith' argument in this post is an example of a bad faith argument.
> These "big idea languages" tend to assert a kind of "programming ideology" over reality, and tend to, in my opinion, distance you from the thing you are trying to do, often, they claim, "for your own good".
Except they don't pull these programming rules out of thin air, they're actually widely acknowledged as the best practices in the domains they're targeting. It's like complaining that SQL database engines don't let you hand-write custom query plans in your queries, 'for your own good'. Well yes–that's exactly the point! They've been finely tuned over decades of research to know how to do it better than humans.
> They are like the neighbor's kids in a totalitarian regime who will report you to the secret police when they think you're not quite as doctrinaire as you ought to be.
Wow! Comparing a technological tool to a fascist regime, because that's totally accurate and appropriate! /s
> Haskell compiler might be heard to say, "What are you doing? You are a Haskeller and should know better!" ... complains the Rust compiler. "Are you insane? You are a Rustacean, you don't do that kind of thing!"
Yes, of course, compilers are exactly shrill, screaming drill sergeants trying to break you down and indoctrinate you. By contrast, doesn't Common Lisp seem so mild-mannered and gentle? Of course you'd never want to use anything else!
Now I know it would be a little extreme to call this argument 'gaslighting', but I honestly can't think of a better word.
> Encouraging you to avoid something, however, is quite different from banning it outright.
Yeah, which is why Rust and Haskell actually don't ban it outright, and in fact why almost every language has 'escape hatches' that allow programmers to do whatever they want, on their own recognizance.
> When you are programming interactively, you are not so much writing code as sculpting and structuring live computer memory.
Great, but once I'm done with that, I need to actually lock in the shape of the sculpture so that it can be deployed with confidence.
> True interactive development is also about programming in such a way that your program never crashes. Instead, whenever an unhandled condition is raised, the program starts an interactive debugger.
Great if you're planning to keep a watchful eye on the program constantly. Not very helpful if the program is supposed to run unattended.
> Hell is Other REPLs.
Clever, but even other REPLs allow you to do the crucial bit–i.e. interactively explore an API. And after that, the best languages even allow you to lock in your findings and deploy with confidence!