How to popularize Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.12 19:52
Оценка: :)
http://programmers.stackexchange.com/questions/140311/how-to-popularize-nemerle-or-another-programming-language/140333#140333
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: How to popularize Nemerle
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.03.12 22:18
Оценка: 1 (1) :)
Здравствуйте, VladD2, Вы писали:

VD>http://programmers.stackexchange.com/questions/140311/how-to-popularize-nemerle-or-another-programming-language/140333#140333


Вопрос закрыли как неконструктивный
Re: How to popularize Nemerle
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 19.03.12 06:34
Оценка: +1
Там правильно ответили: берите пример с похожих по статусу языков (которые не были созданы и поддержаны большими корпорациями, но заслужили популярность), например с Руби.

Это значит:
1) Наличие внятной и удобной документации на английском. В этом смысле в Руби была очень классная утилита — fxri — смесь браузера по документации по классам/методам и REPL'a.

2) Книги, учебники! Если нет англоязычной книжки, которую можно скачать/купить, сесть, прочитать и вдохновиться/начать писать, ничего не сдвинется.

3) Killer-app. У Руби это рельсы, у Эрланга — какой-то маршрутизатор, который мало кто видел, но про чудодейственные свойства которого эрлангисты все уши прожужжали. А что у Немерле, кроме своего компилятора (ибо компилятор за killer-app не считается, как бы крут он не был)?

4) Сайты для community, где люди могут все обсуждать и делиться библиотеками. Русскоязычный форум и набор ссылок на гитхаб не катят.
Re[2]: How to popularize Nemerle
От: _d_m_  
Дата: 19.03.12 07:32
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Это значит:

DM>1) Наличие внятной и удобной документации на английском. В этом смысле в Руби была очень классная утилита — fxri — смесь браузера по документации по классам/методам и REPL'a.

Да! Этого очень не хватает.

Вот например над этим я медитировал очень долго:
RunAdder(x : int) : void
{
  def InnerFunc1(x : int, y : int) : int
  {
    x + y
  }

  def InnerFunc2 = InnerFunc1(x, _);

  System.Console.WriteLine("{0}", RunTwice(InnerFunc2, 3));
}

Сполшные х х и откуда какой сразу нереально въехать.
Да и вообще эта черточка реально греет

DM>2) Книги, учебники! Если нет англоязычной книжки, которую можно скачать/купить, сесть, прочитать и вдохновиться/начать писать, ничего не сдвинется.


DM>3) Killer-app. У Руби это рельсы, у Эрланга — какой-то маршрутизатор, который мало кто видел, но про чудодейственные свойства которого эрлангисты все уши прожужжали. А что у Немерле, кроме своего компилятора (ибо компилятор за killer-app не считается, как бы крут он не был)?


DM>4) Сайты для community, где люди могут все обсуждать и делиться библиотеками. Русскоязычный форум и набор ссылок на гитхаб не катят.


5) Интеграция с VS с человеческим лицом.
Re: How to popularize Nemerle
От: _Claus_  
Дата: 19.03.12 08:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://programmers.stackexchange.com/questions/140311/how-to-popularize-nemerle-or-another-programming-language/140333#140333


Для этого надо понимать, среди кого хотим популяризовать.
а) среди абстрактных программистов (а-ля вакуумные кони)
б) бизнес-апп программисты
в) системные программисты
г) программисты — исследователи (математики, физики, ИИ-исследователи, XXX-исследователи)
д) начинающие программисты, (школьники), которым нужно с мин. усилием въехать в предмет.

Каждая из этой категории имеет существенно разные потребности на "что есть фантастиш",
и для каждой из них, кроме а) , нужна своя стратегия продвижения и свои "заманухи".
Например, для д) на данном этапе язык не подходит вообще. однако если ее заинтересовать на 10-15%,
будущее у Н наверняка будет. для д) нужно сделать режим прототипирования, когда код выглядит как
руби-питонный, но автоматически, утилитой, может быть конвертирован в "стандартное" представление,
если им оно когда — то понадобится. убрать все уши C# .Net. компилятор не должен требовать всякий бред,
диктуемый платформой и прошлым Н. визуализировать ход выполнения в 3d виде.

и т. п. по каждой категории
Re: How to popularize Nemerle
От: matumba  
Дата: 19.03.12 13:23
Оценка: +1
Здравствуйте, VladD2, Вы писали:

Влад, на это давалось уже сотню ответов (в пустоту?)

Он сам по себе станет популярен, если вы сможете внятно изложить, чем он конкретно делает жизнь лучше.
Показывать огонь дикарям — бессмысленно, потому что они не понимают, что им можно греться, готовить еду, делать копья и т.п. Нужно на конкретных, жизненных примерах показать, чем он лучше. Ответы а-ля "смотри исходники компилятора" бесполезны — они выглядят как отмазка, сложны для начинающих и главное — они для компилятора! Вот сделайте хотя бы "морду к базе", но так, чтобы в трёх красивых строках создавалась бизнес-сущность, её CRUD и формы для списка/редактирования! Это намного интереснее для любого класса программистов. А по виду этих примеров будет ясно, это преимущество или "те же яйца, но в макросах". Или вот макры — чем они лучше T4? (вариант — "чем #define")
А ещё у меня до сих пор непонятки с Variant — из "Варианты (variants) – это мощный, универсальный тип данных в Nemerle" понятно ровно 0%. Это точно не перечисление, потому что перечисление — это как бы массив однородных констант. Тут уместнее обратиться (наверное) к union из Си? (а не "Варианты – это аналог алгебраических типов" — хоть 1% знает ЧТО это такое?) Тут требуется более "физическое" пояснение (не на сорсах, естественно!)
Пять простых примеров скажут больше, чем сотни статей "Чем гениальны макросы Немерли".

Ну и не ошибусь, если скажу — синтаксис этих макр (как главной фишки, которую все захотят) несколько не идеальный. Вам придётся сильно почесать затылок, чтобы код на макрах не был похож на календарь майя.
Ну и примеры — тоже чем проще, тем лучше. Скажем, макрос for(;) — нужно его написать как "чайник", а потом постепенно улучшать до профессиональной макры.

PS
Из личного опыта от Немерле поимел удобные $"" строки. Пока всё.
Re[2]: How to popularize Nemerle
От: Аноним  
Дата: 19.03.12 17:13
Оценка: 51 (1)
Здравствуйте, matumba, Вы писали:


M>А ещё у меня до сих пор непонятки с Variant — из "Варианты (variants) – это мощный, универсальный тип данных в Nemerle" понятно ровно 0%. Это точно не перечисление, потому что перечисление — это как бы массив однородных констант. Тут уместнее обратиться (наверное) к union из Си? (а не "Варианты – это аналог алгебраических типов" — хоть 1% знает ЧТО это такое?) Тут требуется более "физическое" пояснение (не на сорсах, естественно!)


в этом году введут алгебраические типы данных в 1с. Так что знать их будут до хрена прогеров
Re[2]: How to popularize Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.03.12 18:10
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>Вопрос закрыли как неконструктивный


Я вот не пойму, ты на этот форум позлорадствовать ходишь?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: How to popularize Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.03.12 18:22
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Это значит:

DM>1) Наличие внятной и удобной документации на английском. В этом смысле в Руби была очень классная утилита — fxri — смесь браузера по документации по классам/методам и REPL'a.

Вообще-то есть удобная IDE. Документация по классам доступна на МСДН. Для того же C# все то же самое. Учитывая его популярность, думаю мало кто возьмется спорить, что популярность C# проистекает далеко не из-за одних только документации и тулов.

DM>2) Книги, учебники! Если нет англоязычной книжки, которую можно скачать/купить, сесть, прочитать и вдохновиться/начать писать, ничего не сдвинется.


Учебных материалов наверно меньше чем для руби, но все же их более чем достаточно для освоения языка.

DM>3) Killer-app. У Руби это рельсы, у Эрланга — какой-то маршрутизатор, который мало кто видел, но про чудодейственные свойства которого эрлангисты все уши прожужжали. А что у Немерле, кроме своего компилятора (ибо компилятор за killer-app не считается, как бы крут он не был)?


Ну, для кого-то киллером является и сам компилятор или PegGrammar. А кто-то вообще не хочет видеть никаких достижений Н. Причем из принципа.

DM>4) Сайты для community, где люди могут все обсуждать и делиться библиотеками. Русскоязычный форум и набор ссылок на гитхаб не катят.


Есть форум. Есть сайт с материалами. С недавних пор есть набор примеров.

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

В общем, создание фонового шума.

Из материалов, нужно подготовить и опубликовать переводы Языка Немерле. Переводы первых глав сделаны, но их бы еще вычитать нэйтив-спикерам и людям в знакомым с Н.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: How to popularize Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.03.12 18:34
Оценка: :)
Здравствуйте, matumba, Вы писали:

M>Из личного опыта от Немерле поимел удобные $"" строки. Пока всё.


matumba, твоя объективность и конструктивность давно стали притчей во языцех.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: How to popularize Nemerle
От: matumba  
Дата: 20.03.12 08:04
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>matumba, твоя объективность и конструктивность давно стали притчей во языцех.


Никто не мешает тебе видеть людей так, как тебе хочется. Это ТЫ проигрываешь, игнорируя их реальные качества.
По предложениям комментарии есть?
Re: How to popularize Nemerle
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.03.12 08:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://programmers.stackexchange.com/questions/140311/how-to-popularize-nemerle-or-another-programming-language/140333#140333


Вставлю свои 0.02 cents.

Нужно четко обозначить нишу для которой Nemerle будет идеальным вариантом (это при том, что я отлично понимаю, что Nemerle точной такой же general purpose language как и C#/Java).

Например, Си является лучшим вариантом для низкоуровневого программирования, программирования разных микроконтроллеров, критичных к скорости участков кода и для real-time систем. Это его ниша и он ее давно и прочно занял. Ядра ОС, драйвера и прочие системные вещи.

C++ является немного доработанным вариантом Си, который подходит для более крупных проектов, но все еще критичных к скорости программ и все еще близкого к машине низкоуровневого программирования. Его ниша четко обозначена, всякий real-time, движки баз данных, 3D движки и т.д.

C#/Java у них тоже есть своя ниша, в основном это корпоративный софт, автоматизация и т.д. Высокоуровневые языки, довольно производительные но в силу своей природы (GC) не подходящие под real-time и низкоуровневое программирование.

Python/Ruby — скриптовый и динамически типизированные языки, очень гибкие инструменты. На них можно быстренько написать небольшие скрипты автоматизирующие всякую рутину. В основном применяются в веб-приложениях.

Теперь, что касается Nemerle, то по логике, его ниша полностью совпадает с нишей C#'а. Это и есть на мой взгляд самый болшой камень преткновения. Конкурировать с флагманским языком корпорации Майкрософт может и можно было бы. Но опыт показывает, что это бесполезно. Я при этом понимаю, что Nemerle является гораздо более мощным языком по сравнению с C#'ом. Но проблема состоим в том, что C# для большинства задач и так довольно хорош. По той же причине, народ не переходит на более совершенную версию Python 3.x. Т.к. версия Python 2.x хоть и имеет определенные недостатки, но в свою очередь он является достаточно хорошим инструментом.

Думаете, не было языков лучше, чем Си? Наверняка были. Где они теперь? Ответ вы уже должны знать.
Думаете, не было языков лучше, чем C++? Были и есть. Где они теперь? Ответ понятен.

Но что можно сделать, чтобы все же популяризовать Nemerle?
Нужно найти для него нишу и killer-app для этой ниши. В которой не будет конкурентов или конкуренция будет такой, что Nemerle предложит то, чего нет у аналогов.
Возьмем например нишу scientific calculations. В этой нише доминирует связка Python + NumPy + SciPy (matlab хорош, но вроде за него нужно выложить $5k). У нее есть один недостаток, это низкая производительность (как и у matlab). Вот если написать очень удобные библиотеки (возможно применяя всю мощь метапрограммирования) аналогичные NumPy & SciPy, то можно было бы занять лидирующие позиции в этой нише.

Затем, можно подумать о следующей какой-нибудь нише. Так и до мирового господства не далеко
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[3]: How to popularize Nemerle
От: _ABC_  
Дата: 20.03.12 09:06
Оценка:
Здравствуйте, VladD2, Вы писали:

Слушай, ты зачем людей спрашиваешь, если у тебя есть свое правильное мнение и мнение остальных, которое тебе не интересно?

VD>Учебных материалов наверно меньше чем для руби, но все же их более чем достаточно для освоения языка.

Достаточно, если очень-очень надо/хочется освоить Н. Вопрос только в том, кому очень-очень надо/хочется? Только будь объективен при ответе самому себе. Рассказами о сверхудобных, изящных и красивых ЯП полон интернет. Нужно не просто предоставить документацию, достаточную для освоения языка. Нужна такая документация, которая заинтересует человека изучить языкю

Одно дело вики, в которой статьи устарели, написаны корявым языком и содержат сомнительного качества примеры. Книга хорошего качества же это совершенно другой уровень, просто психологически даже. Причем вовсе не обязательно именно о самом языке. Возможно, что книга посвященная какой-то прикладной области, в которой проблемы решаются при помощи Немерле будет очень даже хорошим популяризатором языка. Хотя лучшим решением была бы серия книг, включающая в себя описание языка и книги, посвященные прикладным темам.

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

VD>Ну, для кого-то киллером является и сам компилятор или PegGrammar.

Для кого? Достаточно ли этих "кого-то" для популяризации языка?

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

Книга была бы отличным поводом для тем, между нами говоря. А создавать искусственные темы на ресурсе, призванном решать реальные проблемы, мягко говоря некрасиво.

VD>Приведение красивых решений на Н в ответ на вопросы не касающиеся напрямую Н и т.п.

Ну и скольким людям будет интересно "красивое решение" непонятно на чем, даже если они и смогут оценить красоту?

VD>В общем, создание фонового шума.

Ну, плоды информационного шума можно наблюдать на этом сайте. С вашими талантами пропагандиста рискуете приобрести уже всемирную известность надоедливого клоуна.
Re[2]: How to popularize Nemerle
От: _Claus_  
Дата: 20.03.12 11:13
Оценка:
___>Нужно найти для него нишу и killer-app для этой ниши. В которой не будет конкурентов или конкуренция будет такой, что Nemerle предложит то, чего нет у аналогов.

не будет конкурентов — чтоб наверняка. иначе сомнительно.

___>Возьмем например нишу scientific calculations. В этой нише доминирует связка Python + NumPy + SciPy (matlab хорош, но вроде за него нужно выложить $5k). У нее есть один недостаток, это низкая производительность (как и у matlab). Вот если написать очень удобные библиотеки (возможно применяя всю мощь метапрограммирования) аналогичные NumPy & SciPy, то можно было бы занять лидирующие позиции в этой нише.


тупик, как по мне, ибо плотно занято, а производительность для академ. приложений вопрос не главный.
надо такое, чтобы всем нужно было и интересно, и перспективно, и отсутствовало на данный момент. web-фреймворк на N будет интересен только пользователям N. и то не всем. я предлагал ответ, но никто и бровью не повел, из чего следует, что страшно далеки мои мысли от народа.
а жаль, ибо связка 3d web + Nemerle не только удовлетворяет всем пунктам в разделе Web.X сколковского сайта, но и всем подпунктам.
да и тема прикольная сама по себе. такой не нудно заниматься.
Re[4]: How to popularize Nemerle
От: _Claus_  
Дата: 20.03.12 11:44
Оценка:
VD>>Ну, для кого-то киллером является и сам компилятор или PegGrammar.
_AB>Для кого? Достаточно ли этих "кого-то" для популяризации языка?

Этого могло бы быть достаточно, если б другие языки плохо умели или не умели создавать DSL-и.
у N есть убойная фишка, которая, впрочем почти не используется. можно компилятор N маленькими и простыми шажками превратить в компилятор чего угодно.
Теоретически. На практике этому мешают особенности парсера и неучет этого в архитектуре компилятора. Мне кажется это поправимым неучетом.
Зато идея переключится сейчас на N2, — ИМХО, откровенный суицид проекта.
Re[5]: How to popularize Nemerle
От: Аноним  
Дата: 20.03.12 12:40
Оценка:
Здравствуйте, _Claus_, Вы писали:


VD>>>Ну, для кого-то киллером является и сам компилятор или PegGrammar.

_AB>>Для кого? Достаточно ли этих "кого-то" для популяризации языка?

_C_>Этого могло бы быть достаточно, если б другие языки плохо умели или не умели создавать DSL-и.

_C_>у N есть убойная фишка, которая, впрочем почти не используется. можно компилятор N маленькими и простыми шажками превратить в компилятор чего угодно.
_C_>Теоретически. На практике этому мешают особенности парсера и неучет этого в архитектуре компилятора. Мне кажется это поправимым неучетом.
_C_>Зато идея переключится сейчас на N2, — ИМХО, откровенный суицид проекта.

проблема проекта в том что проблемы N1 уже фактически не преодолимы.
Re[6]: How to popularize Nemerle
От: _Claus_  
Дата: 20.03.12 13:30
Оценка:
А>проблема проекта в том что проблемы N1 уже фактически не преодолимы.

Шутить изволите! или что-то самому преодолеть не получилось?
Re[2]: How to popularize Nemerle
От: matumba  
Дата: 20.03.12 13:57
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>... Nemerle, ... его ниша полностью совпадает с нишей C#'а. Это и есть на мой взгляд самый болшой камень преткновения. Конкурировать с флагманским языком...


Тут всё не так однозначно. Ведь выбились же всякие пестоны, похапэ, руби, хотя ИТ просто кишит всякими "суперязыками"! Тот же Руби — "причёсанный ООПерл", хотя перловодам он нафик не упёрся. Похапе — вообще брат-уродец от Перла, популярность которого не объяснима ничем разумным.

Немерля — она идеологический конкурент, но практически M$ её даже не замечает. Поэтому "тихой сапой" продвигать Н можно вполне успешно. Другой вопрос, нужны ли они — эти "макры"! мракоязыки на их основе)
Какое-то макропрограммирование среднего уровня безусловно нужно, но влезать во всякие АСТ, что-то там менять/удалять... по-моему, немерлисты так поднялись в облака, что позабыли квалификацию и потребности среднего программиста — НЕ НУЖНЫ ему эти макры — ему нужен мощный функционал. А функционал — он хоть из макр, хоть из библиотек — БЕЗ РАЗНИЦЫ, лишь бы решал задачи.
А замахиваться на универсальный конструктор компиляторов — так вообще рот порвать можно! Скромнее надо, тогда ПРИ ЖИЗНИ можно добиться практических результатов.
Re[7]: How to popularize Nemerle
От: matumba  
Дата: 20.03.12 14:05
Оценка:
Здравствуйте, _Claus_, Вы писали:

А>>проблема проекта в том что проблемы N1 уже фактически не преодолимы.


_C_>Шутить изволите! или что-то самому преодолеть не получилось?


Claus, ты-то уж должен знать, что Н1 не поддерживает _любые_ синтаксические конструкции! Помню, что-то там было с for(;) — я хотел сделать упрощённый вариант и не срослось что-то с точкозапятыми.
А ещё раздражает точка перед скобками массива — вообще какой-то аппендикс! А что не красиво эстетически, не может быть гениальным.
Re[3]: How to popularize Nemerle
От: Аноним  
Дата: 20.03.12 14:17
Оценка: +1 :)
Здравствуйте, matumba, Вы писали:


M>Какое-то макропрограммирование среднего уровня безусловно нужно, но влезать во всякие АСТ, что-то там менять/удалять... по-моему, немерлисты так поднялись в облака, что позабыли квалификацию и потребности среднего программиста — НЕ НУЖНЫ ему эти макры — ему нужен мощный функционал. А функционал — он хоть из макр, хоть из библиотек — БЕЗ РАЗНИЦЫ, лишь бы решал задачи.

что позабыли квалификацию и потребности среднего программиста — НЕ НУЖНЫ ему эти макры — ему нужен мощный функционал. А функционал — он хоть из макр, хоть из библиотек — БЕЗ РАЗНИЦЫ, лишь бы решал задачи.

Тут ты себе противоречишь: функционал у тебя весь тот же, что и у шарпа. Любая assembly подключается и работает с Н.
Плюс еще функционал, которого нет в шарпе, в виде все тех же макросов и паттернматчинга.

M>А замахиваться на универсальный конструктор компиляторов — так вообще рот порвать можно! Скромнее надо, тогда ПРИ ЖИЗНИ можно добиться практических результатов.

У разработчиков Н преимущество. Они то не в курсе, что это невозможно. Возьмут и сделают.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.