2011-01-01 4 views
8

Похоже, что оба этих языка дублируются как «то, что C# должно было быть», с гипергенными макросами, REPL, компилятор в качестве Serivce (CaaS), статический + утиный ввод (путь до того, как C# имел его). Существуют ли какие-либо существенные различия между этими двумя языками, или это всего лишь две разные реализации более или менее того же? Я где-то читал, что макросервис Nemerle более мощный, чем Boo; Это правда?В чем разница между Boo vs Nemerle?

Как они сравниваются с точки зрения текущей активности, зрелости и интеграции IDE?

Кроме того, может случиться, что C# 5.0 по слухам, функция CaaS может сделать их устаревшими, если дело доходит до реализации, или есть функции, которые будут держать их релевантными?

ответ

8

Добавление CaaS на язык, такой как C#, или даже макросы в Boo, недостаточно для достижения уровня метапрограммирования Nemerle, для которого язык был разработан с самого начала. Алгебраические типы, цитаты и сопоставление шаблонов являются обязательными для абстрактной обработки дерева синтаксиса.

Nemerle недавно достиг статуса статуса кандидата. Работа над Nemerle 2.0 уже ведется. Бу, похоже, близок к аналогичной сцене, но немного позади.

Boo в первую очередь интегрируется с SharpDevelop, а Nemerle - с интеграцией Visual Studio 2008.

+3

Boo было качество продукции за * лет * –

+1

Я бы сказал, что они оба уже более стабильны, чем C# 1.0-1.2. :) –

+2

Nemerle также имеет интеграцию SharpDevelop. Вы можете скомпилировать его из источников. –

8

Язык Nemerle имеет много функций, которые не имеют языка Boo. И если вам нужна функция Boo в Nemerle, ее очень легко добавить.

+0

Как насчет функции boo, которую вам не нужно вводить в фигурные скобки или точки с запятой? :-) –

+4

@Robert P: синтаксис Boo происходит от Python, а Nemerle - от C# ... Но Nemerle также может использовать [синтаксис типа Python] (http://nemerle.org/Indentation-based_syntax) –

+0

Ha! Кажется, так. Я предполагаю, что только один из них: (afaict) Nermele не может работать как интерпретируемый язык (ala python/perl/etc), или я тоже там не прав? –