5 ms·
They do exist. I use http://hackage.haskell.org/package/optparse-applicative http://hackage.haskell.org/package/optparse-applicative for small cli apps http:
by tiew9Vii 7y ago
They do exist.
I use
http://hackage.haskell.org/package/optparse-applicative http://hackage.haskell.org/package/optparse-applicative for small cli apps
http://hackage.haskell.org/package/envparse http://hackage.haskell.org/package/envparse For any Docker microservice
http://hackage.haskell.org/package/aeson-1.4.5.0/docs/Data-Aeson.html http://hackage.haskell.org/package/aeson-1.4.5.0/docs/Data-A... For all JSON work. Sometimes I’ll use it with lenses which is massively powerful but a rabbit hole
I’ll use http://hackage.haskell.org/package/stm http://hackage.haskell.org/package/stm when dealing with parallel execution
https://github.com/brendanhay/amazonka https://github.com/brendanhay/amazonka For anything dealing with AWS
https://github.com/haskell-works?tab=repositories https://github.com/haskell-works?tab=repositories Projects for Kafka and avro
http://hackage.haskell.org/package/warp http://hackage.haskell.org/package/warp For trivial micro services or Scotty if more than a few endpoints
http://hackage.haskell.org/package/persistent http://hackage.haskell.org/package/persistent For dealing with Postgres
http://hackage.haskell.org/package/parsec http://hackage.haskell.org/package/parsec For dealing with any text parsing.
The tools are available, they can make things like cli apps and micro services trivial. However if you have never used a ML language before you will have a steep learning curve as very different to C style/based languages.
I was once of the opinion Haskell is academic, what can you use it for in the real world. Then I studied with it, played with it admittedly on and off over 1-2 years, hit hurdles where I had to think as so different to what I’ve learnt before. Eventually it clicked, it’s very hard and frustrating now in my day job using typical enterprise or popular languages. It’s not about convincing, it’s about having a open mind and wanting to learn something different
- Beltiras 7y agoThose look really promising. My boss is big on TDD and open to developing cutting edge technologies. I'm going to have a look and see if I can propose a project using these tools.
- polymatter 7y agoIn case you're serious https://tech.fpcomplete.com/haskell/promote https://tech.fpcomplete.com/haskell/promote may help.
- gowld 7y agoFP Complete is a consulting company. They promote Haskell, and they boast about getting hired to help a company analyze their code base to fix a space leak. I wouldn't trust my business to a language that requires hiring a consulting firm to do fundamental debugging. I've written memory leaks, but never needed to hire consultants to debug them.
- lallysingh 7y agoConsulting is rarely about helping problems that too hard to fix by a good developer. They're often about helping problems that the customer doesn't want to put (or hire) good developers on.
- erik_seaberg 7y agoHaskell is lazy by default, and sometimes builds up large unevaluated expression trees that need to be forced. Other languages are eager, but litter the code with abstractions like Callables and Futures and channels just to not do something.
- pytester 7y ago"Packages exist for doing this" isn't the same thing as "this is a good ecosystem for doing this kind of work" though. I'm fairly convinced that Haskell is good at preventing the kinds of bugs which you might run into writing, say, a parser or other kinds of very complex logical code, but I'm less convinced that the nature of the language helps with the kinds of issues you get hooking together APIs, databases, etc.
- marcosdumay 7y agoNearly all of those packages are best in kind, and most actually in a different league from anything that you'll get in another language.
- coldtea 7y agoYou assert this, but the parent asked for it to be shown...
- marcosdumay 7y ago> show me what I need to know to do what I do That's the only one occurrence I can find. I think the GGP made a good job of answering that. I'm not going to walk over the differences as each of those would be a many hours task just for explaining.
- misterdoubt 7y agoSure, they exist. But pointing out that they exist is not "show me what I need to know to do what I do." Instead, the next high-profile HN Haskell link will be the thousandth demo/intro/tutorial that yet again implements some core data structure. Rather than showing how Haskell is great for working with databases. Or working with Kafka. Or integrating with AWS. Or parsing text. Or running microservices. Or any of the other hundred things that I'm going to do a dozen times before I need to reimplement binary trees.
- lallysingh 7y agoBecause they're boring and nobody wants to vote them up.
- johnday 7y agoEach of these things is well-explained by the documentation of the respective libraries. I'm not sure why you feel like you need someone to write you a long-form story in order to learn how to do these things; convince yourself of the merits that others already see.
- surt666 7y agoI disagree. Look at the difference in documentation for Haskells Amazonka versus Clojures Amazonica. There are no simple code examples to get you going. Took me forever as a Haskell newbie to get DynamoDb integration working. In Clojure I just copy an example and play with it
- johnday 7y agoAre the code examples in eg. http://hackage.haskell.org/package/amazonka-1.6.1/docs/Network-AWS.html http://hackage.haskell.org/package/amazonka-1.6.1/docs/Netwo... not sufficient?
- surt666 7y agoThe situation seems to have improved a bit since last I looked, but I still think it needs a basic howto about how to do stuff. I know you can figure most things out by looking at the types, but that's exactly where newbies lack experience, and you have search quite a bit for the information here, but thanks for the link. It's definitely better than it was
- gowld 7y agoHaskell makes you hate your day job, but doesn't offer you a better day job, because it is a tease of something better.
- tramav 7y agoDoes Data.Aeson parse JSON as UTF-8 and numbers as decimal? You know, in real world business applications we don't use float/double or ASCII.
- pwm 7y agoOf course. It uses the Text [0] and Scientific [1] packages under the hood. The internal ADT representing JSON is actually very simple (as json is very simple itself): data Value = Object (HashMap Text Value) | Array (Vector Value) | String Text | Number Scientific | Bool Bool | Null [0] http://hackage.haskell.org/package/text-1.2.3.1/docs/Data-Text.html http://hackage.haskell.org/package/text-1.2.3.1/docs/Data-Te... [1] http://hackage.haskell.org/package/scientific-0.3.6.2/docs/Data-Scientific.html http://hackage.haskell.org/package/scientific-0.3.6.2/docs/D...