[Haskell-beginners] Haskell as a useful practical 'tool' for intelligent non-programmers
Miguel Negrao
miguel.negrao-lists at friendlyvirus.org
Sun May 6 21:49:57 CEST 2012
A 29/04/2012, às 19:43, Ertugrul Söylemez escreveu:
> Hello there,
>
> actually I did not want to participate in this discussion, but as I have
> experience teaching many programming languages to many different sorts
> of people, I feel obligated to share my observations.
>
> To someone marginally skilled at logical thinking Haskell appears to be
> the first choice as the first programming language. I'm offering two
> experiences as a reference:
>
> * I had to teach C++ to a math student. The language was very hard to
> grasp, because as someone with math skills you practically have to
> go back to stone age. Instead of writing equations and
> relationships you have to imagine yourself sitting before a large
> array of little slips of paper and manipulate them arithmetically to
> reach the goal you want. Remember that the array is your memory.
> You don't have a brain in C++. This was about the most difficult
> part and the whole thing turned out to be a very frustrating
> endeavor, because you basically have to temporarily forget what you
> learned in university.
Yes ! As someone who studied pure maths for 6 years, Haskell seems so natural and elegant to me, yet so alien to about everyone else I know that are very good coders already in other languages. When I’m reading about Haskell, I’m constantly like “yeah, that’s like it’s done in mathematics !”, the type of discourse is the same, the same relentless obsession with finding more general models of things, getting what are the fundamental properties of something and then generalizing (what is an open set ? -> topology, what is summing ? group theory, algebras, etc ) until you hit the stratosphere (category theory...).
Specially since discovering functional programming I have a hard time coding in imperative languages because my times studying math refined my taste for elegance and I find it quite rare to find elegance or beauty in imperative code, where I find it a lot in functional code. In the end for me it has really become an aesthetic choice.
This is such an insightful post ! Thanks !
best,
Miguel Negrão
More information about the Beginners
mailing list