Re: Nitra-C# и Nitra-Nemerle
От: STDray http://stdray.livejournal.com
Дата: 28.01.16 22:51
Оценка: 9 (3)
Здравствуйте, VladD2, Вы писали:

VD>Если кто-то хочет поучаствовать в этих проектах, пишите в ответ на это сообщение.


Поучаствовать хочется, но есть сомнения реально ли это потянуть, так как нет знаний
1. предметной области (компиляторостроение)
2. самой nitra

Кроме того, C# — это очень сложный комплексный язык, где одна только спецификация пятой версии занимает более 500 страниц.
Я сомневаюсь, что сейчас можно зайти со стороны, то есть не будучи автором nitra, и начать приносить реальную пользу.

Может, стоит перед тем, как звать людей делать C# и тем более Nemerle 2, нарисовать что-то попроще, чтобы было ясно, по пунктам, как делаются языки с применением nitra? Может, потенциальным участникам стоит сделать с вашей помощью что-то подобное? Это не должно занять много времени, но перспективы участия в разработке C# должны сильно проясниться, я полагаю.

Потом хочется какого-то понимания, как будет устроен процесс работы.
Как будут ставится задачи, кто все это запроектирует, как будет тестироваться, когда и в каком формате будет проходить общение. Опыт этого раздела, например, показывает, что общение выходит достаточно рваным, так как какие-то вполне конкретные предментные вопросы могут оставаться без внимания долгое время.

VD>Со своей стороны мы будем помогать и обучать.


Этого явно недостаточно, я считаю. Если говорить за себя, то не знаю досконально спецификацию C#, читаю IL-код не без проблем и ориентируюсь там в основном по комментариям из-чего он был сгенерирован. То есть даже часть генерации IL, которая не является чем-то nitra-специфичным, выглядит для меня сложно.

Я могу представить сценарий, когда некто, разбирающийся в данной области сделает каркас, а потом нарежет большой объем сравнительно простой механической работы на маленькие куски и пояснит, как их реализовывать. Тогда можно вложить в это свое время и понемногу раскурить предметку. Вариант, что все соберутся и начнут что-то осмысленное делать, периодически обращаясь к вам за вопросами, я как утопичный даже не рассматриваю.

И, наконец, в gitter-конференции (где по какой-то причине нет никого из ведущих разработчиков языка) обсуждался вопрос целесообразности воспроизведения Nemerle на nitra в его текущем виде. Вот только несколько тем:
— option как значимый тип и его поддержка в компиляторе
— non-nullable types
— методы расширения в стиле F# (обсуждалась поддержка свойств и расширения для статических классов)
— захардкоженные конвенции (невозможно называть типы с маленькой буквы, например)
И далее в таком духе. Это как дискуссия про nemerle base-level, только вместо фатального неприятия C#-программистами when вместо if, обсуждались чуть другие вещи.

Я понимаю, что перспективы Nemerle 2 еще более туманны, чем воспроизведенного на nitra C#, но есть ощущение, что именно это и привлекает внимание людей. У C# сейчас всё хорошо — есть кроссплатформенный roslyn, core clr, ahead of time компиляция в нативный код и тд. И лично меня не сильно интересует воспроизведение C# со всеми его недостатками, которые тянуться со времен первой версии. Полагаю, что я не один такой.

Это вопрос мотивации, потому как люди понимают, что сейчас какие-то вещи сделаны в C# или F# более оптимально чем в Nemerle. А есть еще и опыт других языков. И нужно, во-первых, понимание, какие задачи стоят в разработке Nemerle 2 (nitra в качестве подсистемы макросов здорово, но либо хочется еще профитов, либо нет понимания, к чему это ведет), во-вторых, открытая дискуссия по этим задачам. Было предложение создавать issue с proposal'ами в репозитории текущего Nemerle, но, имхо, это писать в никуда.

Резюмирую:
— надо потренироваться на кошках, перед тем как браться за C#
— надо определить архитектор(а/ов) / ведущещ(его/их) разработчик(а/ов)
— надо напилить маленьких понятных задач
— надо обсуждать перспективы языка, которому посвящен раздел

Это не требования, но без этого что-то поднять будет сложно, на мой взгляд. Потому как я, использующий в Nemerle в продакшене разработчик, на текущий момент более заинтересован в улучшении качества инфраструктуры и компилятора текущего Nemerle, чем в трате времени создание кальки на C# или тот же самый текущий Nemerle. Никто ведь не объяснил внятно, зачем и кому нужен расширяемый C# на nitra и переписанный Nemerle.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.