[Haskell-cafe] Language simplicity

jur jur at cs.uu.nl
Thu Jan 14 15:06:22 EST 2010

On Jan 14, 2010, at 8:38 PM, Andrew Coppin wrote:

> Martijn van Steenbergen wrote:
>> Niklas Broberg wrote:
>>> 21 actually. case, class, data, default, deriving, do, else, if,
>>> import, in, infix, infixl, infixr, instance, let, module, newtype,  
>>> of,
>>> then, type, where. There's also three special words that can still  
>>> be
>>> used as identifiers, so aren't reserved: as, qualified, hiding.
>> Since you can define operators in Haskell, would it make sense to  
>> include '=', '--', ':', ',' etc. as "reserved names" since those  
>> can't be used as operator names?
> Makes sense to me...
> It's merely more difficult to catelogue this information for a half- 
> dozen different languages. Looking up the reserved word list is  
> usually only a Google search away.
> Somebody suggested to me that the best metric for "how difficult" a  
> language is to learn is "the number of orthogonal concepts you need  
> to learn". Of course, measuring THAT is going to be no picknick!

I do not think so. More orthogonal concepts may make it more work to  
learn the language, but I think
orthogonality helps to learn a language that has many concepts.

For me, a major problem when learning a language is ad-hocness.
The Java Language Specification part on Generics (parametric  
polymorphism) comes to mind.
It is full of ad-hoc restrictions, and operational details. Haskell's  
polymorphism behaves much
more predictably because it is much less ad-hoc.

Although I do not have any Python programming experience, I got the  
impression that
Python is very un-ad-hoc. Everything behaves in exactly the same way  
at all possible
levels in the language. You need to master only one idea and it  
applies everywhere.
Even if the way it behaves is strange.


More information about the Haskell-Cafe mailing list