Здравствуйте, VladD2, Вы писали:
E>>однако заметно, что его делали специалисты в области языков программирования (со своими, слегка оторванными от рельностей, взглядами).
VD>И в чем это выражается?
Да в той же самой линеаризации хотя бы.
Или в добавленных в последних версиях extractor-ах.
E>>но по ряду других факторов Scala гораздо предпочтительнее.
VD>Можно более подробно и менее туманно об этом?
У Scala огромное количество библиотек, унаследованных из Java.
У Scala феноменальная переносимость по сравнению с нынешним D (в вариантах dmd и даже gdc).
У Scala гораздо более качественный GC, унаследованный из Java (по сравнению с нынешним D).
Scala работает в полностью управляемой среде, поэтому любой выход за пределы массива приводит к выдаче подробного stack trace. В отличии от D, где в Release вообще проверки отключаются, а когда они есть, то нет никакого stack trace.
D меняется гораздо интенсивнее и все вкусности, которые сейчас стали обсуждаться news-группах (такие как расширенная поддержка const/final/invariant) появятся только в новой версии языка (под условным названием D 2.0), а когда это будет -- хз. Scala в этом смысле гораздо стабильнее, а значит -- предпочтительнее.
E>> К счастью, прямо сейчас у меня нет необходимости делать выбор между ними, поэтому я пока занимаю выжидательную позицию -- либо в каком-то из них возникнет какая-нибудь killer feature, либо появиться что-нибудь еще более привлекательное, что затмит как Scala, так и D.
VD>А паттерн-матчингом ты пользовался? Если, да, то что с его помощью ты делал?
Как альтернативой C-шному switch, почти как Ruby-новым case. Поскольку я парсингом граматик или преобразованием древовидных структур данных на Scala не занимался, то особой выгоды в паттерн-матчинге не заметил. Вот аргументы by name и тип unit -- это да, классная штука. Туда бы еще обобщенное программирование как в D, вообще был бы шедевр.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.