1) В аде нет квадратных скобок - индексация массива неотличается от передачи параметров функции.
я както упрашивал Даниеля прикрутить в фрюху опцию, чтоб квадратные и круглые скобки стали эквивалентны (помогло бы с читабельностью), ну или хотяб допустить индексирование массива в круглых скобках.
2) в аде можно в interface секции произвольно любой объект делать публичным\приватным (приватный объект неможет использоваться снаружи, возможен кстати такой перл: создается приватный тип, а потом публичные константы етого типа, так вот константы снаружи можно использовать для передачи параметров например, а вот создавать новые константы или переменные етого типа нельзя).
я просил Даниеля внести модификатор public\protected в interface секцию модуля. но ето было во времена превозношения ады, сейчас мне такая фича кажется неактуальной, хотя и могла быть полезной чтоб незасорять пространство имен - невыносить в публик приватные имена.
3) самая интересная фича - задание констант-массивов. необещаю быть точным по отношению к аде, покажу как ето выглядит в вхдл:
constant somearray is array[indexes] of itemtype =
( indexvalue => itemvalue,
indexvalue => itemvalue,
.....
others => defaultvalue )
ето к вопросу о том когда программист ставит вместо . запятую, или вообще както тупо ошибается.
4) интересный стиль задания вложеных if then else. в аде и вхдл оно выглядит так
if .... then
..........
else
.....
if ... then
......
end if;
.........
end if
ненужно раскидывать begin end, и незапутаешся в блоках, и мне такое легче воспринимать.
однако ето тоже стал ставить под сомнение ибо есть более беспрецендентный пример - Python, там вместо
бегин\енд используют заданное количество отступов\пробелов (как в оккаме). и ничего, живут себе пашут и жнут, вроде не плачат.
5) Возможность разделения секций interface и implementation в разных файлах.
была както просьба в форумах ввести такую фозможность во фрюху, ибо есть какаято разновидность паскаля, который ето поддерживал и надо было работать с его библиотеками человеку. посьбу отклонили по причине того что етого неумеет делать дельфа.
6) парметризуемые модули - нечто аналогичное genericам в нынешней дельфе. впринципе раз есть генерики, то можно считать что оно свершилось.
7) наличие подтипов -
subtype name is enumeratedtype range low .. hi;
кстати Сергей, почемуто мне знакома ваша фотка\аватарка, и сдается мне вы лучше меня знаете чего в аде есть хорошего.
ну вот ето то что вспомнилось
Добавлено спустя 5 минут 55 секунд:R1DDLE писал(а):alexrayne писал(а):я одно время тоже болел Адой, отвратило от нее меня то что она всетаки фронтенд к гнусному бакенду, и ето определяет потенциальную надежность кода которую она может дать (о бузглючности гнусного компилятора можете меня не уговаривать)...
А если не брать во внимание особенности компиляторов/среды, то что практичней Ada или FreePascal? (предположим есть очень хороший и супер надёжный компилятор для Ады и для Паскаля).
фрюха ессно, как раз потому что она позволяет обходить типизацию (через преобразование типов одного размера, или через преобразование типов указателей). и позволяет использовать эквивалентные типы свободнеею. еще в аде нет авриантных записей.
еслиб вы видели каких мучений стоит работа со строками в аде - там тип string[длина] и тип string разные и неоченьто совместимые.
Добавлено спустя 43 минуты 4 секунды:Опаньки, а Сергей то у нас разработчик фрюхи, так скыть - принятый.