Hmm. Beginner developer and long-time lover of sarcasm. So I read your home page list of cool features.
> Overthrow the oppressive dictatorship!
> Guido rejecting your awesome syntactic proposals? He's not in charge anymore. Annoy advocates of the category theory!
> With Haskell's syntax but none of its type system, dg is the best way to make fans of static typing shut up already.
Be on the verge of progress!
> Syntactic sugar is the most important thing nowadays. And don't let those Java guys tell you otherwise.
Add one more language to your résumé!
I learn most of what is hip in language design from articles posted here. Is "Haskell syntax without the types" something in demand by programmers, Pythonista or not? I am just curious if this is full-on sarcasm or I completely misread the trends I frequently see on HN. These points made me laugh, but I have no idea what to think.
You're reading too much into it. This is just someone's fun side project.
I'd say Haskell/ML/functional language-style syntax is polarizing; people who write code in functional languages seem to like it because currying, but it can seem pretty foreign to outsiders.
Personally, I think leaving out the parens around function call arguments makes them harder to read and so does currying, so even though I think Elm is pretty cool, the syntax is a drawback for me.
Currying is only one aspect of it. "Everything is an expression" (meaning custom control structures are a breeze), custom infix operators, custom operator precedence (like the silent application operator vs $), layout [1], ...
Currying is weird, it completely changes how you handle functions.
It allows some incredibly powerful concepts to be expressed unambiguously with little syntax.
However I certainly agree that the lack of obvious markers for what a function call involves is painful. (For instance `$` is nonsensical in a C-like language but very useful in Haskell)
Haskell types are ... hard. Imagine a Ruby or JS programmer trying to use Haskell and getting frustrated when they have to, you know, actually care what they're doing.
Spoken as a user of all three/four languages mentioned.
> Haskell types are ... hard. Imagine a Ruby or JS programmer trying to use Haskell and getting frustrated when they have to, you know, actually care what they're doing.
IME -- and I used Ruby and JS a long time before starting Haskell -- you have to care about types in Ruby and JS, too, and, if anything, its more mental load in the dynamic languages, because you don't have a compiler pointing out your mistakes for you, you just have to reason through things manually when your code doesn't work as expected -- or think things through very carefully on your own so it doesn't break unexpectedly.
Though some of the error messages produced by Haskell compilers -- well, GHC in particular, don't know as much about others -- can be downright cryptic, but usually they'll at least point in you in the right direction.
This, for me, is one of the biggest selling points of Go. Say what you like about the language being dull or missing modern features, my debugging time has been drastically reduced thanks to the finickiness of the compiler and it's meaningful error messages.
Sadly Haskell is still on my "todo" list though. One day, I'll get round to learning it....
This is my big problem when I'm working in Ruby or JS and it's someone else's code. Every time I look at a new function I have no clue what the parameters actually are without spelunking around to figure it out. I always feel like I'm wading through a big grey morass with no discernible form.
Love the fake O'Reilly book and "NOT'REALLY®" joke.