Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The point of this article is that you don't want to leave the category stuff aside. A category is essentially a well-defined and systematic way to reason about--and program with--composition. An introduction to programming with categories would, by its very nature, have to be an introduction to programming compositionally.

Moreover, I think a introduction using terms and ideas from category theory would be more useful, more thorough and more enlightening than an introduction to "compositional programming" without any math. It provides a nice structure and enables you to consider composition more abstractly, which lets you use compositional programming in more places.



> Moreover, I think a introduction using terms and ideas from category theory would be more useful, more thorough and more enlightening than an introduction to "compositional programming" without any math.

Yeah, this article left me wanting to know more about category theory. But that in itself is valuable. I googled and found a couple introductory papers [1,2], some slides introducing category theory for software engineers [3] (with a NSFW diagram on page 8), and an introduction to category theory as it applies to Haskell [4].

[1]: http://wwwhome.cs.utwente.nl/~fokkinga/mmf92b.html

[2]: (PDF) http://www.staff.science.uu.nl/~ooste110/syllabi/catsmoeder....

[3]: (PDF) http://www.cs.toronto.edu/~sme/presentations/cat101.pdf

[4]: http://en.wikibooks.org/wiki/Haskell/Category_theory


No disagreements here. But two quick comments:

(1) There is still a software-design aspect to all this that has been neglected. For example, one can find all kinds of material on how to design OO software (e.g., the GoF book and its offspring). Find me something about how to design software using composable components. There isn't much out there.

(2) "Software engineers need category theory" is a statement that is almost too vague to be discussed. Certainly, a traditional presentation of category theory is largely useless to these people. What exactly is useful, and how should it be presented? People are starting to answer these questions, but only starting. Note, for example, that, in the brief intro to categories in the linked article, the fact that the categories allow for multiple identities (one for each object) is glossed over. It this a good idea? I don't know.




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

Search: