
Haskell Communities and Activities Report, May 2015 - mihai_maruseac
https://www.haskell.org/communities/05-2015/html/report.html
======
r0naa
I have big hopes for the future of Haskell.

Haskell is backed by a truly amazing community. A lot of effort has been put
into making Haskell more "beginner" friendly or production-ready. There is
obviously still a long way to go and things to improve (cabal?) but what has
already been achieved is something that Haskellers can be immensely proud of.

I am certain that this will pay off on the long term. Haskell will continue to
inspire people to build better, safer software and contribute to make the line
between software engineering and mathematics blurrier.

From a sociological aspect I hope that the values of tolerance, respect and
benevolence that most of the Haskell community is supporting will also
contribute to make tech a more friendly and equal place for everyone.

------
crimsonalucard
I'm currently learning and loving haskell. I, however, find it unlikely that
this language will ever become mainstream.

Throwing a beginner head first into recursion and restricting all their
programs to be a singular composite of expressions is the, unfortunately, best
way to turn away a beginner.

But damn, it'd be an awesome future if I'm wrong.

~~~
coolsunglasses
>Throwing a beginner head first into recursion and restricting all their
programs to be a singular composite of expressions is the, unfortunately, best
way to turn away a beginner.

The alien-ness is what makes it difficult, not the actual design. Less design
surface area makes it considerably easier to learn in that respect. That
doesn't mean Haskell is easy to learn in general, for now. There's a huge
difference in jumping from Ruby->Python->JS vs. learning how to program in
terms of a foundation built on lambda calculus.

"singular composite of expressions" \- this doesn't mean a lot, and doesn't
really fit, I think. You can hand-wave do syntax and pretend you're writing
imperative code in IO. A lot of people do that when first starting out so they
can get the hang of things. SPJ (OG Haskell honcho & compiler hacker) likes to
say that Haskell is the nicest imperative programming language to use. I'd
tend to agree :)

Takes practice. You need exercises.

If you haven't already seen it, I'd recommend taking a look at the guide I've
maintained on how to learn Haskell:
[https://github.com/bitemyapp/learnhaskell](https://github.com/bitemyapp/learnhaskell)

~~~
crimsonalucard
I'm not bad with haskell and I like it a lot.

I meant like beginner as in a beginner in programming in general. I feel the
only reason why I was able to pick it up really quickly and like it was
because I wasn't a beginner.

~~~
wz1000
Recursion and loops will be equally alien to a beginner.

Here[0] is an interesting blogpost by somebody who learnt Haskell as their
first programming language. Mutation and regular imperative programming are as
alien to her as immutability and functional programming would be to somebody
who has exclusively programmed in an imperative language.

[0]- [https://superginbaby.wordpress.com/2014/11/18/learning-
haske...](https://superginbaby.wordpress.com/2014/11/18/learning-haskell-as-a-
nonprogrammer/)

~~~
crimsonalucard
I doubt that. Loops are way more intuitive than recursion.

In other words, it is easier to think of something as a series of repeating
steps then it is to think of something as a self referential entity.

~~~
efnx
In recursion you don't necessarily have to think about self reference. Instead
simply think of the return value of the function.

I think the only time I use recursion in Haskell is when I need to mutate some
parameters over a set of items (which is often) but I don't have to think
about the fact that the function is recursive - I only have to ask myself "how
do the parameters change while traversing the set?"

Lastly, if you don't like the idea of recursion you can often do the same with
a fold by keeping your parameters in the accumulator as a tuple or other such
sum type.

My main point being that none of these things (programming patterns and
strategies) are intuitive until you have some background.

~~~
crimsonalucard
>My main point being that none of these things (programming patterns and
strategies) are intuitive until you have some background.

That's _my_ point. I'm saying in addition to this, loops are by far one of the
easier patterns and strategies to become familiar with.

think about it. By knowing what a function is... recursion can be taught as a
logical next step without introducing any additional language primitives. Yet
most computer science classes will still teach looping syntax before even
touching upon recursion. Why? Because looping is way easier to grasp then
recursion, theoretical elegance be damned.

~~~
efnx
I'm saying that most people are biased towards loops and mutation because they
learned them first. It's like riding a skateboard vs riding a bike. They're
equally challenging if you know neither.

