Re[18]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 16:03
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>Я тебе написал много чего по делу.


Мне твои писания на фиг не упали. Я и сам могу много хорших планов и идей написать.

Мне помощь нужна. Вот в том же пиаре.

Сколько раз тебе говорить?... Неравнодушен к проекту? Видишь проблемы? Присоединяйся и помоги их исправить.

То что я могу я делаю.

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

Твичу по мере продвижения. Твитить о каждом комите смысла не вижу.

Пишу статьи которые является документацией и одновременно средством популяризации. По мере приближения к релизному состоянию буду пытаться больше писать.

Считаешь, что этого недостаточно? Присоединяйся и помогай. Я больше уже физически не могу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 16:10
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>linq это имелось ввиду query comprehension, а не сама либа. Полагаю, "идентичная реализация" это костыли в Немерле которые планируется убрать в ближайшие годы ?


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

Я правильно понимаю, что это то преимущество, которое предопределило успешность шарпа?

I>Полноценный вывод типов это пока единтсвенный аргумент в твою пользу.


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

I>Похоже ктото не удосужился посмотреть, что же он пишет

I>"в точности такой набор фич"

Назови мне что-то что будет в C# 7.0 и чего не было в Nemerle 0.3.

Фейспалмщиг фигов.

I>"с практически идентичной реализацией"

I>И вот оказывается, и фичи были другими, и никакой идентичной реализации не было

Оказывается, что ты так хочешь доказать свою правоту, что полностью не способен на объективность. Мне это не интересно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 16:20
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Ибо как только у тебя в языке появляются зависимости, которые нужно обрабатывать не в порядке парсинга то всё. Акшены не работают.


+1

Именно по этому в последних версиях ANTLR-а сделана поддержка автоматического формирования дерева разбора в котором поддерживается паттерн "Посетитель", а автор советует использовать именно этот подход.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Липперт упоминает Немерле
От: WolfHound  
Дата: 25.11.15 16:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Именно по этому в последних версиях ANTLR-а сделана поддержка автоматического формирования дерева разбора в котором поддерживается паттерн "Посетитель", а автор советует использовать именно этот подход.

На посетителе тоже далеко не уедешь. Много на наших волкерах можно сделать?
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 19:20
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>На посетителе тоже далеко не уедешь. Много на наших волкерах можно сделать?


Практически что угодно. Это же базовый механизм посещения узлов дерева! Обходи дерево 100500 раз и считай (вручную) все что хочешь.

Вопрос только в сложности реализации.

Собственно нитровские DSL-и маппинга и типизации всего лишь упрощают и систематизируют этот процесс. Но упрощают настолько радикально, что из неподъемной задачи на 10 человеколет она превращается в задачу на 1-2 человекомесяцев и снижает требования к квалификации программиста. А, так все можно сделать "Посетителем" .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Липперт упоминает Немерле
От: WolfHound  
Дата: 25.11.15 19:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Практически что угодно. Это же базовый механизм посещения узлов дерева! Обходи дерево 100500 раз и считай (вручную) все что хочешь.

Я не спорю с тем, что всё можно написать на машине Тьринга.
Только объём работы будет за гранью добра и зла.
А если объём работы начинает превышать некий придел, то задача становится нерешаемой.

VD>Собственно нитровские DSL-и маппинга и типизации всего лишь упрощают и систематизируют этот процесс. Но упрощают настолько радикально, что из неподъемной задачи на 10 человеколет она превращается в задачу на 1-2 человекомесяцев и снижает требования к квалификации программиста. А, так все можно сделать "Посетителем" .

Во-во. Кто не верит, пусть попробует типизировать C# посетителем.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 19:44
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Только объём работы будет за гранью добра и зла.


Я об этом парой строк ниже и написал.

WH>А если объём работы начинает превышать некий придел, то задача становится нерешаемой.


Есть такое дело.

WH>Во-во. Кто не верит, пусть попробует типизировать C# посетителем.


Ну, вот Майкрософту и ДжетБрэйнсу это удалось. Вопрос только какими силами и какие силы нужны на поддержку этих решений. Впрочем пока у них есть на это ресурсы (доход от продуктов), то им по фигу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.15 20:13
Оценка:
Здравствуйте, xvost, Вы писали:

X>Вот, допустим, завтра к вам в команду придёт PMM. Какие задачи ты будешь ему ставить? Что он будет делать?


К сожалению, не придет.

А задачи я бы с ним сам и сформулировал.

Исходный послы таковы.
Имеем продукт предназначенный для разработчиков которые хотят:
1. Создавать языки.
2. Расширять имеющиеся языки.
3. Создавать SDL-и (как встраиваемый в другие языки, так и оформляемые в виде отдельных форматов файлов) интегрирующиеся с языками программирования общего назначения.
4. Которые хотят повысить уровень абстракции в своей прикладной области, получить более интегрированные фрейворки и уменьшить объем кода необходимый для решения их задач и которых ограничивают рамки современных языков программирования общего назначения.

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

Для писателей расширений предлагается легко создавать расширения (синтаксические и/или семантические) к имеющимся языкам (например, C# или Nemerle).

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

Короче, определение конкретных действий сама по себе отдельная и не простая задача.

До конца кода то что у нас есть будет доступно в галереях NuGet-а и плагинов ReSharper-а. Собственно нужно подтолкнуть народ к их изучению и сделать так, чтобы люди не ушли ничего не поняв.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Липперт упоминает Немерле
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.11.15 21:00
Оценка:
Здравствуйте, VladD2, Вы писали:

I>>linq это имелось ввиду query comprehension, а не сама либа. Полагаю, "идентичная реализация" это костыли в Немерле которые планируется убрать в ближайшие годы ?


VD>Т.е. синтаксис? Он просто особо никому не нужен.


Твои сведения устарели лет на 5. Это раньше его не пользовали. А потом постепенно распробовали и сейчас это норма. Что собтсвенно и показывает, с какой скоростью массы осваивают даже простейшее кунгфу.

I>>Полноценный вывод типов это пока единтсвенный аргумент в твою пользу.


VD>Тебе просто очень хочется игнорировать другие. Тот же паттерн матчинг в Немерле начиная с 2003-го года. Но тебе на это плевать.


Паттерн матчинг не пролез ни в один мейнстримный язык. Ты сам то понимаешь ?

I>>Похоже ктото не удосужился посмотреть, что же он пишет

I>>"в точности такой набор фич"

VD>Назови мне что-то что будет в C# 7.0 и чего не было в Nemerle 0.3.


Слова "в точности" и "идентично" имеют определенный смысл, который в твоей интерпретации отсутствует.

Я не удивлюсь, если вдруг окажется, что подобие матчинга в стейтменте catch() ты назовёшь "взяли из немерла"

Кстати, дарю идею — берём какой нибудь древний язык, декларативный, что бы было подобие query , называем его прото-Немерле, вуаля — query comprehension позаимствован из Немерле !!!!111расрасодинодин
Re[14]: Липперт упоминает Немерле
От: novitk США  
Дата: 25.11.15 23:05
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, novitk, Вы писали:


N>>В ANTLR можно делать все через actions. Хотя это и менее элегантно и декларативно, чем ваши "зависимые свойства".

WH>Это было в Nemerle.Peg
WH>https://github.com/rsdn/nemerle/blob/master/snippets/peg-parser/Json/Nemerle.Json/JsonParser.n
WH>Сделать на этом можно очень не много. На практике ничего сложнее построения АСТ акшены не могут.
WH>Ибо как только у тебя в языке появляются зависимости, которые нужно обрабатывать не в порядке парсинга то всё. Акшены не работают.

Строишь в акшинах pull-based data flow и вперед. Вы же так и делаете в вашем DSL?
Re[6]: @VladD2
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.11.15 11:55
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Влад, ты этому сообщению поставил минус. Можешь объяснить, в чем novitk неправ?


N2 это раннее название для Nitra. Nemerle 2 будет сделан на Nitra.

В Скале нет очень многого что мы хотим сделать в Nitra и результаты чего будут доступны в Nemerle 2, а так же в расширяемом C# и в кучи других языков, которые можно поднять на Nitra.

Автор эти строк просто не понимает о чем он ведет речь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.11.15 12:01
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I> Зайди в репу Немерле и ты по пальцам сосчитаешь эту кипящую массу. Когда есть реальная масса этузиастов и она реально кипит, то стастистика коммитов выглядит совершенно иначе.

I>Следовательно в Немерле мы видим чтото другое, не массы и не кипение.

Дык, ты заходи в рапозиторий Nitra. Там сейчас куется будущее Nemerle и многого другого.

Сам язык давно стабилен и не требует расширений. Те недостатки, которые есть у текущей реализации устранить эволюционным путем. Ну, а для революционного пути делается Nitra.

I>Уже 10 лет подобных лозунгов.


10 лет лозунгов — это про Майкрософт. Причем сначала это лозунги "это не надо, это слишком сильная пушка", потом молчание, а потом "вы этого ждали всю жизнь".

Еще 10 лет трепачи разные бегают и злословят, вместо того чтобы помочь чем-то.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 26.11.2015 14:49 VladD2 . Предыдущая версия .
Re[13]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.11.15 12:05
Оценка: +1
Здравствуйте, novitk, Вы писали:

N>В ANTLR можно делать все через actions. Хотя это и менее элегантно и декларативно, чем ваши "зависимые свойства".


Это из серии — "У нас же есть ассемблер! Значит мы можем решать любые задачи.".

Если бы этих экшенов хватало, то никто бы ни стал городить каких-то Нитр, или даже автоматически генерировать дерево разбора (parse tree), как это сделали в ATNLR 4.0.

У этих твоих экшенов куча минусов:
1. Они гвоздями прибиты к синтаксису.
2. Они вычисляются в определенном порядке (порядке разбора парсером текста).
2. Они вычисляются ровно один раз.

Для современных языков это неприемлемо. В том же C# нужно многократно обходить AST, чтобы вычислить все значения и произвести все связывания.

Наши зависимые свойства позволяют описать всю типизацию любого ЯП. При этом поддерживается расширение языка вплоть до динамического (например, как в Nemerle, с помощью директивы using).

N>P.S. Док очень плохой.


Это ценная информация, но хотелось бы деталей. Пойми, мы в этом деле варимся и глаз замылен.

N>Сделай законченный маленький пример, как в моей ссылке.


В качестве маленького примера можно посмотреть:
https://github.com/JetBrains/Nitra/tree/master/Grammars/NitraMappingSample

Там описывается язык состоящий из переменных и их присвоений. Демонстрируется описание АСТ, маппинг дерева разбора на АСТ, связывание, и другая мелочевка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.11.15 15:53
Оценка:
Здравствуйте, novitk, Вы писали:

N>Строишь в акшинах pull-based data flow и вперед.


Ну, да. Строишь набор ассемблерных инструкций и вперед. Делов то?

Как говорил мой отец — "Трепач находка для шпиёнов.".

Попробуй найти пример таких акшенов.

N>Вы же так и делаете в вашем DSL?


Нет. У нас своя вычислительная модель. Мы не строим полный граф зависимостей в памяти. Вместо этого мы вычисляем все при обходе дерева и мемомизируем результаты на нем. Для оптимизации во время компиляции строится локальный граф зависимостей и вычисления сортируются в соответствии с ним.

Короче, детали реализации не важны. Важно что это быстро и что пользователь пишет декларативный, очень высокоуровневый код не зависящий от порядка вычисления и деталей расположения узлов АСТ друг относительно друга.

В АНТЛР ничего подобного нет даже близко. Там вообще нет ничего связанного с типизацией.

Наш же язык не ограничен одними зависимыми свойствами. У нас есть и объеявление АСТ поддерживающее множественное наследование. И язык отображения (маппинга) данных с дерева разбора на АСТ.

В итоге ты описываешь язык на высокоуровневых ДСЛ-ях, а такие штуки как подсветка и навигация по символам, автодополнение при вводе и прочие IDE-фишки получаются автоматически.

Уж если сравнивать Нитру, то никак не АНТЛР-ом, а с Spoofax или (на худой конец) с Xtext (реализованным на баз того самого ANTLR).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Липперт упоминает Немерле
От: DemonsInside  
Дата: 29.11.15 12:07
Оценка: +1 :))
Здравствуйте, VladD2, Вы писали:

VD>А нытье твое достало. Мне и без тебя сложно.


Мне, человеку со стороны, который только только зашел на форум про Немерле и только на эту ветку, уже так надоело занудство этого Mamut'а. Он твердит одно и то же, одно и то же. Почему бы его просто не забанить?
Re[14]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.15 05:45
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Обозначу свою позицию: на С#, да и вообще под .NET не пишу, так что Немерле мне "не подходит". Но почитать всегда было интересно, да и "взлёту" языка был бы рад, хотя бы потому, что нормальных макросов "в мейнстриме" очень хочется, а успех Немерле был бы движением в эту сторону.


Нитру мы делаем с прицелом на кроскомпиляцию да и на возможную в будущем переносимость.

Собственно тем кому не интересен дотнет может быть интрересно создание бэкэнда для Java или LLVM с последующим портированием на них Nitra и Nemerle.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: @VladD2
От: novitk США  
Дата: 30.11.15 21:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>N2 это раннее название для Nitra. Nemerle 2 будет сделан на Nitra.

Возможно, хотя было бы логично называть N2 использовать для Nemerle 2,учитывая легаси с N1.

VD>В Скале нет очень многого что мы хотим сделать в Nitra и результаты чего будут доступны в Nemerle 2,

Я в курсе, что вы хотите более мощные макросы. Что еще?
Re[16]: Липперт упоминает Немерле
От: novitk США  
Дата: 30.11.15 22:16
Оценка:
Здравствуйте, VladD2, Вы писали:

N>>Строишь в акшинах pull-based data flow и вперед.

VD>Ну, да. Строишь набор ассемблерных инструкций и вперед. Делов то?
Кто сказал про "руками"? Возьму что-нибудь такое https://github.com/akaihola/lusmu
И не надо пожалуйста кидаться, что это Питон и нет DSL. У меня такое есть для Скалы с DSL-ом и шлюхамиoтлаженное.

VD>Как говорил мой отец — "Трепач находка для шпиёнов.".

Градус хамства надо бы снизить, хотя кому я это говорю.

VD>Попробуй найти пример таких акшенов.

Это ортогональные вещи. Акшены это просто дверь в другие миры, всех примеров не привести. Одни делают двигатели, другие ставят его на вертолет или машину. Вы решили делать и то и другое, вот и скрестили все в комбинированный DSL. Я пока не вижу особой пользы, так как люблю мух отдельно от котлет, но я не делаю компиляторы с C#.

VD>В АНТЛР ничего подобного нет даже близко. Там вообще нет ничего связанного с типизацией.

Согласен, но он и не претендует.

VD>Наш же язык не ограничен одними зависимыми свойствами. У нас есть и объеявление АСТ поддерживающее множественное наследование. И язык отображения (маппинга) данных с дерева разбора на АСТ.

Я уже понял, что у вас куча ДСЛ-ов, но я не уверен, что хочу с ними разбираться.

VD>Уж если сравнивать Нитру, то никак не АНТЛР-ом, а с Spoofax или (на худой конец) с Xtext (реализованным на баз того самого ANTLR).

Я в курсе, но я не сравнивал Нитру с АНТЛР-ом. Я предлагал продвигать компоненту из Нитры, которая:
а) вроде бы закончена
б) нужна многим
в) по словам Wolfhaund-a "впереди планеты всей"
Re[14]: Липперт упоминает Немерле
От: novitk США  
Дата: 01.12.15 20:13
Оценка:
Здравствуйте, VladD2, Вы писали:

N>>P.S. Док очень плохой.

VD>Это ценная информация, но хотелось бы деталей. Пойми, мы в этом деле варимся и глаз замылен.
Например возьми ваш expression parser и добавь в него какие-то вычисления используя ваши "зависимые свойства", например сколько в AST "плюсов" или еще чего.

VD>В качестве маленького примера можно посмотреть:

VD>https://github.com/JetBrains/Nitra/tree/master/Grammars/NitraMappingSample
Пример должен быть маленьким и законченным, а у вас не ясно что надо описывать, а что идет из библиотеки (TableScope, etc).
Re[15]: Липперт упоминает Немерле
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.15 09:29
Оценка:
Здравствуйте, novitk, Вы писали:

VD>>В качестве маленького примера можно посмотреть:

VD>>https://github.com/JetBrains/Nitra/tree/master/Grammars/NitraMappingSample
N>Пример должен быть маленьким и законченным,

Пример относительно маленький и законченый. Это мелкий язык с переменными и выражениями. Единственное что — эта реализация производит вычисление выражения во время компиляции (т.е. обработки АСТ), т.е. евляется мета-языком. Он для демонстрации на презентации и создан за час. Описал этот пример здесь
Автор: VladD2
Дата: 02.12.15
.

N>а у вас не ясно что надо описывать, а что идет из библиотеки (TableScope, etc).


Ну, как же не ясно?

TableScope идет из библиотеки (в коде примера же его нет?). Это часть подсистемы связывания.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.