Blog » In Praise of Elitism
Posted on 15 Feb 2009 12:17
A respondent to one of my earlier posts complained that approaching Haskell by way of category theory is a "radical approach that would lead to elitism", since such an approach is likely to scare off all but the mathematical sophisticate.
That may or may not be true - in my opinion a well-written CT-oriented intro to Haskell need be no more terrifying than any other - but I take mild exception to the implied assertion that "elite" is somehow bad.
The community of Haskell programmers (and functional language programmers in general) is a natural, self-selecting elite. There's nothing wrong with that; on the contrary, the elite status of the Haskell Master should be celebrated. Haskell is hard, there's no sense in denying it, but so are most things worth doing. It's hard to master the piano, or fly-fishing, or brain surgery, or a foreign language, and nobody sensible would pretend otherwise. Why should the highly sophisticated art of functional programming be any different? Elite does not mean snide, or exclusionary, or condescending, or selfish; it means excellence, and the truly elite are open-minded, inclusive, and generous with their hard-earned knowledge.
I came to Haskell with years of imperative programming under my belt. I became a pretty "advanced" programmer, but I never really felt like I was doing anything a clever monkey couldn't do. A C programmer spends most of his time doing much what an auto mechanic does - diagnosing and fixing problems in a sophisticated machine. There's nothing wrong with being an auto mechanic or a C programmer; but it's not exactly an elite.
On my third try I've finally begun to appreciate the beauties of Haskell. The turning point for me was category theory, which lead to a sea change in my thinking. I'm not sure I'll ever become a master Haskell programmer - one of the great things about it is you can acquire a pretty good understanding of how the language works without writing Haskell programs - but it's clear that those who do master it are a different kind of programmer. Show me a great C programmer and I'll show you a Thomas Edison; show me a great Haskell programmer and I'll show you a J. S. Bach. (Idea for a logo: a measure of musical notation with a lambda clef, and notes tied by arrows.)
The message to newcomers should not be "don't worry, it's just like PHP, only different". It would be more honest to state right up front that this is a different game: entree to the elite is open to anybody, but not for free. You have no right to demand excellence without effort. You have to work; you have to master some mathematical ways of thinking that can in fact be difficult even for those with a good deal of math. You can do this; many others have. But if you're the type to throw a fit the first time you discover that your customary ways of thinking won't work, then please, go away. This is for grown-ups.
If you value excellence, and are motivated by the prospect of rising above the common dross and attaining excellence yourself, then you are in for a great intellectual adventure of deep insights and dazzling discoveries. And you will find lots of help. There is a plethora of material on the web that will help you, and the community of those who have gone before you is open and more than willing to help those in their apprenticeship.
In my experience the best, most imaginative and talented people are stimulated by a challenge to excel. They want the hard stuff, and they're the ones who should be evangelized.
The message to business people should be similar. No, Haskell is not PHP on steroids, it's a different beast altogether. It's a major paradigm shift, with major benefits that are well worth the costs. You hire expensive, highly-trained MBAs to professionally manage your company's financial assets; why would you not hire elite programmers to manage its information assets? The importance of husbanding knowledge assets to gain competitive advantage is only going to increase; treat it as mere data processing and your competitors will eat you alive. Yes, it's harder to find a good Haskell programmer than it is to find 100 mediocre PHP hackers, but aside from being more productive, the Haskell programmer comes with a disciplined, highly sophisticated way of thinking about information structures and algorithms. This makes it much more likely that your Haskell staff will do a much better job of figuring out how to turn your raw data into real capital that returns value.
(Fortunately I don't have any money riding on my sales pitch.)
Like this entry?






Leave a comment
Im my opinion the belief that you can get a good understanding of Haskell without writing Haskell programs is utter nonsense.
Gee, I hope that attitude doesn't prevent you from studying languages you don't program in. You should try it some time - I know lots of things about lots of languages I've never programmed in.
I'd say your definition of "understanding" is weak if you think it somehow equates to "know lots of things".
I know lots of things about lots of languages I have not programmed in. But to claim good understanding of a language I want years of experience writing actual code. Either I'm a slow learner or we have a different opinion on what a good understanding is.
Well spoken. Elitism isn't bad… if it were, we wouldn't all secretly be aiming for it ;-)
So what is the best introduction out there now (in a book or online) for someone who knows a bit of category theory, is comfortable with imperative programming, and wants to learn haskell? I've been reading Real World Haskell but it annoys me because it doesn't explain things properly ("Just do this for now, maybe we'll tell you how it really works later").
Gosh, that's a good question. There is no one best resource that I've found. I'll put together a list this week; in the meantime, Goldblatt is an excellent writer who tells you why stuff is significant: Topoi: the Categorial Analysis of Logic (also available on paper). Klinger's The Haskell Programmer's Guide to the IO Monad - Don't Panic is pretty good too, but you have to stare at it for a while. Pierce's Basic Category Theory for Computer Scientists is very useful, but also very concise; 80 pages, and he doesn't cover monads. But he has some very useful examples; I found I kept going back to Pierce as I worked through other texts.
Thanks! I'll look at those and I look forward to reading your list.
If one understands catamorphisms/paramorphisms/anamorphisms then the Charity language is also a nice toy to play with.
On thing that especially surprised me, when experimenting with Charity, is how little composition rather than application actually impacts your coding style. Basically you use an uncurried style and that is all, you have learned how to cope with juxtaposition as composition. The fold as the only recursion primitive however has far reaching consequences, meaning that some otherwise simple functions are coded less than intuitively.
Sounds interesting, I'll put it on my to-do list. So many cool languages to explore, so little time!
I am so grateful to read this such a wonderful post.
http://www.nikerbo.com
http://www.jordanhut.com
http://www.bestmonclerhut.com
Write very good! Back Up.
Discount Sunglasses http://www.bestsunglassesbrand.com
Moncler Down http://www.frbestmoncler.com
Sunglasses for Glasses http://www.worstsunglassesbrand.com
Discount Nike Sneakers http://www.nikerwo.com
However mean your life is,Best Gucci handbags sale meet it and live it; do not shun it and call it hard names. It is not so bad as you are. It looks poorest when you are richest. The fault-finder will find faults in paradise. Love your life,poor as it is. Cheap designer handbags share You may perhaps have some pleasant,thrilling,glorious hourss,even in a poor-house. The setting sun is reflected from the windows of the alms-house as brightly as from the rich man’s abode; the snow melts before its door as early in the spring. Online Brand Name Designer I do not see but a quiet mind may live as contentedly there,and have as cheering thoughts,as in a palace. The town’s poor seem to me often to live the most independent lives of any. May be they are simply great enough to receive without misgiving. Discount Overcoats Store Most think that they are above being supported by the town; but it often happens that they are not above supporting themselves by dishonest means. which should be more disreputable. Cultivate poverty like a garden herb,like sage. Do not trouble yourself much to get new things,whether clothes or friends,Turn the old,return to them. Things do not change; we change. Moncler Coat Sell your clothes and keep your thoughts.
If you are still searching such a replica handbags, cheap oakley sunglasses the Marc by Marc Jacobs Damisi Patchwork Hermes Bags is a nice choice to amp up your city look. Get on the bandwagon now, because the Chloe Cary Satchel has a ton of it bag potential. Because of the distinctive detailing around the bottom zippers, I could see this satchel being turned into lots of other LV Monogram Multicolor Bags shapes – hobos, totes, maybe even a mini crossbody. oakley sunglasses store cheap And the fresh orange color would be a vivid and fresh addition to your outfits of fall and winter seasons. The round outside zip pocket works harmoniously with the topstitching details, so special and interesting. Lined in fine cotton, the interior is designed with two inside open pockets for your cell phone, keys or cards etc. And finally I will tell you the most exciting news that this stylish, oakley sunglasses outlet cheap unique marc Jacobs Valentino Handbags is only sold at $398.
I earnestly hope to lead a healthy and prosperous life in the future. cheap oakley sunglasses Judging from my aptitude inclination and personality streaks, my ideal life will be that of a scientist, researching, lecturing, and writing books. As I am from a farming family, I particularly enjoy being close to earth. If I can afford to live a pastoral life in the countryside, I will feel most blessed. oakley sunglasses sale uk As far as social life is concerned, simplicity is what I intend to pursue, so I really don't need too many friends. All these will be mere talk if I am idle now. To attain my goal, I must make a point of training my body and mind. This is a highly competitive society in which everyone is eager to come out on top. That is not only a competition of physical strength and mental power, but a marathon of patience, faith, and perseverance. cheap oakley sunglasses uk Life is not all roses, but with what I am being equipped with by the top teachers in this elite school, I surely deserve a promising prospect.
Experience music the way the artist wants you to. Whether Beats By Dre Studio or Beats By Dr Dre Headphones, it is a gond choice.Choose Cheap Beats By Dre, chooses the quality, service and trust.
Post preview:
Close preview