5 ms·
Would 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
by thebigshane 14y ago
Would 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.