7 ms·
I've tried giving Go a try a bunch of times now. My primary choice of language is Haskell and I just can't seem to get excited about Go.
by ozataman 14y ago
I've tried giving Go a try a bunch of times now. My primary choice of language is Haskell and I just can't seem to get excited about Go.
- thebigshane 14y agoWould you say your interest in programming languages is largely academic in nature? I get the impression that Haskell mostly (for now at least) fits best with academia, Java/C# for enterprise, python/ruby for smallish web apps, Go/C/C++/Java for industrial applications (like servers, etc). There is a very real possibility that Go is just not the right fit for you with your current requirements. No language is the right fit for every application.
- DanWaterworth 14y agoHaskell isn't just used in academia. It's used a Facebook for example, and no-one would accuse Facebook of being an academic company.
- cpeterso 14y agoAnd C/C++ is by developers to implement Java, C#, Python, Ruby, Go, C, and C++. :)
- pjmlp 14y agoActually there are Java and C# compilers implemented on the own language.
- ozataman 14y agoNot at all. In fact about 95% of all Haskell I write - and I write quite a bit - is for commercial stuff, ranging all the way across large-ish (not quite google-scale, yet) scale computation, distributed systems, machine learning, modeling/simulations and web development. More academic feeling stuff like parsing and DSLs are just the cherries on top (though even those were for commercial uses). I'll admit Haskell has a steep learning curve, but once you're there, all this stuff Go is said to do real well feels fairly lackluster compared to what you can find in Haskell-land. What's built into Go can be achieved at the library level in Haskell. As a result, we keep seeing better and better manifestations of key ideas in the library space. Examples include Cloud Haskell, many, many concurrency libraries, STM, Parallel Haskell, many constant-space data streaming libraries (pipes, conduits, enumerators, ...), several excellent parsing libraries (parsec, attoparsec, trifecta, ...), etc. As a side note, I used to do lots of python/ruby - I really can't anymore. They feel simultaneously more burdensome to code (no static type-checking), more verbose (no elegant, long pipelines of computations), less expressive (no real first class functions - you barely use map/reduce/fold/etc. in python) and slower (as in runtime). Having said all that, I do see how Go fills a gap in the market. You need something that's easy to grok and gets just enough of it right that you can produce fast, type-safe-enough and concurrent programs with somewhat less mutable state than what you may be used to in C. A simple mental model and ease of entry are conceivably great for larger, homogeneous teams.
- nimrody 14y agoCan you recommend any open source project that you consider a good example of Haskell usage? (meaning both practical and well-written)
- edwkar 14y agoWell, xmonad is an excellent example :-)
- pufuwozu 14y agoPandoc: http://johnmacfarlane.net/pandoc/ http://johnmacfarlane.net/pandoc/ XMonad: http://xmonad.org/ http://xmonad.org/
- bru 14y agoI'd say xmonad[1]! It is a very light and fast tiling WM. There's also a couple of elegant and blazingly fast web frameworks, such as Yesod, Snap and Happstack[2]. 1: http://xmonad.org/ http://xmonad.org/ 2: http://www.haskell.org/haskellwiki/Web/Comparison_of_Happstack,_Snap_and_Yesod http://www.haskell.org/haskellwiki/Web/Comparison_of_Happsta... http://stackoverflow.com/questions/5645168/comparing-haskells-snap-and-yesod-web-frameworks http://stackoverflow.com/questions/5645168/comparing-haskell...
- slurgfest 14y agoInstalling xmonad requires several hundred megs of dependencies, so what does it mean for it to be light? Low memory footprint?
- antihero 14y agoPretty much. Hard disk space is still cheaper than RAM, so I think it's a good tradeoff. Plus those dependencies can be used for lots of other things.
- icebraining 14y agono real first class functions - you barely use map/reduce/fold/etc. in python Can you expand on this?
- papsosouid 14y agoI'm in the same boat as ozataman, go feels like a huge step backwards to me because I use haskell. My interest in programming languages is roughly 0% academic in nature. I use haskell primarily for web development (also random stuff like parsing log files, automating deployments, etc). I use it for these things because the practical benefits of such a high level language are so good, using anything else is painful.
- dscrd 14y agoWhat if I told you that you're not supposed to be excited about your programming language?
- ozataman 14y agoThat wouldn't work for me. I've been lucky enough to almost always work on things I've been interested in, and it has served me well in my career so far. I doubt I could even perform at 50% efficiency when using tools that don't excite me. I've also had a ton of fun mastering and compulsively customizing both VIM and Emacs :-)
- BasDirks 14y agoI can see where you're coming from but for a programmer who is beyond "programming puberty" it is a great plus to be in love with their programming languages. Even better if he/she is unfaithful, and has massive orgies (oh wait did I just take this analogy too far?)
- AYBABTME 14y agoIt's a great analogy. I'll go tell my wife about it.
- user24 14y agoI worked in PHP for years, now we've moved over to NodeJS and I'm massively excited about JS in a way that I never was about PHP. If you're not excited about your programming language, I would suggest that maybe you're using the wrong one.
- pjmlp 14y agoSame here.