Показать сообщение отдельно
Старый 06.05.2008, 11:18   #14  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Blog bot Посмотреть сообщение
The most visual idiosyncrasy in X++ is the dangling semicolon separating the variable declarations from the actual code. If it was made a priority to get rid of dangling semicolons, what could be done?
  1. X++ could be made case sensitive. This would likely break all customizations and solutions available; unless it is accompanied with a code "beautifier".
  2. The compiler could be made more intelligent by looking one more token ahead before giving up. The compiler should be able to do so too. I guess the developer solving this issue would kudos in AX-land.
Уж не этим ли прельстило Понтоппидана решение "сделать компилятор более умным"?
А по мне так лучше было бы сделать X++ регистрозависимым как та же Java, которая вроде как вдохновила некогда праотцов из Дамгаарда.
Цитата:
Сообщение от mazzy Посмотреть сообщение
Ой! По-моему, точка с запятой меньшее зло
Это еще почему? С точки зрения поддержки старого кода, косячно-корявого в плане регистрозависимости и соблюдения Best Practices? Дык, натравить на него один раз beautifier, а потом - руки отрубать (образно говоря, т.е. компилить код с ошибками) неряшливым кодерам, пришедшим из бейсика, которым по барабану и Best Practices, и рЕгисТР БУкв
Собственно, Понтоппидан лукавит, говоря об автоматическом "причесывателе" кода как о неком мифическом существе. Смотрим в Best Practices (давнишний, еще от 3-шки), раздел «X++ layout», подраздел «Upper/lower case»:
Цитата:
  • System functions are treated like other methods (initial lowercase). Intermediate words may start with uppercase.
  • true, false, null are all lowercase.
  • Basic types are all lowercase, for example: str, date, int, real, void, boolean.
  • Reserved word are all lowercase (for example see the System Documentation>Reserved Words list). Intermediate words may start with uppercase. Example: if, while, for, select, ttsCommit.
Не знаю, как на счет «intermediate words may start with uppercase», но в самом ядре все системные функции и ключевые слова прописаны сугубо в нижнем регистре - любой желающий может в этом убедиться. А теперь смотрим в стандартное приложение DAX4, сравниваем с AX3 и ищем десять различий (в тех местах, где код не менялся из-за введения нового функционала, всяких Code Access Security и проч.): сразу видно, что код "причесали": привели все ключевые слова и системные функции к нижнему регистру, привели упоминания элементов перечислений к тому виду, в каком они представлены в AOT, etc (я уже как-то писал об этом). Т.е. явно видно, что код приложения 4-ки прошерстили неким инструментом, зачатки которого уже давно живут в самом приложении, см. Add-ins\Смена регистра в исходном коде (класс SysSourceNameWash).
Так что в плане перевода Х++ в регистрозависимые языки нужна по большому счету лишь политическая воля - вместо желания "прославиться в AX-сообществе".
Цитата:
Сообщение от Blog bot Посмотреть сообщение
This morning I have created a package with my findings and sent it to the X++ team for evaluation. This change will not make it into AX 2009; but I'm confident those of us writing X++ code at Microsoft will enjoy this very soon. The rest of you will have to wait for AX6.0.
И эти люди еще хотят скрестить DAX с VS и .Net'ом...
Цитата:
Сообщение от somebody Посмотреть сообщение
Более умный компилятор == более медленный??
Мне кажется, гораздо больше времени в ходе компиляции занимают проверки Best Practices, чем собственно создание байт-кода. Тем более, при нынешних мощностях серверов и рабочих станций разработчиков время компиляции того же кода приложения вряд ли может на что-то существенно повлиять.
Цитата:
Сообщение от oip Посмотреть сообщение
А по мне, этот значок делает код более читабельным в любом случае. Особенно когда перед основным кодом идет длинное объявление переменных, да еще и с функциями. Пробегаешься глазами и сразу же видишь начало основного кода.
А по мне - лучше бы докрутили среду разработки до уровня VS, где редактор понимает, где тип, а где переменная типа, и подсвечивает их по-разному. Тогда и "костыли" в виде висячей точки с запятой не понадобятся...