Это общепринятая практика, которую я не принимаю!
Я имею в виду пакеты для личного или стороннего использования.
В общем, я хочу, чтобы моя законченная работа была как можно более неотличимой от идеального (WRI) качества, внешнего вида и ощущений.
Это включает в себя длинные описательные имена для моих команд со всеми соглашениями об использовании заглавных букв, используемыми WRI.
Конечно, мои пакеты - на данный момент - далеко не соответствуют качеству WRI, но, по крайней мере, я пытаюсь интегрировать их как можно лучше со стандартной функциональностью MMA. И это включает в себя прописные команды.
Во время разработки подсветка синтаксиса предупреждает меня о возможных конфликтах со стандартными функциями MMA, поэтому я могу предпринять соответствующие действия.
Конечно, мои команды и пакеты могут конфликтовать с будущими выпусками MMA, но ничто не длится вечно, и если будущая команда MMA будет похожа по имени и функциональности на одну из моих, я просто переключусь на стандартную функцию с минимальным изменением имен или без изменений .
Кроме того, я считаю, что визуально гораздо привлекательнее использовать заглавные буквы, чтобы отличать команды пакета от более скромных временных переменных.
Если вы хотите увидеть какой-то визуально непрозрачный / непривлекательный код, просто посмотрите на любой средний код Maple.
Что касается переменных шаблона, я стараюсь давать значимые, в основном короткие, имена шаблонов без прописных букв, чтобы пользователь мог угадать, посмотрев на шаблон Ctrl / Cmd-K, какой тип ввода ожидается в моих командах пакета.