9 ms·
It's unfortunate that Rich Hickey (assume he's the author) can't write this without trolling about type systems. It's pretty clear to anyone who's read the lite
by noelwelsh 10y ago
It's unfortunate that Rich Hickey (assume he's the author) can't write this without trolling about type systems. It's pretty clear to anyone who's read the literature, or has thought for a few moments, that contract systems provide different guarantees to type systems, so no need to poke at type systems throughout the Guidelines.
- erichmond 10y agoI think you're "seeing what you want to" in his comments. One of the reasons I appreciate clojure and the community so much is that it's one of the few that doesn't actually troll things. If anything, the community tends to give really well thought out reasoning around why they make the decisions they are making. When making an argument, sometimes it's important to explain why something is different, or why you've made the choice you made. Just because you explain why your idea is different doesn't make it trolling.
- wtetzner 10y agoYes, especially since there's no reason you can't have contracts in a language with a type system.
- llamaz 10y ago> or has thought for a few moments As is obvious even to a child...
- joncampbelldev 10y agoI don't think he's trolling, he's proposing spec due to issues he personally sees in type systems whilst acknowledging that clojure without types or spec or whatever is definitely missing "something" ... it's just that something doesn't have to be types. Given his comments here he seems well aware that not everyone shares his views on type systems and that is fine: https://groups.google.com/forum/#!msg/clojure/DUKeo7sT4qA/TU0Q7CIbsTIJ https://groups.google.com/forum/#!msg/clojure/DUKeo7sT4qA/TU...
- bad_user 10y agoFor one it goes with the territory. When designing a language you need to emphasize its strong points and Clojure's strong point is its (sane) dynamic nature and they are playing to its strengths for example in solutions such as their Transducers. I don't view it as trolling. The mentality and style in dynamic languages are simply different. Once you add static typing, you break that mentality, replacing it with something different. Not inferior, just different. The patterns, the solutions end up looking different. This is why static typing added to a LISP like Clojure can only be optional and probably less powerful than what you can get with something like Haskell. Or in other words, type systems are not practical for Clojure. There are attempts, like core.typed. Such solutions don't work very well because as said, adding types changes what you're allowed to do, even if those types are optional. So he's speaking primarily in the context of Clojure. Also, poking fun at your competition is good marketing. People love it :-P
- lomnakkus 10y agoIt's quite annoying, but he definitely has a tendency to do this, though I wouldn't go so far as to call it 'trolling' per se. I think he's more sort of speaking to the 'in-group' and that can often be quite off-putting for people who are not members of that group because all the "but..." caveats are missing. Btw, remember 'transducers'? He did the exact same thing there and claimed (in so many words) that it couldn't really be done in a typed language until people showed that, yes, it really could be done in a typed language such as Haskell. I suspect it's because he just doesn't know enough Haskell and couldn't get the type signatures to work. However, it's a big leap from "I cannot figure out how to do it" to "It cannot be done" and it requires a wee bit of (probably 'well-earned') arrogance to make that leap. :)
- jraines 10y agoTo me, his comments on transducers & types sounded more like: I don't care to write a type signature for this, and good luck to you if you do.
- lomnakkus 10y agoIn one of his posts he actually provided Haskell-like type signatures (and stated why they weren't sufficient), so that's my basis for concluding that he thought about it in terms of types. (Perphaps my memory is fuzzy, but I'm 99% sure on this point.)
- tel 10y agoHe did provide them but didn't do a very good job, tbh. Types capture the behavior you want to express in your program and Rich ultimately concluded that types could no achieve this for transducers. On the other hand, many libraries since then have generally shown that types can and do... It's just that Rich's types didn't.
- lomnakkus 10y ago> He did provide them but didn't do a very good job, tbh. Well, yeah, that was what I pointed out in my original post :). I think we agree.
- KingMob 10y agoI highly doubt he's trolling. In his own words from a post where he asked people to refrain from language wars: "Haskell is a tremendously ambitious and inspiring language, for which I have the highest respect. There is zero point in bashing it (or its users) in this forum." Clojure very deliberately adopts the stance that type systems like Haskell's are valuable but heavyweight, and chose development speed and concision over types.