Re[21]: DSL'и и инструменты для них
От: WolfHound  
Дата: 31.07.15 21:44
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>1. Разработка может вестись вообще не на виндовс или без вижуал студии, это совсем не редкость, кстати. В этом случае, нитра в такой проект не попадёт, как раз по причинам, которые ты сам называл — инфраструктура и всё такое.

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

WH>Они не нужны.

WH>Кто считает иначе, пусть покажет задачу, для которой они нужны.
WH>Я задавал этот вопрос много раз. Но так и не получил ни одного внятного ответа.
Ты просто не получил такого ответа, который тебе понравился бы. Так-то я тоже сторонник статической типизации, но отрицать наличие множества любителей динамики весьма странно.
Re[13]: DSL'и и инструменты для них
От: LaPerouse  
Дата: 03.08.15 11:24
Оценка: :)
Здравствуйте, alex_public, Вы писали:

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


Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все. Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.
Социализм — это власть трудящихся и централизованная плановая экономика.
Отредактировано 03.08.2015 13:56 WolfHound . Предыдущая версия . Еще …
Отредактировано 03.08.2015 11:25 LaPerouse . Предыдущая версия .
Re[19]: DSL'и и инструменты для них
От: WolfHound  
Дата: 03.08.15 13:49
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Ты просто не получил такого ответа, который тебе понравился бы. Так-то я тоже сторонник статической типизации,

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

Покажи задачу, на которой динамика лучше.
Одну задачу.
Я что так много прошу?

DE>но отрицать наличие множества любителей динамики весьма странно.

Миллион мух не аргумент.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Отредактировано 03.08.2015 13:50 WolfHound . Предыдущая версия .
Re[14]: DSL'и и инструменты для них
От: WolfHound  
Дата: 03.08.15 13:55
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все.

Нет, не всё.

LP>Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.

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

WH>Я что так много прошу?

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

WH>Миллион мух не аргумент.

Ещё раз: я точно так же считаю аргументы в духе "динамика — это свобода", "тесты всё равно надо писать" и прочее, мягко говоря, не убедительными. Ну аргументы у них есть, просто ты с ними не согласен.
Re[15]: DSL'и и инструменты для них
От: noone  
Дата: 03.08.15 15:43
Оценка:
Здравствуйте, alex_public, Вы писали:

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


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


_>О том и речь. ) Так что разработчика языка (а здесь мы все пишем от его лица, т.к. речь про DSL'и) должно волновать в первую очередь именно это. А уж с редактором как-нибудь потом можно будет разобраться.


Если оставить "на потом", может вдруг оказаться невозможно сделать что-то умнее подсветки ключевых слов и скобочек.
Re[21]: DSL'и и инструменты для них
От: WolfHound  
Дата: 03.08.15 15:45
Оценка: :)
Здравствуйте, DarkEld3r, Вы писали:

DE>Ты просишь не того человека, учитывая, что я прямо сказал, что тоже предпочитаю статическую типизацию.

Ну, так и не подставляйся.
Пусть те, кто верит в динамическую типизацию отдуваются.

DE>Ещё раз: я точно так же считаю аргументы в духе "динамика — это свобода", "тесты всё равно надо писать" и прочее, мягко говоря, не убедительными. Ну аргументы у них есть, просто ты с ними не согласен.

Как можно соглашаться с аргументами, которые не выдерживают критики?
Единственный объективный аргумент в пользу динамической типизации: Нужно писать меньше кода.
Но если в случае с жабой выигрыш существенный. То в случае с языками, где есть вывод типов и метапрограммирование выигрыш сводится примерно к нулю.
При этом не появляется ни одной из проблем динамической типизации.
1)Медленное исполнение.
2)Большое потребление памяти.
3)Серьёзные проблемы с поддержкой кода, если его больше 100 строк.
4)Плохая поддержка ИДЕ.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: DSL'и и инструменты для них
От: alex_public  
Дата: 04.08.15 00:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

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

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

Очень даже приличный. )

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

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

Да легко. Вот к примеру периодически возникает потребность в написание различных скриптов (к примеру не тривиального построения проектов и т.п.). Сейчас это пишется на Питоне (кстати тоже в своеобразном DSL). На каком из статически типизированных языков ты предлагаешь мне сделать эту работу? И чем это будет удобнее?

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

WH>Сейчас нам не до примеров.

Ну ладно, тогда значит посмотрим, когда у вас появится уже что-то готовое)
Re[14]: DSL'и и инструменты для них
От: alex_public  
Дата: 04.08.15 04:03
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все. Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.


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

Что же касается обсуждаемого продукта, то по словам WolfHound'а он помогает в написание компилятра/рантайма и при этом даёт IDE вообще на халяву. В последнее я даже готов поверить. ))) А вот в первое пока нет, т.к. не было продемонстрировано ни одного примера подобной помощи. С другой стороны разработка у них ещё далека от завершения, так что возможно всё и будет. ))) Но я пока не особо представляю как.
Re[9]: DSL'и и инструменты для них
От: AlexRK  
Дата: 04.08.15 07:09
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Значит мне требуется DSL, который будет работать у пользователей. К счастью изобретать новый язык не требуется — это должен быть Пролог. Причём в своей полноценной реализации, в смысле возможностей работы с предикатами. А вот стандартная библиотека языка (ну там всякие writeln, open(file) и т.) вообще не нужна. Вместо неё должен быть набор разных предметных функций. А так же должна быть реализована возможность обработки событий, инициируемых в базовом языке. Ну и всё это должно работать быстро (soft realtime), многопоточно и с доступом к железу (из базового языка). Целевая ОС — Linux.


Если это не является секретной информацией, не могли бы вы описать чуть подробнее? Или какой-нибудь документ выложить.
Просто интересно, ничего кроме этого.
Re[20]: DSL'и и инструменты для них
От: AlexRK  
Дата: 04.08.15 07:13
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Покажи задачу, на которой динамика лучше.

WH>Одну задачу.
WH>Я что так много прошу?

Я тоже не отношусь к сторонникам динамики, но преимущества в определенных случаях, по-моему, очевидны: можно писать код БЫСТРО. Можно абстрагироваться от типа переменной вообще. Можно вызывать функции, которые еще не написаны. Ну и так далее. Для больших и даже средних систем это вряд ли можно назвать преимуществом, а вот для прототипов или утилит — самое то.
Re[16]: DSL'и и инструменты для них
От: _DAle_ Беларусь  
Дата: 04.08.15 07:15
Оценка:
Здравствуйте, noone, Вы писали:

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


А можно пример такой ситуации?
Re[22]: DSL'и и инструменты для них
От: DarkEld3r  
Дата: 04.08.15 09:26
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Как можно соглашаться с аргументами, которые не выдерживают критики?

Знаешь что забавно? Что люди выступающие против макросов/ДСЛ тоже считают твои аргументы не убедительными.

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

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

Ну и опять же про "миллионы мух": любители динамики ведь и решения принимают. Да и найти готовых специалистов проще.
Re[17]: DSL'и и инструменты для них
От: noone  
Дата: 04.08.15 10:05
Оценка:
Здравствуйте, _DAle_, Вы писали:

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


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


_DA>А можно пример такой ситуации?


— C++
— любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.

Это мы говорим про базовые вещи, а есть штуки типа data-flow анализа, которые потребуют еще больше прыжков, если язык делать абы как.
Re[18]: DSL'и и инструменты для них
От: _DAle_ Беларусь  
Дата: 04.08.15 11:48
Оценка:
Здравствуйте, noone, Вы писали:

_DA>>А можно пример такой ситуации?


N>- C++

N>- любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.

Это ведь не примеры языков, для которых нельзя сделать ничего "умнее подсветки ключевых слов и скобочек". Да и вопрос был не в том. Если бы условный питон разрабатывался одновременно с IDE для него, то он бы вдруг сменил динамическую типизацию на статическую что ли? Я спрашивал про ситуацию, когда при разработке DSL без одновременной реализации IDE в результате получается язык, для которого нельзя ничего сделать "умнее подсветки ключевых слов и скобочек". С учетом того, что это, вообще говоря, наш DSL, и мы его можем менять. Понятно, что если вообще не думать об IDE в перспективе, то получится менее подготовленный к IDE-функционалу язык, но это не вынуждает одновременно с языком еще и IDE-функционал реализовывать. Тем более, что любой язык впоследствии может развиваться в довольно неожиданных направлениях.
Re[15]: DSL'и и инструменты для них
От: LaPerouse  
Дата: 04.08.15 12:49
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


LP>>Так тебе нужен компилятор/райнтайм или ide? Насколько я понял идею обсуждаемого продукта, он предоставляет собой генератор среды разработки для языка с описанной семантикой и... все.

WH>Нет, не всё.

Пытаетесь объять необъятное?

LP>>Или же они замахиваются и на компилятор/интерпретатор? Если так, то даже не смешно, легче программу на китайском заставить говорить, чем реализовать такое для любого языка/платформы.

WH> Сделать ИДЕ часть на пару порядков сложнее, чем компилятор.

Да ну? Это сомнительно хотя бы потому, что универсальные генераторы IDE есть уже давно (https://eclipse.org/Xtext/), а вот действительно универсальные генераторы компиляторов — такого история не знает. Каков должен быть алгоритм, который лишь из одного метаописания языка С++ может комплировать С++ код, а из метаописания языка Prolog-a — Prolog-код?
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[15]: DSL'и и инструменты для них
От: LaPerouse  
Дата: 04.08.15 12:53
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>Что же касается обсуждаемого продукта, то по словам WolfHound'а он помогает в написание компилятра/рантайма и при этом даёт IDE вообще на халяву. В последнее я даже готов поверить. )))


Получение IDE для языка с описанной семантикой уже давно не проблема
https://eclipse.org/Xtext/
Но вот сказки про универсальный генератор компиляторов оставим для любителей фантастики.
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[19]: DSL'и и инструменты для них
От: noone  
Дата: 04.08.15 15:33
Оценка:
Здравствуйте, _DAle_, Вы писали:

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


_DA>>>А можно пример такой ситуации?


N>>- C++

N>>- любой динамический язык: невозможно надежно делать анализ типов => нет хорошего автодополнения, навигации, рефакторингов. Работа IDE сводится к "Чувак, я тут что-то нашла — это оно? Нажми кнопочку, а то я боюсь сама менять." Не говоря о случаях, когда не находит.

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


Конечно я слегка преувеличил — какую-то IDE для С++ теоретически можно сделать, но практически это выльется не только в страдания разработчиков IDE, но и страдания пользователей (больше потребляемой памяти и CPU, меньше возможностей)

_DA>Если бы условный питон разрабатывался одновременно с IDE для него, то он бы вдруг сменил динамическую типизацию на статическую что ли?


Конечно. Если бы питон писали для разработки больших программ с использованием автоматизирующих инструментов, то никакой динамической типизации там не было бы. Это странно и с точки зрения IDE, и эффективной интерпретации, и чтения/поддержки.

_DA>Я спрашивал про ситуацию, когда при разработке DSL без одновременной реализации IDE в результате получается язык, для которого нельзя ничего сделать "умнее подсветки ключевых слов и скобочек".


Ну вот в С++ даже треугольные скобочки подсветить не получится без полного синтаксического разбора. Что мешает получить такой DSL? Человеку будет "все понятно", а IDE — не совсем. А ведь синтаксис это не самое сложное.

_DA>С учетом того, что это, вообще говоря, наш DSL, и мы его можем менять.


Если мы можем его менять, то никаких вопросов, конечно, нет. А если уже написаны горы кода?

_DA> Понятно, что если вообще не думать об IDE в перспективе, то получится менее подготовленный к IDE-функционалу язык, но это не вынуждает одновременно с языком еще и IDE-функционал реализовывать. Тем более, что любой язык впоследствии может развиваться в довольно неожиданных направлениях.


"Менее" бывает разное. C менее предназначен, чем Java, С++ — менее, чем C, Python — менее, чем C++. Рано или поздно различать "менее" и "совсем не" становится бессмысленно.

Я, кстати, не проповедую "каждому языку — свою IDE". Имхо есть места, где это просто не нужно/не оправданно. Но там где нужно, стоит думать про нее с первого дня.
Re[20]: DSL'и и инструменты для них
От: WolfHound  
Дата: 04.08.15 16:13
Оценка:
Здравствуйте, noone, Вы писали:

N>Я, кстати, не проповедую "каждому языку — свою IDE". Имхо есть места, где это просто не нужно/не оправданно. Но там где нужно, стоит думать про нее с первого дня.

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