I have been experimenting with using Yesod to throw together a web application or two. My experience so far has been broadly positive—if you like computers to check things for you, I recommend it. ((assuming you like deciphering compiler error messages when the computer says no, that is)) That said, watching the full chain of dependencies fly past was moderately entertaining: ((for a quiet Wednesday morning…))
- parsec-3.1.2
-
An excellent parser-combinator library, widely imitated. This wouldn’t be funny, except…
- attoparsec-0.10.1.0
-
Another excellent parser-combinator library, inspired by parsec.
- base-unicode-symbols-0.2.2.3
-
This defines a bunch of Unicode aliases for standard functions with boring ASCII names. Why write:
x `elem` xs
when you could write:
x ∈ xs
Invaluable!
- utf8-light-0.4.0.1 and utf8-string-0.3.7
-
Two UTF-8 encoding libraries!
- semigroups-0.8
-
“In mathematics, a semigroup is an algebraic structure consisting of a set together with an associative binary operation. A semigroup generalizes a monoid in that there might not exist an identity element. It also (originally) generalized a group (a monoid with all inverses) to a type where every element did not have to have an inverse, thus the name semigroup.”
What’s your point? A software package depends on other packages so what? I think that’s a good way to write software, better than inventing it yourself.
attoparsec: They used the best library for the job, and they found that this was the best in a particular case, over parsec. So what?
base-unicode-symbols: Obviously made for easier to read code in some part of the program.
utf8-*: Again, the clearly picked the best tool for two different jobs. One is quick, the over powerful.
semigroups-0.8: Yeah, we don’t want none of that there fancy book learning computer science stuff. Duuuurrrrr
I’m speechless.
I voluntarily write as much software as possible in Haskell. Why would I be afraid of “fancy book learning computer science stuff”?
Well then why are you mocking a library’s description for sounding technical?
I’m not mocking it.
You imply that it’s funny. You’ve written a list of funny (and you do use that word) dependencies.
You haven’t included the package description to be informative have you? Why have you included it?
I think it is funny (and delightful) that, by contrast to more mainstream web frameworks, Yesod depends on a module implementing semigroups. It is *precisely* because of things like this that I enjoy writing software in Haskell.
I think it is entertaining that Yesod depends on a library providing symbolic Unicode aliases for mathematical operators because that that library exists is funny (and I look forward to using it in my applications).
I think it is funny that a web framework implemented in a language sometimes derided for only being suitable for writing parser combinator libraries depends on not one, but two parser combinator libraries.
I think it is funny that a web framework implemented in a language historically derided for poor UTF-8 handling depends on two UTF-8 libraries.
Obviously we find different things entertaining.