Hacker News new | past | comments | ask | show | jobs | submit login

Do you maybe have an example where it isn't able to maintain that "elegance"? In my experience of writing Haskell, I do write pretty terse, higher order code, with lots of higher order functions, applicative functors, monad transformers, and many other abstractions that relatively tersely describe what is happening.

The expressions may not be simple, because what is happening may just not be that simple, but (purely a feeling) compared how the code achieving the same would come out on other "mainstream" languages, Haskell still tends to come out on top for me.

Make it clash, which is a (strict, real) Haskell subset replacing VHDL and Verilog[1], and the difference is orders of magnitude. In my hobby use, I plain refuse to write anything else than simple glue logic in VHDL or Verilog now.

[1] Usually compiling to them.




How is developing with Haskell? I've been considering picking it up because I love functional programming. I usually write quick n dirty stuff in python and lately I've been picking up go as well, which is a breeze to write with.

Can I get moving quickly with Haskell or will it take a while to get accustomed to it switching from other languages? My fear is that, like when I started picking up rust, it'll be a bit of a slog.


> will it take a while to get accustomed to it switching from other languages

If you've never dealt with a language similar to Haskell, I think the learning curve is very steep. But it was one of the most worthwhile things I did in my programming life.

Or not, because now I'm stuck with a view of how the world could be, which at least in my professional work life is pretty much out of reach. (Might be different for everyone individually.)


> how the world could be

I already feel this way about Clojure vs other languages I know, or Ruby (what I get paid to do) vs Python (what I use when I must).

It gets tiring to know elegance and terseness and then have to use wooden clubs.

If Haskell is some steps further up the ladder, but opportunities to use it are very limited, it would make me even more frustrated.


> I do write pretty terse, higher order code, with lots of higher order functions, applicative functors, monad transformers, and many other abstractions that relatively tersely describe what is happening

Can other people understand what is happening? Can people with less expertise understand what is happening? Can you yourself understand what is happening 6 months from now?


Does a junior developer understand the core abstraction of a given project written in any language? Chances are the answer is no. Haskell just expresses that inside the language, while other languages tend to rely on design patterns, or just simply distributing the logic between many parts, which are arguably more error prone.

But for all practical matter, they can better write a single isolated case because it has to abide by stricter typing rules, instead of only conventions that supposed to he upheld.


Yeah, better than in other languages I'd argue, as the meaning of the code is not obscured as much. This becomes especially (but not exclusively) clear with clash vs. VHDL/Verilog.

You have to actually know Haskell first, obviously.


I also want to add: That was actually the point of my comment. "Applicative functors" may sound scary as a name, but the concept really does help in keeping things readable.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: