Re[6]: DSL'и и инструменты для них
От: alex_public  
Дата: 26.07.15 15:01
Оценка:
Здравствуйте, meadow_meal, Вы писали:

_>>Для начала, этим могут заниматься разные люди с очень разным уровнем подготовки.

_>Не могу пройти мимо этого аргумента. По сути он неявно предполагает:
_>1) необходимость предоставления пользователю ПО максимально удобного инструментария
_>2) достаточность предоставления квалифицированному программисту минимально необходимого инструментария

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

>> В большинстве случаев наиболее логичным и эффективным способом является встраивание какого-то из интерпретируемых языков общего назначения, с добавлением набора специфических для предметной области функций. Чаще всего это Lua, Python, JavaScript...

_>Ведь главное чтобы пользователь/программист мог решить задачу, не так ли? Не так. DSL должен быть таким, чтобы задачу нельзя было не решить.

Только пока что решение реальной задачи (см. выше мой пример) данным способом вполне осуществимо, а вот технологии на базе Nitra не смогли ничего мне тут предложить.
Re[7]: DSL'и и инструменты для них
От: WolfHound  
Дата: 26.07.15 15:47
Оценка:
Здравствуйте, alex_public, Вы писали:

_>И да и нет. Главный нюанс в том, что различается не только удобство использования, но и возможности этих инструментов. Очевидно, что программистские инструменты не сопоставимо мощнее. Однако за всё приходится платить, в том числе и за эту мощь. Конечно же хотелось бы и её иметь обёрнутой в суперудобную упаковку... Но в большинстве случаев реализация такой упаковки слишком дорогая и не окупается с точки зрения бизнеса.

Ты написал полную ерунду.
Попробуй дать определение мощности языка, и ты поймёшь почему.

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

_>Только пока что решение реальной задачи (см. выше мой пример) данным способом вполне осуществимо, а вот технологии на базе Nitra не смогли ничего мне тут предложить.

Сейчас найтра написана только на треть. Ессно от неё в данный момент толку мало.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: DSL'и и инструменты для них
От: alex_public  
Дата: 26.07.15 16:09
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Возможность написать, что угодно к мощности отношения не имеет. Ибо тогда самым мощным языком будет ассемблер.


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

_>>Только пока что решение реальной задачи (см. выше мой пример) данным способом вполне осуществимо, а вот технологии на базе Nitra не смогли ничего мне тут предложить.

WH>Сейчас найтра написана только на треть. Ессно от неё в данный момент толку мало.

Ммм она закодирована только на треть или придумана только на треть (что по сути означает, что вы ещё вообще не представляете что делать)? Если второе, то тогда и обсуждать сейчас нечего. А вот если первое... Предложим что продукт уже был бы на 100% готов — чтобы тогда ты мог предложить по моему небольшому примеру выше?
Re[9]: DSL'и и инструменты для них
От: WolfHound  
Дата: 26.07.15 16:49
Оценка:
Здравствуйте, alex_public, Вы писали:

_>В каком-то смысле так и есть. Просто неудобство использования данного мощнейшего инструмента уж слишком велико...

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

_>Ммм она закодирована только на треть или придумана только на треть (что по сути означает, что вы ещё вообще не представляете что делать)? Если второе, то тогда и обсуждать сейчас нечего.

Закодирована.

_>А вот если первое... Предложим что продукт уже был бы на 100% готов — чтобы тогда ты мог предложить по моему небольшому примеру выше?

Найтра это: напиши компилятор — получи IDE в подарок.
Все возможности найтры направлены на максимальное упрощение этого процесса.
И если кто-то добавит в стандартную библиотеку прологовский движок, то твоя задача будет решаться за несколько дней, включая встраивание полноценной ИДЕ для твоего языка в твоё приложение.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: DSL'и и инструменты для них
От: alex_public  
Дата: 26.07.15 21:03
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Найтра это: напиши компилятор — получи IDE в подарок.

WH>Все возможности найтры направлены на максимальное упрощение этого процесса.

Вот если честно, то именно это совершенно не интересно. Ну точнее конечно же если бы давали "на халяву", то не отказался бы, но не более того.

Напомню, что при обсуждение nemerle, nitra и т.п. постоянно звучал тезис вида "с помощью наших инструментов будет легко создавать свои DSL". А на практике оказывается, что в собственно создание DSL у вас помощи ровно ноль. А это самая сложная часть... Помогают же ваши инструменты исключительно с организацией мощного редактора для этого DSL. Тоже полезная вещь, но вообще другого порядка и из другой области.

WH>И если кто-то добавит в стандартную библиотеку прологовский движок, то твоя задача будет решаться за несколько дней, включая встраивание полноценной ИДЕ для твоего языка в твоё приложение.


В какую ещё стандартную библиотеку? Если ты про .net, то реализаций Пролога там полно (ну правда большинство являются биндингами к движкам на C, но это не суть). Но мне то нужен модифицированный Пролог, а не классический (иначе это был бы не DSL) — всё равно основная часть работы остаётся. Т.е. никаких различий с моим текущим раскладом (не считай проблем от .net'a).

А идея была в том, что если бы существовал некий модный инструмент, реально помогающий создавать свои DSL, то можно было бы не брать какой-то готовый движок Пролога и допиливать его, а написать самому с нуля простенькое (но обязательно эффективное https://en.wikipedia.org/wiki/Warren_Abstract_Machine) решение в приемлемые сроки. Но такого инструмента нет. Ну а продвинутый редактор... Это конечно любопытно, но только после того, как сам DSL уже реализован.

Кстати, а вот для EDSL у вас действительно есть инструмент для реализации самого языка. Я говорю про макросы — для них у вас уже реализован универсальный интерпретратор. Но это инструмент ограниченный областью метапрограммирования. Т.е. по сути у вас есть инструмент для лёгкого создания DSL, но из очень узкой области — генерирующего (ну грубо говоря) исходные коды на Nemerle.
Re[11]: DSL'и и инструменты для них
От: WolfHound  
Дата: 27.07.15 10:43
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>Вот если честно, то именно это совершенно не интересно. Ну точнее конечно же если бы давали "на халяву", то не отказался бы, но не более того.

99% программистов с тобой не согласны.

_>Напомню, что при обсуждение nemerle, nitra и т.п. постоянно звучал тезис вида "с помощью наших инструментов будет легко создавать свои DSL". А на практике оказывается, что в собственно создание DSL у вас помощи ровно ноль.

ДСЛи для парсинга, типизации и кодогенерации это ноль?
Куча реализованных расширяемых языков, которые можно транслировать в кучу разных бекендов это ноль?
А что тогда не ноль?

_>А это самая сложная часть...

Думаю, ты сильно недооцениваешь сложность "простой части".
Особенно если её делать качественно, а не тяп-ляп.
Да и код генерировать, имея высокоуровневый ДСЛ гораздо проще.
Поверь тому, кто генерировал.

_>В какую ещё стандартную библиотеку?

Найтры.

_>Если ты про .net,

Нет, не про .НЕТ.

_>то реализаций Пролога там полно (ну правда большинство являются биндингами к движкам на C, но это не суть). Но мне то нужен модифицированный Пролог, а не классический (иначе это был бы не DSL) — всё равно основная часть работы остаётся. Т.е. никаких различий с моим текущим раскладом (не считай проблем от .net'a).

Ты говорил, что вся твоя модификация сводится к замене нескольких функций.
Или ты что-то утаил?

_>А идея была в том, что если бы существовал некий модный инструмент, реально помогающий создавать свои DSL, то можно было бы не брать какой-то готовый движок Пролога и допиливать его, а написать самому с нуля простенькое (но обязательно эффективное https://en.wikipedia.org/wiki/Warren_Abstract_Machine) решение в приемлемые сроки. Но такого инструмента нет. Ну а продвинутый редактор... Это конечно любопытно, но только после того, как сам DSL уже реализован.

Вот найтра как раз и есть такой инструмент.
У тебя будет расширяемая реализация:
1)Прологовского синтаксиса с типизацией + компиляция в WAM.
2)WAM
3)Куча компиляторов WAM в разные архитектуры.

_>Кстати, а вот для EDSL у вас действительно есть инструмент для реализации самого языка. Я говорю про макросы — для них у вас уже реализован универсальный интерпретратор.

Что? Нет у нас интерпретаторов.

_>Но это инструмент ограниченный областью метапрограммирования. Т.е. по сути у вас есть инструмент для лёгкого создания DSL, но из очень узкой области — генерирующего (ну грубо говоря) исходные коды на Nemerle.

Ох. Он ограничен только тараканами в твоей голове.
Запомни: Между "пользовательскими" и "программистскими" языками разницы нет.
Совсем нет.
Никакой.
Ты её придумал.

Ты можешь прямо сейчас взять немерле. Засунуть его в свою программу. И компилировать им пользовательский код, который пользователи пишут на своём ДСЛ.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: DSL'и и инструменты для них
От: alex_public  
Дата: 28.07.15 09:09
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>Вот если честно, то именно это совершенно не интересно. Ну точнее конечно же если бы давали "на халяву", то не отказался бы, но не более того.

WH>99% программистов с тобой не согласны.

Нормального программиста в первую очередь интересует работа компилятора/интерпретатора. Вот если он есть и работает идеально, то тогда уже можно начать говорить про красивые редакторы...

_>>Напомню, что при обсуждение nemerle, nitra и т.п. постоянно звучал тезис вида "с помощью наших инструментов будет легко создавать свои DSL". А на практике оказывается, что в собственно создание DSL у вас помощи ровно ноль.

WH>ДСЛи для парсинга, типизации и кодогенерации это ноль?
WH>Куча реализованных расширяемых языков, которые можно транслировать в кучу разных бекендов это ноль?
WH>А что тогда не ноль?

Эмм, а какая мне разница сколько разных DSL вы реализовали (кстати, список тоже не особо внушает, т.к. в нём исключительно "преобразователи текста", хотя это вполне естественно для EDSL), если меня волнуют исключительно инструменты способные помочь в реализации своего DSL?

_>>то реализаций Пролога там полно (ну правда большинство являются биндингами к движкам на C, но это не суть). Но мне то нужен модифицированный Пролог, а не классический (иначе это был бы не DSL) — всё равно основная часть работы остаётся. Т.е. никаких различий с моим текущим раскладом (не считай проблем от .net'a).

WH>Ты говорил, что вся твоя модификация сводится к замене нескольких функций.
WH>Или ты что-то утаил?

Здесь http://rsdn.ru/forum/philosophy/6117537
Автор: alex_public
Дата: 18.07.15
вроде всё чётко сказано и видно, что не просто замена нескольких функций. Более того, собственно вопрос только из-за этой модификации и поднимается, потому как иначе вообще нет смысла обсуждать что-то кроме готового движка.

_>>А идея была в том, что если бы существовал некий модный инструмент, реально помогающий создавать свои DSL, то можно было бы не брать какой-то готовый движок Пролога и допиливать его, а написать самому с нуля простенькое (но обязательно эффективное https://en.wikipedia.org/wiki/Warren_Abstract_Machine) решение в приемлемые сроки. Но такого инструмента нет. Ну а продвинутый редактор... Это конечно любопытно, но только после того, как сам DSL уже реализован.

WH>Вот найтра как раз и есть такой инструмент.
WH>У тебя будет расширяемая реализация:
WH>1)Прологовского синтаксиса с типизацией + компиляция в WAM.
WH>2)WAM
WH>3)Куча компиляторов WAM в разные архитектуры.

Вот! Это ты описал прямо "мечту"! ))) Только вот есть один нюанс... Для реализации подобного с нуля у нас нет ни опыта, ни ресурсов (ну это на данный момент). Поэтому берём готовых движок и подпиливаем его немного. С прицелом решить в будущем проблему в лоб, "залив её баблом" (нанять отдельных специальных людей на написание своего движка, скорее всего на чистом C++).

Если бы существовал какой магический инструмент, позволяющий по простому задать основные принципы языка и быстро получить готовый компилятор/интерпретатор... Однако ничего подобного не существует. И я не пойму почему ты пишешь "Вот найтра как раз и есть такой инструмент", если чуть выше сам же говорил, что там речь исключительно о создание IDE для нового языка, а не о создание самого языка.

WH>Ты можешь прямо сейчас взять немерле. Засунуть его в свою программу. И компилировать им пользовательский код, который пользователи пишут на своём ДСЛ.


Так а на чём будет написана сама реализация DSL? На макросах немерле? Как-то сомнительно, что на них можно эффективно работать с рантайм конструкциями. На самом немерле? Ну тогда тут у него нет никаких преимуществ по сравнению с другими обычными языками...

В любом случае покажи хотя бы один пример реализации подобного, а то может я чего-то не знаю... )
Re[13]: DSL'и и инструменты для них
От: WolfHound  
Дата: 28.07.15 13:36
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Нормального программиста в первую очередь интересует работа компилятора/интерпретатора. Вот если он есть и работает идеально, то тогда уже можно начать говорить про красивые редакторы...

Большинство программистов без нормальной ИДЕ на язык не взглянут. И будут правы.

_>Эмм, а какая мне разница сколько разных DSL вы реализовали (кстати, список тоже не особо внушает, т.к. в нём исключительно "преобразователи текста", хотя это вполне естественно для EDSL), если меня волнуют исключительно инструменты способные помочь в реализации своего DSL?

Ещё раз. Когда натра будет доведена до релиза, там будет куча разных языков, на основе которых ты можешь сделать свой.
Переписывать язык в ассемблер весьма кошмарное занятие.
А вот переписывание в высокоуровневый язык, который лишь немного ниже твоего ДСЛ несравнимо приятнее.

_>Здесь http://rsdn.ru/forum/philosophy/6117537
Автор: alex_public
Дата: 18.07.15
вроде всё чётко сказано и видно, что не просто замена нескольких функций. Более того, собственно вопрос только из-за этой модификации и поднимается, потому как иначе вообще нет смысла обсуждать что-то кроме готового движка.

Всё что я вижу из твоего описания это замена нескольких функций.

_>Вот! Это ты описал прямо "мечту"! ))) Только вот есть один нюанс... Для реализации подобного с нуля у нас нет ни опыта, ни ресурсов (ну это на данный момент). Поэтому берём готовых движок и подпиливаем его немного. С прицелом решить в будущем проблему в лоб, "залив её баблом" (нанять отдельных специальных людей на написание своего движка, скорее всего на чистом C++).

Вот для того чтобы эта мечта стала реальностью мы и пишем найтру.

_>Если бы существовал какой магический инструмент, позволяющий по простому задать основные принципы языка и быстро получить готовый компилятор/интерпретатор... Однако ничего подобного не существует. И я не пойму почему ты пишешь "Вот найтра как раз и есть такой инструмент", если чуть выше сам же говорил, что там речь исключительно о создание IDE для нового языка, а не о создание самого языка.

Я написал:

Найтра это: напиши компилятор — получи IDE в подарок.

Те программист создаёт компилятор, а ИДЕ найтра делает сама.

_>Так а на чём будет написана сама реализация DSL? На макросах немерле? Как-то сомнительно, что на них можно эффективно работать с рантайм конструкциями.

Ещё как может. Макрос немере это просто код на немерле. И может делать что угодно.
Соответственно получаем всю нужную информацию, компилируем сборку и запускаем.
Гоняться по производительности с этой сборкой ты устанешь.

_>В любом случае покажи хотя бы один пример реализации подобного, а то может я чего-то не знаю... )

Вся найтра в данный момент огромный макрос для немерле.
Наверное, самый большой из существующих.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[14]: DSL'и и инструменты для них
От: alex_public  
Дата: 28.07.15 18:35
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

_>>Нормального программиста в первую очередь интересует работа компилятора/интерпретатора. Вот если он есть и работает идеально, то тогда уже можно начать говорить про красивые редакторы...

WH>Большинство программистов без нормальной ИДЕ на язык не взглянут. И будут правы.

Сомнительное утверждение. Я со многими языками работаю просто в Notepad++. Понятно, что для сложных статически типизированных компилируемых языков типа C++ IDE весьма желательна. Но мы же частенько работает и с совсем другими языками. Всякие там скрипты на Питоне, JS и т.п. А уж специализированные DSL обычно ещё проще.

_>>Эмм, а какая мне разница сколько разных DSL вы реализовали (кстати, список тоже не особо внушает, т.к. в нём исключительно "преобразователи текста", хотя это вполне естественно для EDSL), если меня волнуют исключительно инструменты способные помочь в реализации своего DSL?

WH>Ещё раз. Когда натра будет доведена до релиза, там будет куча разных языков, на основе которых ты можешь сделать свой.
WH>Переписывать язык в ассемблер весьма кошмарное занятие.
WH>А вот переписывание в высокоуровневый язык, который лишь немного ниже твоего ДСЛ несравнимо приятнее.

Хм, будет большая библиотека готовых движков языков? Ты про это вообще не упоминал... Ну тогда здорово, вот это как раз и есть реальная помощь...

_>>Здесь http://rsdn.ru/forum/philosophy/6117537
Автор: alex_public
Дата: 18.07.15
вроде всё чётко сказано и видно, что не просто замена нескольких функций. Более того, собственно вопрос только из-за этой модификации и поднимается, потому как иначе вообще нет смысла обсуждать что-то кроме готового движка.

WH>Всё что я вижу из твоего описания это замена нескольких функций.

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

_>>Если бы существовал какой магический инструмент, позволяющий по простому задать основные принципы языка и быстро получить готовый компилятор/интерпретатор... Однако ничего подобного не существует. И я не пойму почему ты пишешь "Вот найтра как раз и есть такой инструмент", если чуть выше сам же говорил, что там речь исключительно о создание IDE для нового языка, а не о создание самого языка.

WH>Я написал:
WH>

WH>Найтра это: напиши компилятор — получи IDE в подарок.

WH>Те программист создаёт компилятор, а ИДЕ найтра делает сама.

Хорошо, похоже я не совсем правильно понял ситуацию. Однако в этом виноваты в основном твои формулировки. Вот опять же ты даже в этой фразе делаешь упор на IDE, а про компилятор пишешь "создаёт программист". Из этого кажется, что помощи в создание языка ровно ноль, а речь только про IDE. И вот только сейчас, после долгой дискуссии я смог вытащить из тебя клещами информацию про некую библиотеку языков в Найтре — уже реальная помощь, особенно если попадётся близкий синтаксис. Может и ещё что-то есть)))

_>>Так а на чём будет написана сама реализация DSL? На макросах немерле? Как-то сомнительно, что на них можно эффективно работать с рантайм конструкциями.

WH>Ещё как может. Макрос немере это просто код на немерле. И может делать что угодно.
WH>Соответственно получаем всю нужную информацию, компилируем сборку и запускаем.
WH>Гоняться по производительности с этой сборкой ты устанешь.

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

_>>В любом случае покажи хотя бы один пример реализации подобного, а то может я чего-то не знаю... )

WH>Вся найтра в данный момент огромный макрос для немерле.
WH>Наверное, самый большой из существующих.

Не, хочется наоборот что-то очень простое, но чтобы исполняло пользовательские скрипты. )
Re[15]: DSL'и и инструменты для них
От: WolfHound  
Дата: 28.07.15 22:40
Оценка: :)
Здравствуйте, alex_public, Вы писали:

_>Сомнительное утверждение. Я со многими языками работаю просто в Notepad++.

Ты не репрезентативен.

_> Понятно, что для сложных статически типизированных компилируемых языков типа C++ IDE весьма желательна.

Для С++ нормальной ИДЕ нет. Он слишком запутанный.

_>Но мы же частенько работает и с совсем другими языками. Всякие там скрипты на Питоне, JS и т.п.

Для этих нормальная ИДЕ просто не реализуема.
ИДЕ и динамическая типизация вещи не совместимые.

_>А уж специализированные DSL обычно ещё проще.

Если у тебя больше 10 строк кода, то блокнот уже плохой вариант.

_>Как бы классический пролог не предусматривает никаких обрабочиков внешних событий.

И что для этого нужно сделать?

_>Хорошо, похоже я не совсем правильно понял ситуацию. Однако в этом виноваты в основном твои формулировки. Вот опять же ты даже в этой фразе делаешь упор на IDE, а про компилятор пишешь "создаёт программист". Из этого кажется, что помощи в создание языка ровно ноль, а речь только про IDE. И вот только сейчас, после долгой дискуссии я смог вытащить из тебя клещами информацию про некую библиотеку языков в Найтре — уже реальная помощь,

Ох. Создание оно бывает разным.
Даже без библиотеки разница между найтрой и обычными языками при создании компиляторов будет как между SQL и ассемблером при написании запросов к реляционной базе данных.

_>особенно если попадётся близкий синтаксис. Может и ещё что-то есть)))

Синтаксис фигня. Главное чтобы семантика нужная была. А перегнать один синтаксис в другой не проблема.

_>Т.е. ты хочешь сказать, что наш скрипт по сути будет отрабатывать на этапе компиляции? ) А полученный exe можно будет выкидывать в помойку? )))

Нет я хочу сказать что скрипт будет превращается в ДЛЛ после чего очень быстро исполняться.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: DSL'и и инструменты для них
От: DarkEld3r  
Дата: 30.07.15 10:23
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Нормального программиста в первую очередь интересует работа компилятора/интерпретатора. Вот если он есть и работает идеально, то тогда уже можно начать говорить про красивые редакторы...

Если для языка/ДСЛ компилятор/интерпретатор только на бумаге существует или не работает нормально, то нафиг такой язык вообще нужен?

Так-то я разделяю мысль, что наличие готовых IDE далеко не так важно (хотя и очень хорошо, если есть), но аргументы странные.
Re[16]: DSL'и и инструменты для них
От: DarkEld3r  
Дата: 30.07.15 10:34
Оценка: +2
Здравствуйте, WolfHound, Вы писали:

WH>Ты не репрезентативен.

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

Тем более, что если язык хоть немного людей заинтересовал, то его поддержку добавляют в имеющиеся IDE, причём в те, с которыми привыкли работать. Привыкшие работать с той же IntelliJ IDEA не особо захотят переходить на вижуал студию только из-за того, что там поддержка языка будет лучше. Особенно, если они работают не под виндой вообще.

WH>Для С++ нормальной ИДЕ нет. Он слишком запутанный.

WH>Для этих нормальная ИДЕ просто не реализуема.
WH>ИДЕ и динамическая типизация вещи не совместимые.
Тебе не кажется, что противоречишь сам себе? С одной стороны "без IDE на язык никто даже не посмотрит", с другой — перечислил немало вполне себе мейнстримовых вещей, для которых "нет нормальных IDE". И ведь живут как-то.
Re[17]: DSL'и и инструменты для них
От: meadow_meal  
Дата: 30.07.15 14:15
Оценка: 52 (1) +1
Здравствуйте, DarkEld3r, Вы писали:

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


WH>>Ты не репрезентативен.

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

DE>Тем более, что если язык хоть немного людей заинтересовал, то его поддержку добавляют в имеющиеся IDE, причём в те, с которыми привыкли работать. Привыкшие работать с той же IntelliJ IDEA не особо захотят переходить на вижуал студию только из-за того, что там поддержка языка будет лучше. Особенно, если они работают не под виндой вообще.


Тред о dsl, о какой заинтересованности языком и поддержке IDE третьими лицами может идти речь?
(Конечно, можно взять python, добавить пару функций предметной области и назвать это dsl, но это зачастую поиск ключей под фонарем, когда основанием для выбора языка является удобство интеграции, а не заточенность под доменную область)

И вот представьте команду пусть даже средних размеров, один отдел запилил dsl, в другом кто-то жмет Ctrl+пробел, а в ответ тишина. Документация если есть то устарела или врет, что дальше делать не ясно.

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

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

Конечно, в реальности программист может и остаться наедине с блокнотом. Но я не понимаю, как можно рассуждать о чисто технической стороне — читаемости кода, низкой связанности, высокой связности, слоях, абстракциях, техническом долге и способах его погашения, самых разных способах уменьшения сложности и удешевления поддержки, и не признавать огромную роль инструментов (в частности ide) в этой самой борьбе со сложностью и повышению нашей эффективности? Мне кажется неизбежным определенный поворот массового сознания, признание роли инструментов, дальнейший рост требований к ним — этот процесс уже идет, конечно, где-то быстрее, где-то медленнее, где-то и вовсе принимая уродливые формы, но — совершенно неотвратимо.
Re[18]: DSL'и и инструменты для них
От: DarkEld3r  
Дата: 30.07.15 14:30
Оценка: +1
Здравствуйте, meadow_meal, Вы писали:

_>Тред о dsl, о какой заинтересованности языком и поддержке IDE третьими лицами может идти речь?

Ну я отвечал больше на "написание кода в notepad++". Но даже если говорить в контексте ДСЛ, то как думаешь — если человек "всю жизнь" пишет в idea на джаве/скале, то он побежит ставить вижуал студию из-за того, что нитровые ДСЛ туда удобно интегрируются?

Нет, я не буду спорить с пользой и удобностью ИДЕ. Вот только интеграция с одной из целой кучи не выглядит как киллер-фича.
Re[19]: DSL'и и инструменты для них
От: meadow_meal  
Дата: 30.07.15 16:55
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

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


_>>Тред о dsl, о какой заинтересованности языком и поддержке IDE третьими лицами может идти речь?

DE>Ну я отвечал больше на "написание кода в notepad++". Но даже если говорить в контексте ДСЛ, то как думаешь — если человек "всю жизнь" пишет в idea на джаве/скале, то он побежит ставить вижуал студию из-за того, что нитровые ДСЛ туда удобно интегрируются?

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

Во-вторых, постановка вопроса странная. "Всю жизнь" он может заниматься чем угодно, а на конкретном проекте есть определенные требования к рабочему месту. For fun хоть в тетрадке пишите.
Re[16]: DSL'и и инструменты для них
От: alex_public  
Дата: 30.07.15 18:24
Оценка:
Здравствуйте, WolfHound, Вы писали:

_>>Сомнительное утверждение. Я со многими языками работаю просто в Notepad++.

WH>Ты не репрезентативен.

Ой, да ладно, я то ещё как раз могу считаться сторонником IDE (хотя бы для C++ и ему подобных). А есть же орды разработчиков, которые спокойно себе работают с C/C++ в том же vim или Еmacs или их современными аналогами (типа Sublime), и не хотят ничего слышать ни про какие IDE.

_>> Понятно, что для сложных статически типизированных компилируемых языков типа C++ IDE весьма желательна.

WH>Для С++ нормальной ИДЕ нет. Он слишком запутанный.

И CLion тоже? )))

_>>Но мы же частенько работает и с совсем другими языками. Всякие там скрипты на Питоне, JS и т.п.

WH>Для этих нормальная ИДЕ просто не реализуема.
WH>ИДЕ и динамическая типизация вещи не совместимые.

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

И кстати если когда-нибудь и появится мода на DSL, то она скорее всего будет происходить как раз как продолжение этой моды... Уже сейчас наблюдается много решений, позволяющих существенно упрощать работу (относительно и так простого базового скриптового языка) в конкретной узкой области с помощью специальных библиотек. По факту они уже реализуют DSL'и, хотя и не акцентируют на этом внимание. Я могу привести не один такой пример.

_>>Как бы классический пролог не предусматривает никаких обрабочиков внешних событий.

WH>И что для этого нужно сделать?

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

WH>Ох. Создание оно бывает разным.

WH>Даже без библиотеки разница между найтрой и обычными языками при создании компиляторов будет как между SQL и ассемблером при написании запросов к реляционной базе данных.

Ну так а где я про это должен был узнать? ) Ты вот сейчас первый раз произносишь подобные слова (раньше всё про IDE, да про IDE)... Правда чтобы я окончательно поверил в это чудо, требуется ещё какое-то разъяснение механизмов. Т.е. откуда собственно берётся эта разница. Лучше всего на каком-нибудь простейшем примере...

_>>Т.е. ты хочешь сказать, что наш скрипт по сути будет отрабатывать на этапе компиляции? ) А полученный exe можно будет выкидывать в помойку? )))

WH>Нет я хочу сказать что скрипт будет превращается в ДЛЛ после чего очень быстро исполняться.

Ну я понял, что получается такой забавный трюк. ))) Но если оно работает, то это в принципе не важно. Правда остаётся ещё вопрос реализуемости самого языка на этих макросах... Да, я в курсе что там весь .net доступен. Но скажем для задачи реализации движка пролога то от этого ни холодно ни жарко...
Re[14]: DSL'и и инструменты для них
От: alex_public  
Дата: 30.07.15 18:26
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

_>>Нормального программиста в первую очередь интересует работа компилятора/интерпретатора. Вот если он есть и работает идеально, то тогда уже можно начать говорить про красивые редакторы...

DE>Если для языка/ДСЛ компилятор/интерпретатор только на бумаге существует или не работает нормально, то нафиг такой язык вообще нужен?

О том и речь. ) Так что разработчика языка (а здесь мы все пишем от его лица, т.к. речь про DSL'и) должно волновать в первую очередь именно это. А уж с редактором как-нибудь потом можно будет разобраться.
Re[20]: DSL'и и инструменты для них
От: DarkEld3r  
Дата: 31.07.15 08:42
Оценка:
Здравствуйте, meadow_meal, Вы писали:

_> (да и гвоздями к студии она не прибита, насколько я понимаю)

Ну да, вроде. Но поддержка ИДЕ часто упоминается как преимущество. А из коробки поддерживается только вижуал студия. По крайней мере, на данный момент.

_>Во-вторых, постановка вопроса странная. "Всю жизнь" он может заниматься чем угодно, а на конкретном проекте есть определенные требования к рабочему месту. For fun хоть в тетрадке пишите.

Тут можно с двух точек зрения посмотреть:
1. Разработка может вестись вообще не на виндовс или без вижуал студии, это совсем не редкость, кстати. В этом случае, нитра в такой проект не попадёт, как раз по причинам, которые ты сам называл — инфраструктура и всё такое.
2. Вот заинтересовался, например, хочу пощупать инструмент. А тут мне говорят — ставь винду, ставь студию... А так бы поигрался "for fun", а потом и глядишь — пытался бы в продакшен перетащить. Или хотя бы везде рассказывал какой это крутой инструмент.
Re[17]: DSL'и и инструменты для них
От: WolfHound  
Дата: 31.07.15 21:40
Оценка: :)))
Здравствуйте, alex_public, Вы писали:

_>Ой, да ладно, я то ещё как раз могу считаться сторонником IDE (хотя бы для C++ и ему подобных). А есть же орды разработчиков, которые спокойно себе работают с C/C++ в том же vim или Еmacs или их современными аналогами (типа Sublime), и не хотят ничего слышать ни про какие IDE.

Вопрос в том, какой процент.

WH>>Для С++ нормальной ИДЕ нет. Он слишком запутанный.

_>И CLion тоже? )))
Чудес не бывает.

_>Так я про это и говорю. Только вот этот факт совершенно не означает, что сами такие языки не нужны. Более того, они всё последнее десятилетие только набирают популярность.

Они не нужны.
Кто считает иначе, пусть покажет задачу, для которой они нужны.
Я задавал этот вопрос много раз. Но так и не получил ни одного внятного ответа.

_>Ну так а где я про это должен был узнать? ) Ты вот сейчас первый раз произносишь подобные слова (раньше всё про IDE, да про IDE)...

А какой ещё смысл может быть у ДСЛ, чей домен компиляторы?

_>Правда чтобы я окончательно поверил в это чудо, требуется ещё какое-то разъяснение механизмов. Т.е. откуда собственно берётся эта разница. Лучше всего на каком-нибудь простейшем примере...

Сейчас нам не до примеров.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: DSL'и и инструменты для них
От: WolfHound  
Дата: 31.07.15 21:40
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

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

Когда я говорю про ИДЕ, я говорю, про любую ИДЕ.
Но чтобы была ИДЕ, а не блокнот.

DE>Тем более, что если язык хоть немного людей заинтересовал, то его поддержку добавляют в имеющиеся IDE, причём в те, с которыми привыкли работать. Привыкшие работать с той же IntelliJ IDEA не особо захотят переходить на вижуал студию только из-за того, что там поддержка языка будет лучше. Особенно, если они работают не под виндой вообще.

Да что вы все к студии прицепились? Найтра вообще ни разу не про студию.

DE>Тебе не кажется, что противоречишь сам себе? С одной стороны "без IDE на язык никто даже не посмотрит", с другой — перечислил немало вполне себе мейнстримовых вещей, для которых "нет нормальных IDE". И ведь живут как-то.

С++ для некоторых задач не имеет альтернативы из-за производительности кода.
Жабаскрип не имеет альтернативы в браузерах.
Этих людей я могу понять и пожалеть.
Но тех, кто пишет на этом при наличии альтернативы, я понять не могу.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.