5 ms·
I thought she did a good job with Lisp, Logo, and Haskell too. The Ada one left me completely perplexed -- as someone who wrote a fair bit on Ada in the 90s.
by kenjackson 16y ago
I thought she did a good job with Lisp, Logo, and Haskell too. The Ada one left me completely perplexed -- as someone who wrote a fair bit on Ada in the 90s. What does this mean, "However, your tendency to wear the bondage and discipline gear all the time, as opposed to when your lover asks you to bring it out, frightens people off. You need to learn to stop calling people "worm" and "slave" in front of their mothers."?
- chc 16y agoI think it's a reference to Ada's reputation for being a "bondage and discipline language": http://c2.com/cgi/wiki?BondageAndDisciplineLanguage http://c2.com/cgi/wiki?BondageAndDisciplineLanguage
- archangel_one 16y agoI don't find it works well in this metaphor though, because the stereotype of Ada is that it's straight-laced and proper and thus popular with the Department of Defence. To me that doesn't mesh at all well with this picture of it bringing out the bondage gear to play "Mistress of Pain" of an evening.
- chc 16y agoI agree. I would have gone with a Catholic school headmistress or something like that. I was just explaining where the (overly literal) description came from.
- jmillikin 16y agoI can't speak for LISP or Logo, but her Haskell entry was completely divorced from reality. It would have been a better fit (and somewhat appropriate) if she'd just copy-pasted the OCaml entry.
- chc 16y agoIt's a reference to Haskell's extremely elaborate Turing-complete type system and the many contrarian (for lack of a better word) choices made in the language design — purity, default laziness, utter rejection of OO. Most people are unlikely to have used a language like that before. Even OCaml lacks those qualities. And I don't think anyone would disagree that Haskell is extremely serious about safety ("prophylactic techniques") and carefully marking impure portions of the program by tainting them with IO. The only part of the Haskell description I didn't get is the "person you're with no longer resembles Haskell."
- jmillikin 16y ago> the many contrarian (for lack of a better word) choices made in the language design — purity, default laziness, utter rejection of OO. Haskell isn't a pure language. Its only notable characteristic regarding purity is that it's possible to annotate whether some code is pure or not. Working with impure (and sometimes downright unsafe) is common, encouraged, and widespread. Especially in real-world code. Haskell doesn't utterly reject OO; if anything, its combination of typeclasses and nearly-free threads brings it closer to Smalltalk or Erlang than many pretend-OO languages (C++, Java, C#). Default laziness is one of the few truly weird parts of Haskell, and I sincerely doubt the author has done anything serious enough to worry about the evaluation model.
- kenjackson 16y agoHaskell isn't a pure language. Its only notable characteristic regarding purity is that it's possible to annotate whether some code is pure or not. Isn't this a requirement (the use of the type system for annotating purity), not something that is just "possible". And isn't that what people generally mean by its purity?
- jmillikin 16y agoIMO, a pure language would be one which is incapable of representing impure code. Or at least, where it's very hard. I don't know where the line lies, but I strongly feel that any language that supports manual memory management, pointers, and mutable variables can't properly be called "pure". Some people get confused between purity and expressiveness. Inexpressive languages like C require using impure constructs to represent fundamentally pure constructs. More expressive languages like Python don't need as many impure workarounds. Haskell, as a very expressive language, can do amazing things in pure code that other languages must resort to impurity for. If you want a pure language, look into Agda or Coq.
- stcredzero 16y agoShe got it right with Smalltalk as well.