Paul Hudak, co-creator of Haskell, has died
messages.yale.eduDeeply moving article[0] submitted a few days ago[1] when it became clear that he was in his last days. My condolences to all those who knew him.
[0] http://www.caringbridge.org/visit/hudak/journal/view/id/5538...
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.
Fellow Hamden High grad?
Go Green Dragons
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.
He will be missed!
I teach Haskell and I'm working on a book http://haskellbook.com/ with my coauthor. We've been testing with reviewers and it's been going pretty well. We've even been testing with my coauthor's 10 year old https://twitter.com/argumatronic/status/593845481140133888 :)
My guide for learning Haskell is here: https://github.com/bitemyapp/learnhaskell
You can get help in the IRC channel if you'd like as well. I don't recommend using LearnYouAHaskell.
I feel a bit bad as Hudak's books were the only ones I hadn't checked out before starting on my book. Rectifying that soon.
Can you explain why you don't recommend LearnYouAHaskell? I'm genuinely curious.
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.
>To be clear I am not complaining.
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 get asked this and similar a lot, so I have a post outlining the problems we've had with various resources including LYAH: http://bitemyapp.com/posts/2014-12-31-functional-education.h...
Any idea when is it going to be finished?
Late Fall, early Winter. It's about 40% done right now, 1/3 manuscript is just about ready for early access.
We'll have it available for early access by the time LambdaConf happens if nothing goes badly.
Ah, now I wonder if I should abandon my Haskell journey before this gets finished.
It's probably just my laziness speaking, looking for excuse.
That's fine. It's always a mistake to be eager and dynamic when learning Haskell.
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.
Very sad news indeed.
The syntax takes some getting used to but it's useful to point out that the core language is pretty small.
Here are some links which might help:
http://www.haskellforall.com/2014/10/how-to-desugar-haskell-...
https://github.com/kqr/gists/blob/master/articles/simple-syn...
I dunno... I found actually solving problems in a functional way much harder than the syntax.
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.
Come hang out in #haskell-beginners on freenode :)
Unfortunate timing for myself, as well. This last week I've been meaning to get back to Haskell.
Sad news.
Be thou the rainbow in the storms of life.
The evening beam that smiles the clouds away,
and tints tomorrow with prophetic ray.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:
https://web.cs.dal.ca/~johnston/poetry/island.htmlNo 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
I'm surprised his Wikipedia page is so sparse. Maybe now would be a good time for someone more knowledgable to expand it?
He was only 62. Bjarne Stroustrup is a couple of years older and Donald Knuth is nearing 80 and he's still productive.
I was reading this a couple days ago: http://www.macstories.net/stories/life-after-cancer-how-the-...
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 of meeting Paul a couple of years ago. He was a really nice guy & a very inspiring person to talk with.
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.
Here's his eulogy from the Yale Daily News:
http://yaledailynews.com/blog/2015/04/30/hudak-spirited-sayb...
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.
Beyond the memories of his friends and family, he'll live forever through his great work. I would think that's what most of us strive for.
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.
Haskell is very well suited to mathematically oriented minds. Such people, I believe would fare even better with Haskell than they would with Python.
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.
If you don't mind feeling stupid, Haskell will be very well suited for you. :)
Don't worry, I've been living with the feeling for a long time ;)
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).
Haskell as a language is suitable for beginners, but most of the learning material assumes some familiarity with other languages.
I've been teaching a bit, and what worked was to start with Racket on How to Design Programs (http://www.ccs.neu.edu/home/matthias/HtDP2e/part_prologue.ht...) for a while and then switch over to Haskell material, like Learn You a Haskell.
Racket is a great language too in itself, and has terrific material for beginners.
Amazon keeps recommending Realm of Racket (No Starch press). I'm checking your link and finding it useful, thank you!
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.
FWIW Hudak's Haskell School of Expression was the first programming book I ever read, and probably the reason I do programming today.
I just checked a public library nearby and it occurs they might have a copy, thanks for the suggestion!
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.
Haskell is different. If your experience is limited to imperative OO languages, you will learn lots of useful things with Haskell.
That alone justifies going out of your way to learn it.
It's the one true faith!
"The family of Paul R. Hudak created this Life Tributes page to make it easy to share your memories"
An amazing man. Amazing pianist, and just awesome person.
His paper "An Algebraic Theory of Polymorphic Temporal Media" has been a constant source of inspiration for me for the last few years.
I shopped one of his classes...quite sad, he was still young.
A wonderful wonderful wonderful wonderful man.
R.I.P.
Apparently, Haskell had a side effect.
RIP. What a great mind =/
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.
Also, I motion for a black bar.
In case a mod is reading this, I second that motion.
I third the motion...
fourth
fifth
sixth
seventh. Haskell made me remember why i love programming.
8th
I agree, there ought to be a black bar.
Damn, I downvoted by accident. Also count on my vote for a black bar.
I feel that we should do it.
what is a 'black bar'?
Googling revealed this: "When someone important to the community dies, a thin black bar is added to the top of HN as a mark of respect."[0]
This is what the black bar looks like:
http://web.archive.org/web/20111006185350/http://news.ycombi...
On HN the top orange[1] bar is sometimes changed to black when someone significant[2] to computing dies.
[1] orange unless you've got enough karma to set it to some other value
[2] significant to computing is not the right phrase here, sorry for clumsiness.
Perhaps just: "someone significant to the community".
got it, thanks for the explanation. I figured it was something like that, but wanted to be sure :)
Usually, it means adding a black bar to your website header with a message commemorating someone who has passed.
I'm guessing that the default orange header bar would be black.
tampermonkey script:
I came here just to upvote this.
Another black bar vote.
Black bar anyone?
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] Steve Jobs, http://web.archive.org/web/20111006185350/http://news.ycombi...
[1] Dennis Ritchie, http://web.archive.org/web/20111013063604/http://news.ycombi...
[2] Tampermonkey Script https://gist.github.com/ultimapanzer/68f601ef9ab7f599d3ce
Paul Hudak died after making a huge contribution to the world. The research field he set in motion will keep on benefiting people for decades to come.