4 ms·
> Oh, come on... BF was specifically/pathologically designed to be unreadable. I was just exposing a flaw in your “readability” criterion. Another example: you
by catnaroek 10y ago
> Oh, come on... BF was specifically/pathologically designed to be unreadable.
I was just exposing a flaw in your “readability” criterion. Another example: you can learn the rules that govern a given cellular automaton in 5 minutes, yet be completely unable to predict what said automaton will do when run.
> readability certainly helps track down issues later when you do run into an unforeseen corner case.
I'd rather not have issues, and always be sure that I've handled everything. Only applied formal logic can help.
> Language choice is all about trade-offs
Normally, understandability trumps all else. The only exception is when it's too badly in conflict with performance.
> if things like this are what is most important to you, perhaps you would be happier with something like Haskell or Ada.
Nah. GHC Haskell and Ada are both ginormous languages that I don't believe anyone could fit into their heads in their entirety. In particular, with GHC Haskell, I don't feel confident saying “this code does exactly what I want and nothing else”, because someone might enable an extension I haven't accounted for, and then hilarity ensues.
(And nobody uses the language specified in the Haskell Report.)
- jcadam 10y agoTruly. I used Ada professionally for several years and wouldn't want to go back. Even though programs that compiled had a much higher probability of just working compared to other languages, programming with Ada was both dull (or maybe that's just an Aerospace industry thing) and frustrating (that type system, ugh). One thing I found while messing around with Haskell is that while learning and writing vanilla Haskell is one thing, deciphering Haskell written by others is quite another, given the propensity of library authors to use language extensions and stuff like TemplateHaskell.
- tome 10y ago> I don't feel confident saying “this code does exactly what I want and nothing else”, because someone might enable an extension I haven't accounted for If you have any examples of code that, when an extension is enabled, neither fails to compile nor fails to behave in the same way it would be really interested to see them! If I were to try to conjure some up the first place I would start would be interactions between scoped type variables and typeclasses.