4 ms·
That is more or less what I mean by Haskell having too much syntax. Let me start by saying that I am far from an expert, and I am just expressing a subjective o
by nzonbi 13y ago
That is more or less what I mean by Haskell having too much syntax. Let me start by saying that I am far from an expert, and I am just expressing a subjective opinion. I would welcome if anyone shows me that I am wrong. Haskell is a brilliant language. Yet I have this personal and completely subjective opinion. When using Haskell, I get the feeling that the different syntax constructs, just don't fit too well conceptually among them.
The language on the whole is far superior to most others. Yet the syntax constructs don't feel to fit elegantly to me. It is not just that purely functional is a completely different paradigm. It is that the actual implementation lacks a global conceptual elegance. I am going to give an actual example: Take pattern matching. That is a nice conceptual idea. You can pattern match in function, and it is great. But then, you can also pattern match in list comprehensions. So patter matching can be combined in two completely different operations. This does not feel elegant, it feels awkward. It is not very obvious where pattern matching can or can not be used. Haskell is full of things like this.
This lack of overall elegance, makes it harder to mentally handle and become agile with the language. It takes more effort, so it feels that the it has a substantial cognitive overload. Maybe this is completely fine, and is required for the benefits of purely functional programming. Or maybe there could be a different, more elegant implementation of a purely functional language.
Or maybe I'm just biased by a lack of extensive experience with dozens of languages. As a fun note, let me add that as a side project, I am currently at work on a programming language, that address these things that I see as problems. It is not a purely functional language that aims to compete with Haskell, but it happens to address the issue of lack of overall elegance, that I am describing here. I currently have a conceptual design for a type system that specifically aims for conceptual elegance within the whole language. Also it happens that this language will be a graphical language, instead of text based. At worst it will be a great learning exercise for me. I hope that it at least end being an interesting curiosity.