
Why learning Haskell/Python makes you a worse programmer - fogus
http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/
======
chris_j
Since RiderOfGiraffes is not around any more, I'll point out that this has
been on HN a couple of times before, with some interesting discussion:

<http://news.ycombinator.com/item?id=1883663>

<http://news.ycombinator.com/item?id=407796>

I'm still sympathetic to the author's plight because my experiences have been
similar. After learning Python and Haskell (and Clojure) and then returning to
Java, I find myself missing features like first class functions and list
comprehensions and so on. It's hard coming to terms with the fact that you're
back in Blub and having to cram your thinking back into that box. It isn't so
much becoming a _worse_ programmer as becoming a more _frustrated_ programmer.

------
joshfinnie
Very linkbaity title. First sentence gets to the real point of the article:

    
    
        >>I've found, contrary to what you sometimes read,
          that learning Python and Haskell has not improved
          my programming using other languages.
    

This is more about his personal experience than any hard facts about Haskell
or Python making the general population a worse programmer.

~~~
bioinformatics
And the second

>I find I think in Python, and even in Haskell to some extent, even though I
have used Haskell very little.

demotivates you to read the rest.

------
wcoenen
This is a post from 2006. The example problem with C# no longer exists; it can
currently be written much like the author desired:

string.Join("\n", mylist.Select(x => x.Description).Where(description =>
description != ""));

------
alimbada
This post is 5 years old... C# is now at version 4 and has a boatload of
functional features.

------
JCB_K
If I understand this well, the writer is just being extremely sarcastic, and
is looking for a job where he can write in something else than C#.

~~~
stonemetal
Also note that it is from 2006. My first thought at his attempt to
functionally program in C# was "Were is the LINQ?" but the article is older
than that.

He may be being sarcastic but in so far as Haskell idioms don't work in
imperative languages he is right, especially as it applies to the large
framework languages. The whole standard library (and as he calls out the
ASP.net framework) expects a certain kind of mentality that isn't FP centric.
The amount of FPisms that you can bring to an ASP.net app are few and far
between. On a low level, C# (at least at that time) had very poor FP support.
On the High level design side ASP.net dictates part of your design and does it
in a somewhat FP hostile way.

------
zwieback
Oh no, do we have to listen to a new generation of frustrated developers
rehashing the tired old arguments made by frustrated Lispers?

~~~
raganwald
"Those who do not learn from history, are doomed to repeat it."--
misappropriated from George Santayana.

Without a solitary shred of evidence to support my conjecture, I claim that
the problem is that programmers are given a smattering of information about
how to use some tools, but are not taught about the progression of tools over
time. The history of programming languages is a history of attempts to solve
various problems and a history of various design trade-offs.

Deprived of this basic grounding, young programmers are constantly
rediscovering the good and the bad, and the Internet gives us a constant
stream of their revelatory essays, all of which can be summarized as "Babies
vs. Bathwater: Fight!"

------
TheSOB88
Ignorance is bliss.

