Haskell forum post argues that Commercial Haskell should go after Julia ( and Python) instead of Rust

I find the post a pretty amusing read.

3 Likes

Going after Julia’s use cases is not so one-sided, with Julia winning in terms of pure performance, but Haskell winning in maturity and reliability of ecosystem (Julia is going to be notorious for buggy libraries for quite some time), however, Julia in expressivity is a downgrade from Python, whereas Haskell, excepting the ecosystem problem, is almost a pure upgrade.

I have a hard time seeing this statement not as being deeply misguided. It would take much energy to argue that Julia has a type system compared to Python and that the presence of multiple dispatch and abstract type hierarchies means that APIs to the libraries are changing less often as they cover more surface area from the start. LLM can expand the rest.

4 Likes

My primary languages are Julia and Python, and I don’t think I would have ever listed expressiveness as a clear win for Python. It’s definitely more dynamic (changing classes on the fly), but Julia has a whole class of expressive tools in the type system that I always miss in Python.

5 Likes

Also the reason why it’s an amusing read. This person comes up with really whacky misconceptions etc. real funny

I appreciated the very quick pushback on the claim that imperative programmers would ever say “I can’t believe [this trialed monadic Haskell code is] not Python”. It has to be a seriously cherrypicked example to disregard the un-reassignable variables, resulting absence of loops, static typing, etc.

One commenter pointed out that their STEM coworkers with a low frequency of CS degrees use Python but hate type hints for adding verbosity, despite the several uses for them pointed out later in the thread. It just shows that there is a serious appetite for the tersest scripting languages, and the users are happy to let the package developers pull off performance. This reminds me of those old Julia introduction articles that got me into Julia in the first place that also pulled the “see, isn’t this almost like Python” trick, and I almost immediately tripped over explicit types being important for performance. Thankfully, I was looking for a better way to do that than keyword arguments like dtype=float for opaque C code.

4 Likes