I have tried various different markup/markdown languages and have found myself coming back to TeX for the ease of typing. I have always wondered what are the features which make TeX such an easy-to-type language. For example, the backslash
\ is an excellent method to differentiate commands from the text since they do not require much more than a single keypress.
Also, I have found that customizing/writing small shortcuts for features in LaTeX is quite easy due to the same features. Does this flexibility extend to the bigger packages as well? Is this the reason almost every university is able to model its own thesis class and every guy is able to model his own paper style?
I would like to study the features of TeX which make it so easy to customize and write. At the same time, I want to study the features which make it so hard to operate with the backend programmatically. I am aware that some of the features are dual in nature, they increase writing prowess and as an effect reduce the programming ease.
So, basically, I am interested in three kinds of lists:
- Features which make TeX easy to write/customize
- Features which make TeX hard to program at the backend
- Features which inherently do both of the above.
The idea is that if the backend can be written in a more maintainable language and a frontend to backend compiler can be built to easily convert the user written package code into a backend. Then, it will be possible for us to develop a programmatically better version of TeX.
The bottom line is that the TeX code is really great for user customization and writing technical stuff, however, the same code causes lot of anguish at programming level. However, if it is possible to "shift gears" at some level, then there might be a better way to implement TeX.