It's very rude to pimp on other people's projects and articles to get something off your chest though.
This article is not primarily about Haskell, but about a commercial IDE made by a guy named Manuel M T Chakravarty — which for me it's interesting, because it's an example of somebody that apparently makes something that he likes, helping an ecosystem and people give him money for it. So it's perfectly on topic for Hacker News and visitors of the comments section like myself, would like to see opinions related to this project.
As for the comment, F# is a fine language, but reading the comparison I'm fairly certain that you haven't learned Haskell and I say this in order to help you — learning Haskell is the easiest path to practicing FP, which given your comment I'm fairly certain you don't grok yet, which keeps you back from being a good F# developer as well.
That you haven't learned Haskell is more of a failure of Haskell's community — but there have been recent projects trying to address that. One is the Haskell for Mac project here in TFA, others are the Stack build tool and http://haskellbook.com, a really good book meant for beginners.
Have to disagree here. Haskell is good for learning about advanced type systems along with FP.
But for the "easiest" path to just learning FP, Scheme, SML, even Clojure are far more approachable.
this isn't a refereed journal - you can't prescribe how people engage with the material. i was prompted to post what i did on the back of having experimented with every ide-ish thing for haskell out there about 6 months ago (this one included).
>As for the comment, F# is a fine language, but reading the comparison I'm fairly certain that you haven't learned Haskell and I say this in order to help you
not only is this patronizing but it commits the fallacy of begging the question - i did learn haskell while working on a fairly sizable codebase at my last job. i won't reiterate all of my complaints here (i've posted several times to r/haskell) but the tooling sucks and pure code is a set of handcuffs - golden handcuffs maybe but handcuffs nonetheless. that we disagree on whether pure code is the one true god does not mean i don't understand fp - it means just that, that i disagree! to conclude from my disagreement with you that i don't understand fp begs the question (petitio principii) of whether pure code is the one true god.
>That you haven't learned Haskell is more of a failure of Haskell's community — but there have been recent projects trying to address that. One is the Haskell for Mac project here in TFA, others are the Stack build tool and http://haskellbook.com, a really good book meant for beginners.
i read the haskell book and learnyouahaskell and real world haskell and many many tutorials and wrestled with stack and cabal. certainly they're better than the tools/resources available for e.g. cobol but they do not compare to the ecosystem around other, much more welcoming languages.
As for what you say about haskell being "monad acrobatics", it can be equally true of F#, or any other typed functional language, because all monads/applicatives/functors/etc are, are just helpful functional design patterns. It would be like calling Factories in Java handcuffs. If you don't want to code using Factories or Monads in Java/Haskell, that's still your choice, but if a lot of libraries in that language are using that pattern, it's probably for a reason that makes it useful in that language's paradigm. Haskell just makes it easier to use these patterns than F#/OCaml/Elm/etc because of its typeclasses, so a lot more people use them. That's all there is to it. I'll grant you that F#'s tooling is a little bit better in places though, but I was never a huge fan of it's project/module system. OCaml probably has both F# and Haskell beat there.
That being said, F# is still a fine language, and I think it's probably a better stepping stone towards learning haskell (and typed functional programming in general) than haskell itself, just because it gives you the option of gradually easing your way into the ML style of programming if you've already had some imperative programming experience before. And that's key, because the issue here is one of shifting the way you think about your programming problems, and there's simply no quick/easy way to do that. In fact, I find that a lot a complete newcomers to programming have an easier time learning how to do things the haskell way, because they don't really have these issues of feeling restricted by the type system, since it's the only way they've been taught to do things.
So overall I would say just keep at it with F#, and check out the F# way of doing things like monads (or "computation expressions" [0] as they're called in F#) , monoids [1], "Railway Oriented Programming" [2], and other such patterns [3], then maybe try checking out Haskell again later and see if it seems a little easier. But there's really no reason to be bashing it regardless.
[0] https://fsharpforfunandprofit.com/series/computation-express...
[1] https://fsharpforfunandprofit.com/posts/monoids-without-tear...
[2] https://fsharpforfunandprofit.com/rop/
[3] https://fsharpforfunandprofit.com/series/map-and-bind-and-ap...
If it were open source, yeah definitely. But is this app written entirely in Haskell? I don't think so, otherwise it would at least be a good Haskell promotion.
He's not just "a guy". Check out http://www.cse.unsw.edu.au/~chak/papers/ . He's an old timer in the field.
You can often use the "for" function for things analogous to effectful imperative loops. http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-T...
for [1..10]
print
Trivially refuted.No wonder, all this time I've been thinking that with enough practice I'll finally grok monads, but no, one simply has to wait for the pass to be on target.
SPJ, hit me in the numbers!
As an academic project language it seems great, but for practical work I just don't see it.
I can do a fair amount of functional programming in Swift and Julia, but still make useful stuff without without an huge mental investment.
My life as a professional C++ programmer has made me very negative to anything involving unreasonable complexity.
I'm a rank beginner at Haskell, understand the very basics, but still feel handcuffed when I stray away from the textbook examples.
In contrast in pure code people have more tendency to get into monad acrobatics, but excessive monad acrobatics is just code smell.