6 ms·
Two things missing that I wish I knew when I had learned Haskell. First, Haskell is just another programming language. It has many papers written about it, and
by DonbunEf7 9y ago
Two things missing that I wish I knew when I had learned Haskell.
First, Haskell is just another programming language. It has many papers written about it, and many people have strong opinions about it, but at the end of the day it is not that special.
Second, the Haskell community is not friendly and welcoming to many groups of folks. In particular, if you are a fan of dynamic/gradual typing, objects, distributed systems, etc. do not expect a warm welcome.
A personal anecdote: I left #haskell on Freenode because a regular and popular user proposed and endorsed an extended analogy wherein all humans are divided into "dynamically-typed" and "statically-typed" people, and statically-typed people are superior because they are more reliable. This kind of bias pervades the community and ruins any kind of cross-ecosystem collaborative efforts.
Edit: Was I being confrontational? I wasn't even part of this conversation! I was lurking, and I saw this ridiculous thing play out unprompted between regulars.
- Buttons840 9y agoIn my opinion the Haskell community is friendly and an endless source of new ideas and concepts to learn from. > if you are a fan of dynamic/gradual typing, objects, distributed systems, etc. do not expect a warm welcome. I have not experienced this, but this might be because when I'm participating in the Haskell community I mostly talk about Haskell. I'm a fan of Python and Elixir, and haven't kept these facts secret as I've participated in the Haskell community (including a local meetup who's organizer is also a fan of Erlang/Elixir), and nobody has singled me out to bully me because of this. Nobody even notices.
- IngoBlechschmid 9y ago> In my opinion the Haskell community is friendly and an endless source of new ideas and concepts to learn from. This is also my experience! I received a very warm welcome when I first started with Haskell. You could ask all sorts of questions on #haskell and always receive great answers. The regulars were really happy when they were able to help you. Also they were not dismissive at all in view of my background in dynamic programming languages. In fact, several members of the Haskell community were quite interested in Pugs, the experimental Perl 6 platform which we built in Haskell in those days, to the extent that they joined our effort and became committers. :-) There was quite a bit of cultural exchange happening. The legendary #haskell troll attempt, recorded at https://gist.github.com/quchen/5280339 https://gist.github.com/quchen/5280339, is worth reading. Partly to pay back the kindness I received back then, and partly just because it's so much fun, I participate in free regional Haskell workshops. If you are located near Augsburg, Germany feel invited to attend! Details are at http://curry-club-augsburg.de/ http://curry-club-augsburg.de/.
- platz 9y agoConversely, if I am a fan of static typing and compile time constraints, should I expect a warm welcome pushing those ideas in Clojure and Ruby communities? One should not be surprised that actively rejecting/attacking the core values of a community brings ire. Are you sure you weren't the one being confrontational?
- DonbunEf7 9y agoMost communities are trash at accepting people who know, use, and don't mind multiple languages. I singled out Haskell because its community is exceptionally bad, not because all the other communities are good. We could all stand to understand the totemism which pervades our science. Be mathematicians; be swayed by proof and logic. Be scientists; be swayed by empiricism and the scientific method. But stop being cultists already.
- shakna 9y agoClojure has the core.typed [0] optional type system! So yes, though they are dynamic, they embrace that others can differ. > This work adds static type checking (and some of its benefits) to Clojure, a dynamically typed language, while still preserving idioms that characterise the language. It allows static and dynamically typed code to be mixed so the programmer can use whichever is more appropriate. Some communities don't hold the dynamic vs static debate as an issue of such a hard regard that an individual must be rejected, lest they infect others. matz has pretty much said that static type checking will not be part of Ruby, and he won't open up the syntax for it. But bugs like this one [1] aren't filled with hate, telling people to get lost. There's a constructive approach. [0] https://github.com/clojure/core.typed/wiki https://github.com/clojure/core.typed/wiki [1] https://bugs.ruby-lang.org/issues/9999 https://bugs.ruby-lang.org/issues/9999
- platz 9y agoI am aware of those extensions. There is a difference between some features/extensions and core principles. If you want to play that game, Haskell supports ways to "add on" more dynamic behavior as well. One way is via -fdefer-type-errors [1] which allows parts of the program which do not typecheck to not impede the rest of the program. But this is missing the point of core values. I will refrain from listing all the digs that Rich Hickey has taken at static types and their ilk, but he has done so quite a lot.. My point is both sides don't like their core values rejected. I thought this thread is about community and not extensions so much. > bugs like this one aren't filled with hate, telling people to get lost. There's a constructive approach. And there are many examples of haskell folks treating others with a constructive approach too on various topics outside of the "cannon". I'm not sure what you're implying here, or are if you're referring to a specific case (however, tallying up some cherry-picked anecdotes may not be so useful) [1] https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#deferring-type-errors-to-runtime https://downloads.haskell.org/~ghc/latest/docs/html/users_gu...