Re[2]: Вопрос к Vlad2: Nemerle & R#
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.03.06 21:36
Оценка: +3
Здравствуйте, AleXXus, Вы писали:

AXX>А вот то, что разошелся такой внушительный спор, мне например несколько не понятно. (ну т.е. все таки понятно, с одной стороны , bigger longer and uncut хочет доказать, что Nemerle никакой не ФЯ, т.е. доказать то, чего никто и не утверждал , а VladD2 пытается ему это объяснить, — что мол не стоит опровергать то, чего никто и не говорил (по крайней мере он сам)).


В общем, да. То что такое Немерле прекрасно сказано на заглавной странице его сайта:

Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system.

Превод.

Nemerle — это высокоуровневый, статически-типизированный, язык программирования для платформы .NET. Он предлагает функциональные, объектно-ориентированные и императивные возможности. Он имеет простой похожий на C# синтаксис и мощьную подсистему метапрограммирования.

То есть, ежу понятно, что это не ФЯ, а гибрид поддерживающих разные парадигмы.

AXX>Да, безусловно есть задачи где нужен истинный ФЯ и никто и не суется туда с тем же шарпом, равно как и есть задачи где ФЯзыкам делать нечего (как уже было тоже сказано), соль в том, что в последнее время в мэйнстриме все меньше места ФЯ, но оно есть... И если попробовать охватить широким взглядом этот самый мэйнстрим — то может показаться, что ФЯ несправедливо (ну или почти) несколько позабыты что-ли...


Вот тут не согласен. Во-первых, на истинном ФЯ получить значимых приемуществ не удастся. А, во-вторых, как на ФЯ, так и на ИЯ можно решать практически любые задачи. Ну, а на гибридном языке уж точно. У Немерле есть области для которых он явно не преспособен. Они простикают из его характеристик — типобезопасность (а значит все рулезка битами идет лесом), основа на платформе .NET. В остальном это язык общего назначения.

AXX>Так вот имхо Nemerle как раз и создан для того, чтобы перекрыть точку соприкосновения что-ли этих двух разных областей.


Я бы скзал, Nemerle позволяет свести многие достижения "язкостроителей" в одном языке. Он позволяет мэйстриму задействовать метапрограммирование и функциональную парадигму там где это даст нибольший эффект и писать остальное в ООП стиле, если это удобнее или просто привычнее.

AXX>Влад на мой взгляд попал в точку, заметив:

AXX>

AXX>Как приятный бонус я ей рад. Но как единственно-верное учение — увольте.


AXX>Это о возможности писать в функциональном стиле... и ведь верно, очень хорошо, что я могу не меняя язык, писать, как в одном стиле, так и в другом. И именно в этом прелесть Nemerle, а не в том, что он в плане функционального программирования лучше любого ФЯ (он не претендует на это звание)


Именно! Да я и не говорил, что Nemerle лучший ФЯ. Я скзал, что он позволяет писать в функциональном стиле не хуже чем любой ФЯ. Карринг это пожалуй единственная фича отсуствующая в Nemerle, но ее ведь нет и в Лиспах.

AXX> или что он в плане ООП лучше любого ОО языка (на это он тоже, как я понимаю, не претендует... хотя я могу и ошибаться ).


Так и есть. Он практически аналогичен C# 2.0 с точки зрения ООП. Но вот поддержка метапрограммирования позволила ввести в Nemerle такие приятные бонусы как Traits. А это уже явно больше чем C#. Но есть ли в этом заслуга именно поддержки ООП? Я думаю — это заслуга грамотности проектирования языка.

AXX> А вот на что он претендует, так это на то, что один единственный такой... и Влад, говоря о том, что очень может статься так, что он займет очень большую нишу в мэйнстриме, как мне кажется имел ввиду именно эту его особенность, а не то, что он лучше любого ФЯ.


Я бы сформулировал это так... Nemerle, как и любой другой язык — это набор сдержек и противовесов. Другими словами компромисов. Но эти компромисы в нем настолько хорошо сбалансированы, что язык вполне способен стать новым лидером мэйнстрима. То есть отесть рэнок у C++, Java и C#.

Безусловно он врядли сильно изменит рынок ФЯ. Но этот рынок и так в микроскоп не заметить.

Более того большинство программистов вряд ли перйдут на ФЯ. Или этот процесс буде очень долгим. А на Nemerle спокойно. Ведь они по сути останутся в своей родной среде и как бонус получат возможность изучить и использовать то, что раньше им казалось непонятным и странным.

Те же кто уже знаком с непонятным и странным сможет воспользоваться отличной поддержкой ООП, компонетной парадигмы и огромным числом библиотек от дотнета.

Ну, что в этом может быть плохого?

AXX>Ну и если уж совсем абстрагироваться от языков, то как мне кажется всем известно, что абсолютной панацеи не бывает...


Естественно. Но лидеры индустрии все же есть. Сегодня их завут Java, C++, VB и C#. Все эти языки явно проигрывают Nemerle по выразительности и простоте реализации сложных вещей. Так почему бы им хотя бы не подвинутся?

AXX>И в Nemerle конкретно, мне нравится именно то, что он позволяет писать и в том и в другом стиле — раз.


И мене. Причем этот лозунг я слышал по отношению к С++, но чувствовал, что это именно лозунг. Так как реально выбор парадигмы в нем очень сильно ограничен. Только императивная и ОО состовляющие действительно находятся на высоке. Потуги писать в функциональном стиле или заниматься метапрограммированием сопряжены с огромным количеством проблем.

AXX>Плюс позволяет делать то, для чего делался R# — два.


+1

AXX>Ну и просто на выходе можно получить стандартную дот нет сборку, которую как я понимаю можно использовать из того же шарпа или бэйсика.нет если в этом есть необходимость.


Ага. Более того, я уверен, что не проблема сделать так, чтобы в одном проекте можно было держать и файлы Немерла и файлы Шарпа. Ведь конвертировать Шарп в немерле не проблема! А значит можно на первых порах обойти многие проблемы. Например, дизайнер форм пока не умеет работать с Немерле.

Более того, можно даже сделать еще более забавное решение. И C# 2.0, и Nemerle поддерживают partial-классы. Так вот можно сделать так, чтобы одна часть класса была на C#, а другая на Nemerle.

AXX>И уже этого, больше чем достаточно для того, чтобы Nemerle занял очень большую нишу (возможно откусив ее у других языков).


К сожалению, одного этого явно недостаточно. Кроме этого нужны:
1. Качестванная реализация, т.е. отсуствие глюков при отладке, вылетов компилятора, наличие внятных сообщений компилятора.
2. Интеграция с IDE. Хотя бы интелисенс и навигация. Ну, если была бы поддержка рефакторинга и дизайнеров — это вообще было бы здорово.
3. Промоушен. Ну, или если хотите пиар. Без него о Nemerle просто никто не узнает.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.