Re[8]: Как думаете что мне больше всего нехватает в C# из Ne
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.03.06 08:38
Оценка: +1 :)
Здравствуйте, WolfHound, Вы писали:


WH>Причем С++ чем дальше тем больше превращается в огромного жутика обвешанного всякой фигней... и это при том что комитетчики придерживаются принципа зачем вводить в язык то что реализуется библиотекой? Вот только что-то у них это не получается... За то получается у авторов Nemerle за что им большой респект. Там половина языка (а может и больше) в библиотеке... С++у такое и не снилось. И не приснится уже никгда... ибо этот титаник на глиняном айсберге рушится под собственным весом.


А ведь чертовски верно замечено! Нэмерел действительно воплощает в жизть этот самый принцип. Ведь по сути базовая часть языка очень мала.

Что есть Нэмерле?

Поддержка:
* ООП — класс, перечисления, варианты, методы, свойства, поля.
* Обобщенного программирования — параметризация типов и функций (т.е. дженерики).
* Функциональных вычислений — вложенных функции, константы, рекурсия и оператор match, вычисления выражений (арифметика, битовые операции, вызов функций).
* Императивного программированияпеременные (локальные и поля). И это все что нужно для поддержки ИП!!! .
* Метапрограммирования — макросы (в том числе переопределение синтаксиса и операторов), квази-цитирование, AST, средства получения метаинформации о элементах AST.

Все остальное — надстройка над этими основопологающими фичами! Может какую мелочь я пропустил, но сути дела это не меняет. Блин, мыслимо ли это, но даже операторы &&/|| являются макросами.

База языка очень мала. С++ и темболее C# просто монстры по сравнению с этим языков. Но стройная и сбалансированная модель в купе с продуманной системой расширения зыка приводят к тому, что по расширяемости ему нет равных среди статически типизированных языков.

И при этом, что очень важно, ненужны никакие компромисы.

Когда я слышу про невероятную расширяемость С++ мне становится смешно. Я не видел ни одного безпроблемного расширения С++. Взять те же кортежи. Целое море обвязки, но краткого и удобного синтаксиса добиться так и не удается. А если вспомнить, о том, что почти все рсширения на шаблонах, а те очень часто приводят к жудчайшим сообщениям об ошибках, то становится очень грусно.

Сложность и противоричивось С++ так высока, что даже мегакорпорации не в силах создать полноценных компиляторов не говоря уже о средствах интелисенса и рефакторинга. Между тем Нэмерле превосходя С++ почти по всем параметрам прост до безобразия и его реализация сделана тремя студентами в качестве курсовой.

Объем всех (!) файлов из каталога ncc (компилятора Нэмерла) составляет ~2.4 мегабайта! И это при том, что среди них не малую долю занимает код тестов (без него код компилятора составляет 1.5 мега.).

Код всех макросов (в том числе if/else, while, for, foreach, ..., printf, ... занимает ~177 килобайт!

Сравним это с бустом. Сколько там занимают эти костыли? А ведь и без них компилятор С++ — это море кода!

Подытожу...

Нэмерле язык несомненно более выразительный чем C++ и C#, такой же безопасный как C# в safe-режиме, почти столь же просой как С, лучше поддающийся расширению чем С++.

Короче С++ точно идет неверным путем. База азложенная в С++ явно неверна. Чтобы выполнить принцип "зачем вводить в язык то что реализуется библиотекой" нужно разрабатывать язык так, чтобы он в первую очередь имел средства создания тех самых библиотек. Причем безкомпромисные.

Блин, ему бы коммерческое воплощение и вопрос мэйстрим-языка на ближайшие 10 лет был бы закрыт.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.