I've met and knew Paul for a time while I was in high school. Despite my interest then with CS, at that time, I had no idea until now that he was the inventor of Haskell or was involved in Computer Science at all.
Independent to his contributions to the industry that I now love; I knew him as an extremely friendly and energetic person. He was well liked by all who came in contact with him and his absence will be wide felt.
I just restarted my investigation of Haskell yesterday. This is very sad news. Haskell is a beautiful language, and while I still struggle to write even basic programs in it I can tell that every time I solve an issue I'm having I am becoming a smarter programmer.
I am following that guide to get me started. Taking the recommended courses, I finished the cis194 Spring 2013 course and I am getting through the NICTA course, with help from #Haskell on freenode IRC.
Based on my experience the recommendations are good, but when working on material like this on your own it is a slog because both of these courses are designed to be taught live. So beware. However they are probably the best courses available online. It seems someone (maybe me someday!) needs to do an equivalent of "RailsCasts" for Haskell to make this more accessible.
The NICTA course contains hard exercises building various functors, including transformers. It's a mind bender and oddly I had code that worked because the types matched up but I had no intuition as to why it actually worked! But it does raise your game to a new level.
>but when working on material like this on your own it is a slog because both of these courses are designed to be taught live. So beware. However they are probably the best courses available online.
Definitely, this is why we're working on a book. We acknowledge cis194 and NICTA course are difficult and designed to be done as part of a class. That's also why we suggest Thompson's book as a fallback.
There isn't a book designed for an independent reader that we're happy with at present.
>The NICTA course contains hard exercises building various functors, including transformers
These things must be covered if you want to use Haskell in anger. One thing I would change in NICTA course if given the option is to make the transformers tutorial have a smoother ramp. State/StateT could be built up to via Writer/Reader and the transformer versions thereof.
That the NICTA course confronts these (Functor, Applicative, Monad, Monad transformers) and is rigorous in covering the basics along with those topics is what makes it so valuable. Most other materials either don't cover them or don't provide proper exercises.
"Show & Tell" is not good enough for getting people comfortable with these tools and sadly that's the mistake a lot of resources for Haskell make. You have to make exercises that make learners manipulate and see the structure of how these things work.
Good answers. To be clear I am not complaining. Actually I love it. I love struggling through it and the feeling of triumph when solving those problems.
I think the difficulty is a rite of passage to become a functional programmer, however smoother ramps would help, and I am sure your book will be a great help and is much needed.
Oh sure, I didn't figure you were. I just wanted (other) people to understand that, yes, we're aware of the friction and difficulties and that we're working on it.
>I think the difficulty is a rite of passage to become a functional programmer
Hum. There's some place and purpose for this, such as with professional fields like law and medicine. I'm not sure add'l difficulty beyond what is essential to understanding the material is valuable except as a historic social "glue" for embattled/relatively small programming language communities like Haskell and ML.
>I am sure your book will be a great help and is much needed.
We hope so and believe it'll be an improvement. We've been testing the material pretty aggressively with people completely new to programming. We're going to start testing with people that already code but don't know FP soon.
If the book sells well enough, we've got follow-up books in mind (4+ in the queue).
I started learning it on Tuesday, via learnyouahaskell.com. Half of what makes Haskell impenetrable to a non-Haskellite is the syntax, IMO; now that I'm starting to grok that, it really is quite wonderful.
I've done enough functional-esque coding in ruby/python/js/java8 that I can generally figure out a functional solution to lots of problems. I have not actually attempted to build any real software with Haskell yet, however; I'm mostly at the toy-program stage.
You're comment made me think of something else I read from time to time that resonates with me when someone passes away, especially if that person has contributed greatly like Paul has:
No man is an island entire of itself; every man
is a piece of the continent, a part of the main;
if a clod be washed away by the sea, Europe
is the less, as well as if a promontory were, as
well as any manner of thy friends or of thine
own were; any man's death diminishes me,
because I am involved in mankind.
And therefore never send to know for whom
the bell tolls; it tolls for thee.
–John Donne
It makes me wonder if in the very near future wearables will help give people enough added feedback, etc so they might get a few extra years. I'm sure someone with Paul's abilities had a lot more to contribute.
I had the great fortune to have him serve as my senior advisor when I was an undergrad. A warm and wonderful man.
I'll never forget the feeling of awe I had in one of his classes when he showed us that the function `fix`, defined as `fix f = f (fix f)`, could in fact be used to compute things!
"In some ways, I think the best way to let go is to hold on. To hold onto the memories and the love that transcends the physical body. To hold onto those around you that have shared in loving the one you are letting go. To hold onto the only thing that is in your control- the actions you take in this unpredictable world."
I first learnt Haskell more than a decade back while working on a project at the Indian Institute of Science. Profoundly changed my perspective on programming.
I had the fortune to work down the hall from Paul a couple of years ago. There was some confusion as to whether he had died yet when I got an email about the link I posted a few days ago, so today I find myself mourning for a second time over the death of a truly bright light who touched many people's lives.
I read his paper, "Conception, Evolution, and Application of Functional Programming Languages," and used it for work on a project while getting my master's degree.
If you're interested in functional programming, I highly recommend it. It explains many of the things that you've heard about FP, and it very well written.
We lost a good one. I've been struggling with learning Haskell for awhile now, and this is even more motivation to put my nose to the grindstone and learn how this mans brain ticked.
Heaven will become beautiful now. I don't know more Haskell than I learnt at university, but even from that alone, I saw it was something special. I'll never forget that and the impression it made on me.
I particularly remember a short application I had to write down on paper on the exam; I did it well enough and I thought what I wrote was so beautiful and simple... I think Haskell developers will know what I'm talking about. The best applications almost look like magic.
If Haskell was a traditional writen language, I think it would have been pretty well known and studied, like hieroglyphs or some other language carving out its own niche. Sometimes I feel like this whole programming world has so many interesting, exciting, and thought provoking things going on within it that the rest of the world will never come to know. Haskell was one of those things to me and I think it's unfortunate that it's such a closed world.
Paul has been a huge inspiration for me. For a time, I would read printed copies of his papers during the ride home. He was also kind enough to make time for me when I emailed him with a question about his computer music code.
I believe I am better off because of Paul and I am sure many more feel the same way.
RIP Paul, very sad. He has achieved what I have been trying to achieve my entire life (seemingly) an eternal memory or creating something great that will be remembered for generations to come. You will be missed.
Would you advise Haskell to someone who has just started programming (working on Learning Python the hard way) and is interested in learning mathematics (from the high school level onwards)?
P.S. I want to study algorithms too but I'm just a beginner and the priority is mathematics (as it's one of the few subjects I seem to be able to concentrate on). I found a secondhand copy of Professor Sedgewick's book for ten euros, it's the manual for one of his MOOCs , should I go with it?
Haskell is an amazing language. I've only spent a brief amount of time with it, but I've seen what others can do with it, and I'm very impressed.
That said, I don't know that I'd recommend it to someone who has just started programming. I think that it'd be harder to appreciate it, since a lot of the rules that Haskell breaks / puts in place aren't things you've run into too often.
I'd recommend becoming at least relatively familiar with normal programming paradigms and then giving Haskell a go. It certainly deserves your time, but without proper appreciation of what exactly it does, I think its unforgiving nature could become discouraging.
edit: Of course, if you find normal paradigms boring / uninteresting, Haskell may be just the place for you. It's also really, really good for mathematic applications.
Thank you, I guess trying won't hurt, nobody has ever regretted learning anything after all. As for feeling discouraged, being stupid (in various degrees) is part of the learning process I believe. Couldn't say I'm learning anything otherwise.
I will try Haskell alongside Python to see how it goes.
What kind of mathematics do you want to learn? If you are interested in discrete mathematics and algebra, Haskell has something to offer. I would also read http://www.amazon.com/Conceptual-Mathematics-First-Introduct... which is a great introduction (unspecific to code).
If you are more interested in linear algebra or numerics, I would suggest to get to know numpy better.
Thank you! I fond the sneak peeks of number theory, algebra, probability, combinatorics and graph theory I've had so far to be quite enjoyable. But keep in mind my run with geometry hasn't gone past Euclid (the illustrated version of the Elements edited by Taschen) and I'm still in the dark about other fields (I'm using Professor Gowers' The Princeton Companion to Mathematics for direction).
How to Design Programs is awesome, but really very slow and pedestrian later. Feel free to either skim or switch to another book once you outgrow it.
Definitely, do all the exercises in any programming book you are trying to learn from. In some sense, the exercises are the meat of any such book, and the rest is just supporting material.
Some people even start a new chapter with a look at the end-of-chapter exercises, try their hands at them for a few minutes. They'll most likely fail, but one gets a better perspective of what to watch out for in the chapter.
Yeah, in a certain sense it's a lot like mathematics. You try your hand, perhaps you get it right the first time, more often than not you don't but at least you learn something out of it.
I imagine a lot of Haskellers would tell you yes. They love an opportunity to tell people who great Haskell is for anything. I'm not saying it's not in this case (I really have no idea) but I'm sure many would.
The Haskell School of Expression is a beautiful book that I recommend to anyone that wants to learn Haskell, or to just appreciate functional programming.
For those who don't know, a black bar is for people that die that HN honors by changing the `topcolor` color to black. You can do it yourself in your profile.
Fun history trivia: A few years ago the black bar used to be on top of the topbar. [0,1] Now it looks like this [2]
[edit] I can't find any very recent deaths that confirm the change so I may be wrong. Whoops.
[0] http://www.caringbridge.org/visit/hudak/journal/view/id/5538...
[1] https://news.ycombinator.com/item?id=9431017