Здравствуйте, Максс, Вы писали:
М>Зря вы так. М>Матеиал очень интересный. Хотя бы что касается М>"масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование". Скажем, определение функций, параметрических относительно различных типов; проблема внешней расширяемости и т.д. Многие концепции заставляют очень серьезно задуматься...
Вообще, роль языка как-то четко не вырисовывается. Они попытались различные идеи собрать в одном месте, да и еще сверху платформ, вполне самодостаточных со своими идеями.
На уровне имплементации и переносимости меня убил пример с разницей семантики Substring(int, int) и substring(int, int). Понятно желание дать возможность писать переносимый код, но для этого нужно было как-то зафиксировать семантику для примитивных типов хотя бы (даже если они и выполнены как реализации классов в .Net и Java). Т.е. жесткая последовательность в таких вопросах всяко лучше, чем приведенный пример незаметных и подлых граблей.
В плане миксинов +1. И ограничения на миксины и их реализация — все логично, я бы на месте Java и .Net разработчиков этих платформ присмотрелся бы.
Насчет остального... Немного юморно выглядят попытки расширять ограниченные ОО-языки встроенными спец-конструкциями, которые в том же С++ легко выражаются с помощью базовых (и можно выразить еще теоретически бесконечное множество паттернов и конструкций). Может, стоит получше прорабатывать базовые конструкции языка?