Re[57]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: alex_public  
Дата: 26.03.13 17:10
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Конечно, если ничего другого нет, то я и сам использую.

WH>Но макросы в С/С++ очень плохие.

Ну да, очень ограниченные они. И временами опасные.

_>>1. В какой язык?

WH>В любой.

Т.е. например C++ сможем так расширить? Т.е. речь о неком препроцессоре?

_>>2. Вообще то на макросах C/C++ как раз микро DSL и получались (те же самые таблицы обработчиков)... Но от них предпочли отказаться в пользу самых классических конструкций (типа button->Connect(..., OnClick)).

WH>Далеко не всегда так можно сделать.

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

И в итоге предпочтение отдали инструменту на основе конструкций самого языка, хотя они возможно и не такие ясные и частенько более многословные.
Re[58]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: WolfHound  
Дата: 26.03.13 18:37
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Т.е. например C++ сможем так расширить?

В теории можно. Но он собака очень сложный.
Так что поначалу будут всякие C# и Java.

_>Т.е. речь о неком препроцессоре?

Нет. О полноценном компиляторе. Но препроцессор тоже возможен. Хотя кому он нужен?

_>Конечно. Но я говорю о самой тенденции.

Нет такой тенденции.

_>- не поддерживался IDE (автодополнение и т.п.)

_>- был не типобезопасным
_>- при ошибках компилятор выдавал нечто совершенно невразумительное.
Это проблемы макросов С/С++.

_>И в итоге предпочтение отдали инструменту на основе конструкций самого языка, хотя они возможно и не такие ясные и частенько более многословные.

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

WH>В теории можно. Но он собака очень сложный.

WH>Так что поначалу будут всякие C# и Java.

А например чистый C? Он по идее проще и C# и Java...

WH>Нет. О полноценном компиляторе. Но препроцессор тоже возможен. Хотя кому он нужен?


Т.е. имеется в виду альтернативный компилятор допустим Java, в котором есть подобная надстройка для МП? Довольно интересно.

Вариант с препроцессором может быть интересен для таких языков как C/C++, т.к. их классические компиляторы делают очень мощную оптимизацию. Хотя если например подключиться к gcc, то тогда можно и свой написать почти такого же уровня (вариант от Intel всё же обходит всех, а его исходников нет).

_>>- не поддерживался IDE (автодополнение и т.п.)

_>>- был не типобезопасным
_>>- при ошибках компилятор выдавал нечто совершенно невразумительное.
WH>Это проблемы макросов С/С++.

Т.е. все три перечисленные проблемы большинства препроцессоров как-то устранены?
Re[60]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: WolfHound  
Дата: 26.03.13 19:37
Оценка:
Здравствуйте, alex_public, Вы писали:

_>А например чистый C? Он по идее проще и C# и Java...

Можно попробовать. Но С не приоритет.

_>Т.е. имеется в виду альтернативный компилятор допустим Java, в котором есть подобная надстройка для МП? Довольно интересно.

Да.
Грамматика C# уже есть. Исходники решарпера парсит.

_>Вариант с препроцессором может быть интересен для таких языков как C/C++, т.к. их классические компиляторы делают очень мощную оптимизацию. Хотя если например подключиться к gcc, то тогда можно и свой написать почти такого же уровня (вариант от Intel всё же обходит всех, а его исходников нет).

В нашем случае препроцессор это просто еще один бекенд.
Так что не проблема.

_>Т.е. все три перечисленные проблемы большинства препроцессоров как-то устранены?

Проект еще находится в разработке.

Но как все эти проблемы решать в целом ясно.
Например, смотри: http://stdray.livejournal.com/79277.html
Новый проект разрабатывается с учётом проблем немерле. Так что всё будет еще проще и не привязано к .НЕТ.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: vdimas Россия  
Дата: 26.03.13 20:31
Оценка: +1 -1 :)
Здравствуйте, Ziaw, Вы писали:

Z>Все примеры с DSL которые я вижу достаточно документированы и осваиваются быстрее чем аналогичный API, если у тебя есть контрпримеры, давай их.


Очевидный контр-пример в том, что кол-во DSL, с которым ты работаешь, крайне низко, а сообщество, размер док и вообще информационного шума вокруг них — велико. Счет DSL из твоего примера идет на единицы и ты абсолютно прав, что они покрыты опупительной докой. А теперь представь дополнительные пару десятков самописных DSL к ним в твоем десятке поддерживаемых+разрабатываемых проектов, намажь сюда сверху отсутствие вменяемой доки или её невалидность/устаревшесть и получишь реальную впариваемую тебе картинку, когда любой окружающий тебя только что вылупившийся из ВУЗа программист будет ваять под каждый свой неожиданный чих новый язык.
Re[7]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 27.03.13 02:34
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Очевидный контр-пример в том, что кол-во DSL, с которым ты работаешь, крайне низко, а сообщество, размер док и вообще информационного шума вокруг них — велико. Счет DSL из твоего примера идет на единицы и ты абсолютно прав, что они покрыты опупительной докой. А теперь представь дополнительные пару десятков самописных DSL к ним в твоем десятке поддерживаемых+разрабатываемых проектов, намажь сюда сверху отсутствие вменяемой доки или её невалидность/устаревшесть и получишь реальную впариваемую тебе картинку, когда любой окружающий тебя только что вылупившийся из ВУЗа программист будет ваять под каждый свой неожиданный чих новый язык.


С разморозкой. Я устал уже отвечать на одно и то же. Кратко — не единцы, а десятки. Доки не опупительные, а обычные. Вылупвишиеся из ВУЗа программисты прямо сейчас пишут код который идет в продакшен. Говнокод, без документакции, создавая иерархии классов под каждый свой неожиданный чих. Индустрия с этим справляется, DSL в этом плане ничем особым выделяться не будет.
Re[53]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.03.13 06:48
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Если так, то Эрланг должны были изобрести в 1973 году вместо 1987, потому что в 93 в нем появились распределенные вычисления и с тех пор он именно для того и используется. Собственно ни для чего другого он толком и не пригоден и потому болтается на грани стат-погрешности.

Вы что-то путаете. Я не знаю, что вы называете "распределёнными вычислениями" и почему вы противопоставляете их однопроцессорным машинам, но поддержка многопроцессорности в эрланге появилась только в 2006 году — значительно позже выхода знаменитого AXD-301, в котором эрланг и порвал всех на тряпки.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[54]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.03.13 08:12
Оценка:
Здравствуйте, Sinclair, Вы писали:

I>>Если так, то Эрланг должны были изобрести в 1973 году вместо 1987, потому что в 93 в нем появились распределенные вычисления и с тех пор он именно для того и используется. Собственно ни для чего другого он толком и не пригоден и потому болтается на грани стат-погрешности.

S>Вы что-то путаете. Я не знаю, что вы называете "распределёнными вычислениями" и почему вы противопоставляете их однопроцессорным машинам, но поддержка многопроцессорности в эрланге появилась только в 2006 году — значительно позже выхода знаменитого AXD-301, в котором эрланг и порвал всех на тряпки.

Краткая история эрланга

1982-1986. Programming experiments: how to program
a telephone exchange
1986. Erlang emerges as a dialect of Prolog.
Implementation is a Prolog interpreter
– 1 developer (Joe Armstrong)
1986. Own abstract machine, JAM
– 3 developers, 10 users
1993. Turbo Erlang (BEAM compiler)
1993. Distributed Erlang
...


Ну и мягкий реалтайм на эрланге никто не отменял.
Re[55]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Mamut Швеция http://dmitriid.com
Дата: 27.03.13 09:04
Оценка:
S>>Вы что-то путаете. Я не знаю, что вы называете "распределёнными вычислениями" и почему вы противопоставляете их однопроцессорным машинам, но поддержка многопроцессорности в эрланге появилась только в 2006 году — значительно позже выхода знаменитого AXD-301, в котором эрланг и порвал всех на тряпки.

I>Краткая история эрланга

I>

I>1993. Distributed Erlang
I>...


Это никак не противоречит тому, что написал Sinclair. AXD-301 — это вполне себе система с ограниченными ресурсами, на которой крутился распределенный однопроцессорный Erlang. Более того, Эрикссон до сих пор делает системы, в которых ограничены ресурсы, а между железом и Эрланогм — лишь тонкий драйвер на С к сетевому интерфейсу (и то, там есть варианты ).


dmitriid.comGitHubLinkedIn
Re[8]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: vdimas Россия  
Дата: 27.03.13 09:14
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>С разморозкой. Я устал уже отвечать на одно и то же. Кратко — не единцы, а десятки.


Ес-но ложь, насчет десятков. Давай список из нескольких десятков, с которыми постоянно реально работаешь, а не 5 лет назад последний раз.

Z>Доки не опупительные, а обычные.


В сравнении с самописной приблудой — мегаопупительные. Да ещё полно учебников с примерами по Сети.

Z>Вылупвишиеся из ВУЗа программисты прямо сейчас пишут код который идет в продакшен. Говнокод, без документакции, создавая иерархии классов под каждый свой неожиданный чих. Индустрия с этим справляется, DSL в этом плане ничем особым выделяться не будет.


Вот оно, непонимание принципов групповой разработки и почему говнокод запросто может идти в продакшн. В обычном коде вполне достичь той самой низкой связанности в проекте, т.е. сколь угодно сузить долю ответственности каждого прыткого студента. В DSL, напротив, степень связанности любого действия разработчика этого DSL с конечным результатом — максимальная.
Re[16]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: vdimas Россия  
Дата: 27.03.13 09:21
Оценка: :)
Здравствуйте, DarkGray, Вы писали:

DG>Если по DSL-у учебник вышел, то такой DSL уже использовать можно или еще нет?


Уже менее страшно.
Целессобразность инвестиций в язык зависит от вложения усилий ДРУГИХ людей в этот же язык. Се ля ви.
Re[56]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.03.13 09:47
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Это никак не противоречит тому, что написал Sinclair. AXD-301 — это вполне себе система с ограниченными ресурсами, на которой крутился распределенный однопроцессорный Erlang. Более того, Эрикссон до сих пор делает системы, в которых ограничены ресурсы, а между железом и Эрланогм — лишь тонкий драйвер на С к сетевому интерфейсу (и то, там есть варианты ).


А что значит "распределенный однопроцессорный" ?
Re[9]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 27.03.13 11:28
Оценка: 1 (1) :)
Здравствуйте, vdimas, Вы писали:

Z>>С разморозкой. Я устал уже отвечать на одно и то же. Кратко — не единцы, а десятки.


V>Ес-но ложь, насчет десятков. Давай список из нескольких десятков, с которыми постоянно реально работаешь, а не 5 лет назад последний раз.


Работаю уже превратилось в постоянно работаю? Даже таких я наберу более десятка.

less
scss
haml
xaml
sql
regular expressions
format strings
css selectors
xpath
xsl
cucumber
mongodb query language
knockout bindings syntax

Это только языки, которые не являются embedded, тех я еще больше наберу.

V>В сравнении с самописной приблудой — мегаопупительные. Да ещё полно учебников с примерами по Сети.


Что сказать-то хотел? Чем это отличается от самописного фреймворка? Ты ведь сейчас как-то решаешь проблему множества недокументированных самописных фреймворков в проекте от студентов?

V>Вот оно, непонимание принципов групповой разработки и почему говнокод запросто может идти в продакшн. В обычном коде вполне достичь той самой низкой связанности в проекте, т.е. сколь угодно сузить долю ответственности каждого прыткого студента. В DSL, напротив, степень связанности любого действия разработчика этого DSL с конечным результатом — максимальная.


Это не мое недопонимание. Это твое воображение рисует картину, как вчерашние студенты пишут недокументированный говно-DSL, который потом вся команда использует во всем проекте. Все вопросы к нему.
Re[57]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Mamut Швеция http://dmitriid.com
Дата: 27.03.13 11:48
Оценка:
M>>Это никак не противоречит тому, что написал Sinclair. AXD-301 — это вполне себе система с ограниченными ресурсами, на которой крутился распределенный однопроцессорный Erlang. Более того, Эрикссон до сих пор делает системы, в которых ограничены ресурсы, а между железом и Эрланогм — лишь тонкий драйвер на С к сетевому интерфейсу (и то, там есть варианты ).

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


В нем не было поддержки SMP, например. Что не мешало ему быть распределенным. В общем, Sinclair уже все
Автор: Sinclair
Дата: 26.03.13
сказал
Автор: Sinclair
Дата: 27.03.13


dmitriid.comGitHubLinkedIn
Re[58]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.03.13 11:55
Оценка:
Здравствуйте, Mamut, Вы писали:

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


M>В нем не было поддержки SMP, например. Что не мешало ему быть распределенным. В общем, Sinclair уже все
Автор: Sinclair
Дата: 26.03.13
сказал
Автор: Sinclair
Дата: 27.03.13


Вообще то он перепрыгнул с распределенного процессинга на многопроцессорный.
Re[59]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Mamut Швеция http://dmitriid.com
Дата: 27.03.13 12:13
Оценка:
I>Вообще то он перепрыгнул с распределенного процессинга на многопроцессорный.

Началось вообще с ограничения ресурсов. Это ты начал заливать про распределенность и т.п.


dmitriid.comGitHubLinkedIn
Re[60]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.03.13 12:16
Оценка:
Здравствуйте, Mamut, Вы писали:

I>>Вообще то он перепрыгнул с распределенного процессинга на многопроцессорный.


M>Началось вообще с ограничения ресурсов. Это ты начал заливать про распределенность и т.п.


Ну то есть, ты хочешь сказать, что распределенного процессина в Эрланге до недавних пор не было ?

А что тогда появилось в 93м году ?
Re[61]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Mamut Швеция http://dmitriid.com
Дата: 27.03.13 16:58
Оценка:
I>>>Вообще то он перепрыгнул с распределенного процессинга на многопроцессорный.
M>>Началось вообще с ограничения ресурсов. Это ты начал заливать про распределенность и т.п.
I>Ну то есть, ты хочешь сказать, что распределенного процессина в Эрланге до недавних пор не было ?

Нет, я не собираюсь это говорить

I>А что тогда появилось в 93м году ?


Распределенный процессинг. В общем, читай еще раз, что писал ты, и что писал Синклер.


dmitriid.comGitHubLinkedIn
Re[62]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.03.13 18:07
Оценка:
Здравствуйте, Mamut, Вы писали:

I>>А что тогда появилось в 93м году ?

M>Распределенный процессинг. В общем, читай еще раз, что писал ты, и что писал Синклер.

Вообще то Синклер именно против этого и возражал — http://rsdn.ru/forum/philosophy/5113486.1
Автор: Sinclair
Дата: 26.03.13


Надо полагать он попутал распределенный процессинг с многопроцессорным.
Re[61]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: alex_public  
Дата: 27.03.13 18:09
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Проект еще находится в разработке.


WH>Но как все эти проблемы решать в целом ясно.

WH>Например, смотри: http://stdray.livejournal.com/79277.html
WH>Новый проект разрабатывается с учётом проблем немерле. Так что всё будет еще проще и не привязано к .НЕТ.

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