5 ms·
I keep hearing over and over about how great Haskell is, and yet nobody can ever show me anything written in it other than yet another compiler. Haskell is nev
by jonathansizz 12y ago
I keep hearing over and over about how great Haskell is, and yet nobody can ever show me anything written in it other than yet another compiler.
Haskell is never going to go mainstream. Stop pushing it, because it's getting really tedious.
- marcosscriven 12y agoTo put a more positive spin on this, I'd be interested if someone could point to a practical, in use, open source project written in Haskell that I could learn from please? All the tutorials and theory make sense, but making the jump to what I can do with other languages still seems a big one.
- platz 12y agoXmonad http://xmonad.org/ http://xmonad.org/ Git-Annex https://git-annex.branchable.com/ https://git-annex.branchable.com/
- phaer 12y agoPandoc, which I linked above fits into your question nicely. And because you specifically asked about something to learn from: there are some well made Youtube videos which explain some of the code in pandoc and xmonad: https://www.youtube.com/watch?v=FEFETKhhq8w https://www.youtube.com/watch?v=FEFETKhhq8w
- marcosscriven 12y agoWow - that video was brilliant, thanks for the recommendation. (Subscribed to Jekor's channel)
- louthy 12y agoI'm a relative newbie when it comes to Haskell; I've found it's best to just get stuck in - pick a project and just go for it. Especially if you're doing real-world stuff, because you'll just get sick to your back teeth of yet another fibonacci tutorial. Once you get stuck-in you'll find yourself on the Hackage docs site a lot, click on the Source link on the top right of every page, you'll find gold in there. A real world thing I did this week (which unfortunately is proprietary so I can't share), was a distributed configuration system for our cluster. It uses the RabbitMQ library[1][2] and Acid-state library[3] to have a per-node config-DB and uses RabbitMQ's guarantees for delivery of updates to the nodes. Messages are serialised using Aeson[4], the Haskell JSON library. I implemented a vector-clock versioning system on top of the Acid-state store to allow the clients to do conflict resolution. It really was a joy to write (around 350 lines of code). The C# client less so, 1000s of lines of boilerplate. I think there's something really impressive about haskell; I tend to have significantly more trust in the code I write because mostly I know the edge cases don't exist. 9 times out of 10 if your code compiles it will work. Although be prepared for the compiler to hate you when you first start. The beatings are worth it though. There's some basic code samples in the links: [1] https://github.com/hreinhardt/amqp https://github.com/hreinhardt/amqp [2] http://videlalvaro.github.io/2010/09/haskell-and-rabbitmq.html http://videlalvaro.github.io/2010/09/haskell-and-rabbitmq.ht... [3] http://acid-state.seize.it http://acid-state.seize.it [4] https://github.com/bos/aeson https://github.com/bos/aeson
- phaer 12y ago> and yet nobody can ever show me anything written in it other than yet another compiler. http://johnmacfarlane.net/pandoc/ http://johnmacfarlane.net/pandoc/ http://git-annex.branchable.com/ http://git-annex.branchable.com/ http://jaspervdj.be/hakyll/ http://jaspervdj.be/hakyll/ You are welcome :)
- jonathansizz 12y agoBest of luck. Let me know if any of your projects gain any traction.
- Pacabel 12y agoIt's a shame to see that comment getting modded down. It's absolutely valid and correct. The three examples given in that other comment are pretty much unknown. xmonad might be a slightly better example, but it's still pretty much unknown, too. While Haskell has seen some usage, of course, we really haven't seen any major and widely-used non-compiler software developed using it. It's perfectly legitimate to point this out, and using very obscure counterexamples doesn't change this reality.
- saryant 12y ago> It's perfectly legitimate to point this out There's a difference between pointing it out and being a jerk while pointing it out. Hence the downvotes.
- xooyoozoo 12y agoI don't use or know about any of the other tools mentioned, but Pandoc isn't exactly someone's pet project. It may be niche, but it's not unknown. If you need to convert markdown/rest/latex/etc to pdf/html/epub/etc, Pandoc's gonna come up.
- chrisdone 12y agoHm, both git annex and pandoc already have traction for their respective use-cases.
- 12y ago
- gamegoblin 12y agoVery popular tiling window manager: http://en.m.wikipedia.org/wiki/Xmonad http://en.m.wikipedia.org/wiki/Xmonad
- jonathansizz 12y agoVery popular? If you insist.
- pcmonk 12y agoIn the world of tiling window managers, there are a few well-known names. Xmonad is one of them.
- jonathansizz 12y agoAnd are any tiling window managers popular? Didn't think so.
- sgeisenh 12y agoCheck out /r/unixporn. There are some excellent setups in there. I think the lack of a standout tiling window manager might be the result of the quantity of excellent WMs in existence. Regardless, if you've never had an experience using a tiling window manager, I would highly recommend it. Once you get past a certain threshold, your productivity skyrockets!
- lispm 12y agoSure, my Symbolics Lisp Machine had a tiling window manager 30 years ago. Today I could use Stumpwm, written in Common Lisp. It's just that I don't use X that much...
- Pacabel 12y agoI think that's backing up the point he's making, though. When considering the big picture, tiling window managers are quite minor and relatively infrequently used. Having a small amount of influence within a rather obscure field ends up translating to basically no importance in practice. There are many examples of very large and critical software systems implemented in languages like C, C++, Java, C#, Perl, Python, Ruby, and others. We just don't see anything like this when it comes to Haskell, however. The examples that do exist are quite minor in reality, and this will naturally make some people skeptical about Haskell's practicality.
- chongli 12y agoWhy you gotta hate? Seriously, if you're tired of posts about Haskell then stop reading them.
- jonathansizz 12y agoI didn't read it. I just took a wild guess that the post was desperately trying to convince someone (anyone) that Haskell was worth learning. Five years on, they posted it again, because maybe there's some new suckers out there.
- shawnz 12y agoHow did you go from "never going to go mainstream" to "not worth learning"? First of all, you are right. Haskell is never going to become as common as C or Java, and I don't think anybody is claiming that it will. It is a language that is designed around theoretical concerns rather than being pragmatic. But that is exactly what makes it so valuable to learn.
- Pacabel 12y agoRealistically, I don't think that knowing Haskell really would benefit most programmers, especially those working on typical, everyday software systems. There are some relatively niche situations where it might be a good choice, but those are few and far between. We've seen the most useful and practical features offered by Haskell make their way into other more mainstream languages over the years. The more theoretical features haven't made this transition because they really aren't all that practical. At this point, most programmers would be better off learning more about security, cryptography, databases, networking and other everyday topics than they would be by learning about the more theoretical functionality offered by Haskell.
- chongli 12y agoRealistically, I don't think that knowing Haskell really would benefit most programmers, especially those working on typical, everyday software systems. Just curious. How much Haskell/FP experience do you have?
- wyager 12y agoXmonad is a good example. Just because not a lot of programmers understand the language yet doesn't mean that programmers in the future can't learn it and take advantage of it. I hope they do, because just by programming in haskell, you automatically rule out entire classes of bugs.
- adito 12y agothis reminds me of someone who trolling #haskell irc channel https://gist.github.com/quchen/5280339 https://gist.github.com/quchen/5280339
- jonathansizz 12y ago"Avoid success at all costs". Well, they certainly did that.
- dang 12y agoPlease stop.
- enoch_r 12y agoThe measure of a programming language isn't whether it becomes "mainstream." It's whether it can be used to make useful programs. Others have already provided many examples of useful Haskell programs (none of which are "yet another compiler"), so I'm not sure what else needs to be said. By the way, I don't know Haskell, but I am writing this comment from XMonad. :)