I have been quite fond of TeX and LaTeX since my first encounter of it. The type set document looks the best and professional compare with other word processors. But it is hard to use when you trying to change the default way of text layout. The TeX macro language is quite hard to understand even I myself am professional programmer.
Over the years, I would like to see if I could come out a better one, but due to various reasons and my own laziness, there is no progress. I finally set myself to start a little bit by re-implementing the TeX engine in Ada - TeXiA, for the purpose to understand how TeX work internally and learning the Ada programming language at the same time. The progress is slow, currently the project just started and not yet reach section 100 of TeX: The Program (Massachusetts: Addison-Wesley, 1986). ISBN 0-201-13437-3.
I found the programming style of TeX, the literate programming introduced by Donald Knuth, hard to follow for me. I'm not a smart guy as Donald. I have to refer to a few C implementations to understand the whole picture: the texlive web2c version, yytex and Common TeX.
There are several other projects that related to computer typesetting are quite interesting: