Re[11]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Tanker  
Дата: 06.03.13 18:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я ссылки не прикаповал, а гуглить ты и сам можешь. Это одна из известных "историй успеха" которые Грэхэм описывал в своей книге (если не ошибаюсь, в этой).


Как то так выходит, что в яхе c тобой не согласны http://smallbusiness.yahoo.com/
The animals went in two by two, hurrah, hurrah...
http://files.rsdn.org/48167/Smile_trollface-3.gif
Re[12]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.03.13 22:58
Оценка:
Здравствуйте, Tanker, Вы писали:

T>Как то так выходит, что в яхе c тобой не согласны http://smallbusiness.yahoo.com/


Где и с чем не согласны? По подробнее, плиз. А то случайным образом данная ссылка как-то не сильно смахивает на аргумент.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Tanker  
Дата: 07.03.13 07:17
Оценка: 1 (1) +1 :)
Здравствуйте, VladD2, Вы писали:

T>>Как то так выходит, что в яхе c тобой не согласны http://smallbusiness.yahoo.com/


VD>Где и с чем не согласны? По подробнее, плиз. А то случайным образом данная ссылка как-то не сильно смахивает на аргумент.


ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался.
The animals went in two by two, hurrah, hurrah...
http://files.rsdn.org/48167/Smile_trollface-3.gif
Re[21]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 21:30
Оценка: +1 :)
Здравствуйте, Tanker, Вы писали:

T>С языком получается примерно так — пишешь первую версию, отдаешь разрабам, они быстро плодят в десятки раз больше кода, чем ты этого ожидал. Ты меняешь чтото в языке и тут надо обладать достаточной харизмой что бы убедить разрабов переписать их код.


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

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

Это "реальная реальность" гарантировано наступит тогда, когда команда разработчиков будет больше, чем 5-6 человек. А с высокой вероятностью — когда их больше двух.

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

И все эти меры ограничивают свободу, которой так восхищаются местные товарищи . Прям скажем — вырывают им зубы, и лишают всяческого кайфа от забористого наркотика — метапрограммирования .
Re[22]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 21:39
Оценка: +1
Здравствуйте, Gaperton, Вы писали:

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


Тут еще стоит добавить, что "доморощенные гении" обыкновенно крайне, как бы это сказать, за... диристы. . Они уверены, что они такие прям уникумы-уникумы.

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

Метакод — он такой. Он дает "избранным" очень много власти. Слишком. И это очень нехорошо и опасно, когда такая власть оказывается в руках человека с ментальностью ребенка.

Ой, прям чувствую, сейчас кто-нибудь начнет мне говорить, что я, якобы, испытал какую-то травму от контакта с неимоверно талантливыми самородками, и именно поэтому так пишу . Не, ребят, мне — пофигу. Это коллеги-программисты испытывали травмы, а я менеджер .
Re[22]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 21:56
Оценка: 78 (5) +1 :))
G>И закончится тем, что разрабы будут писать на говнодсл с кучей интересных "багофич". И новонанятые разработчики, глядя на этот ужас, будут через одного увольняться на второй день после найма. Потому, что изучение этого недоязыка, сделанного кучкой доморощенных гениев, лично им никакого профита не принесет — следующий работодатель не оценит.

И я, в общем, теперь вполне живо себе представляю, что творилось в яху после покупки замечательного стартапа грехэма . Настолько, что готов делать ставки.

Началось все с того, что они честно попытались развивать все на LISP. Однако, Грэхем не смог донести до команды прелесть своего ДСЛ, и в результате легко вошел в конфликт с командой, и обозвал их идиотами. Эти самородки — они так, гхм, нетерпеливы, и резки, да. Особенно когда становятся успешными мультимиллионерами.

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

Менеджер в непростой ситуации. Он понимает, что Грехэму, который внезапно мультимиллионер, в сущности уже на все насрать. И единственный человек, которому что-то надо — это он, менеджер (этим всегда заканчивается). менеджер попросил разработчиков не ссорится, и прикинуть план поэтапного переписывания этого метаговнокода, чтобы его можно было размазать, потому, что другие планы просто не работают.

И он, осознавая беспомощность, следующую из отсутствия маневра и завязанности на одном малоадекватном человеке, ставит команде одно условие. Больше никаких метаязыков. Выбирайте любой.

Вот так оно, скорее всего, было. Безрадостная картина. И те манеры сторонников ДСЛ, которые мы наблюдаем сейчас на РСДН, не дают никаких поводов для оптимизма. Видите-ли, код пишется не для компьютера. Он пишется в первую очередь для другого человека. И разработка — это в первую очередь общение человека с человеком, а не уникомов с компьютерами.
Re[23]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 22:02
Оценка: +1
Здравствуйте, Gaperton, Вы писали:

G>Менеджер в непростой ситуации. Он понимает, что Грехэму, который внезапно мультимиллионер, в сущности уже на все насрать. И единственный человек, которому что-то надо — это он, менеджер (этим всегда заканчивается). менеджер попросил разработчиков не ссорится, и прикинуть план поэтапного переписывания этого метаговнокода, чтобы его можно было размазать, потому, что другие планы просто не работают.


А Грэхем, уволившись, пишет книжки про нереальный личный success story. Которыми вдохносляется молодежь. Пионер — это ж не возраст, он же молод душой, и характерен своей инфантильностью. Аудитория огромна.

Неудивительно. Для Грэхема story закончился продажей его стартапа. А для его братьев-программитов начались херовые будни, про которые никто не пишет книжек.
Re[9]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 22:56
Оценка: :)
Здравствуйте, VladD2, Вы писали:

G>>Ты, Влад, хочешь верить в то, что окружающие тебя непонятные люди — идиоты.

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

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

G>>А они не идиоты. В системе Грехема было 40% метакода. Нанять в америке лисперов — два пальца об асфальт. В стартапе Грехема было двое, и оба уволились. Менеджер этого проекта — не идидот, он не более чем решал задачу методом наименьших усилий.


VD>Прав менеджер или не прав решает время. Судя по тому, что до решения переписать на С++ проект был успешным, а после переписывания сдох и определяет то, что менеджер был не прав. Вот если бы проект на Лиспе загибался, а на будучи переписанным на плюсы вдруг взлетел, то можно было бы твою трактовку обсудить. А так ты получается, что ты перевернул все с ног на голову.


Тебе ниже человек ответил, что и как у кого получается. По итогам, у тебя получается не очень хорошо.

VD>>>У Вольфханда же была та самая "проблема" что ты описал выше (первая цитата в этом сообщении). Ему вместо (вполне высокоуровневого) кода на ЯОН свалилась поддержка того же самого кода но на ДСЛ-е.

G>>Выше ты писал, что ему свалилась система на обычном языке, и он переписал ее на объясненном ему коллегами дсл. Разница.
VD>Переписал не он, а я (и Хардейс). А он как раз был вынужден в этом коде (на ДСЛ-е) разбираться.

Богатый опыт. Ну ты для начала самоустранись, как Грэхем. Чтобы ничего, кроме исходного кода, для разбирательства было недоступно. А до этого напиши столько кода, сколько написали они — для этого надо много времени и энергии. Тогда ты приблизишься к ситуации, о которой говорил я.

Правда после самоустранения ты результатов заметить не сможешь. Да и не интересно тебе будет. Займешься другими интересными вещами. Как Грэхем.
Re[14]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 11.03.13 23:02
Оценка: :)
Здравствуйте, Tanker, Вы писали:

T>ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался.


Я еще не видел темы, в которой программисты не разбирались бы лучше всех . А уж в бизнесе — ваще. Программист сказал — сдох, зачит — сдох .
Re[23]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 12.03.13 03:12
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>И он, осознавая беспомощность, следующую из отсутствия маневра и завязанности на одном малоадекватном человеке, ставит команде одно условие. Больше никаких метаязыков. Выбирайте любой.


Это частная проблема завязаности на неадекватного гения, а не DSL в общем. Уж насколько ООП позволяет набить шишек, но ничего, получили несколько раз граблями по лбу, выработали SOLID и ООП стал не таким страшным. И злые гении самоучки, проектировавшие мозгодробительные иерархии, сменились вменяемыми людьми, которые действительно могут это делать. DSL-строение не получило еще адекватных инструментов и практик, вроде паттернов/антипаттернов, занимаются им в основном "гении" с горящими глазами, отсюда идут описанные тобой страхи менеджеров. Менеджеры боятся — технология не идет в мейнстрим, не идет в мейнстрим — нет серьезной теории, которая должна быть основана на практике, как SOLID, а не высосана из пальца.

С другой стороны, в тех же рельсовых гемах DSL'и уже мейнстрим и их учат разрабы, а не увольняются на второй день. Неудачные эксперименты просто не находят популярности. Дефакто на это есть стандарты, стили кодирования. Пока негласные, но понятные людям, которые читают код.

G>Вот так оно, скорее всего, было. Безрадостная картина. И те манеры сторонников ДСЛ, которые мы наблюдаем сейчас на РСДН, не дают никаких поводов для оптимизма. Видите-ли, код пишется не для компьютера. Он пишется в первую очередь для другого человека. И разработка — это в первую очередь общение человека с человеком, а не уникомов с компьютерами.


Манеры на РСДН я наблюдаю очень разные. Как у сторонников так и у противников.
Re[9]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 12.03.13 04:21
Оценка: +3
Здравствуйте, Gaperton, Вы писали:

G>Отличается. Ты знаешь правила чтения и синтаксис обычного кода. Это дохрена, если вдуматься.


var lightsOut = 1.Hour(30.Minutes()).After(bedTime);

Assert.That(actual, Is.LessThan(50.Milliseconds().After(expected)));


Что про этот код говорит знание синтаксиса, а что обычная логика?

G>Ни одной строчке чужого дсл, ни одному слову ты доверять не можешь. Особо учитывая то, что в нем могут быть баги.


Несмотря на синтаксис C#, это обычный DSL. Чтобы его читать важнее знать домены (измерение времени и тестирование), чем ломать голову над вопросами неоднозначности синтаксиса:

а) Какая перегрузка метода Hour будет вызвана?
б) Assert и Is являются классами или полями/свойствами?
в) Какой тип возвращает Is.LessThan(50.Milliseconds().After(expected)) и какие данные хранятся в возвращаемом значении?

Чтобы читать и писать этот код данные знания просто не нужны, а дебажить его занятие не для слабонервных. Доверять нижележащему коду можно и нужно, несмотря на то, что в нем могут быть баги.
Re[10]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: WolfHound  
Дата: 12.03.13 11:01
Оценка: +2
Здравствуйте, Gaperton, Вы писали:

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

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

T>>ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался.

G>Я еще не видел темы, в которой программисты не разбирались бы лучше всех . А уж в бизнесе — ваще. Программист сказал — сдох, зачит — сдох .
Ага... он настолько жив, что яха его даже продать не смогла. Хотя пыталась...
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 12.03.13 15:02
Оценка: 12 (1)
Здравствуйте, Ziaw, Вы писали:

G>>Отличается. Ты знаешь правила чтения и синтаксис обычного кода. Это дохрена, если вдуматься.


Z>
Z>var lightsOut = 1.Hour(30.Minutes()).After(bedTime);

Z>Assert.That(actual, Is.LessThan(50.Milliseconds().After(expected)));
Z>


Z>Что про этот код говорит знание синтаксиса, а что обычная логика?


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

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

Чтобы ты прочувствовал, насколько это много — скажи мне, что тебе говорит вот этот код:
s =: ({. , }. /: 12"_ o. }. - {.) @ /:~
l =: 11"_ o. [: (* +)/ }. - {!!
rr =: (1"_ , (0"_ > 3: l\ ]) , 1"_) # ]
hull =: [: rr^:_ s


Нет, это вовсе не язык непонятный. И программа вполне хорошо написана. Единственная проблема в том, что ты (скорее всего) читать его не умеешь — не надо путать это собственным невладением языком. Однако, эта проблема довольно просто решается — по J все-таки есть "учебники".

G>>Ни одной строчке чужого дсл, ни одному слову ты доверять не можешь. Особо учитывая то, что в нем могут быть баги.


Z>Несмотря на синтаксис C#, это обычный DSL. Чтобы его читать важнее знать домены (измерение времени и тестирование), чем ломать голову над вопросами неоднозначности синтаксиса:


Неужели? А вот это самый обычный JavaScript, а конкретнее — вполне обычная библиотека should.js. Выглядит куда приличнее, чем "обычный DSL". Никаких таких "доменов" знать не надо — на, полюбопытствуй.

var user = {
    name: 'tj'
  , pets: ['tobi', 'loki', 'jane', 'bandit']
};

user.should.have.property('name', 'tj');
user.should.have.property('pets').with.lengthOf(4);

someAsyncTask(foo, function(err, result){
  should.not.exist(err);
  should.exist(result);
  result.bar.should.equal(foo);
});
Re[24]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 12.03.13 15:04
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z> DSL-строение не получило еще адекватных инструментов и практик, вроде паттернов/антипаттернов, занимаются им в основном "гении" с горящими глазами, отсюда идут описанные тобой страхи менеджеров. Менеджеры боятся — технология не идет в мейнстрим, не идет в мейнстрим — нет серьезной теории, которая должна быть основана на практике, как SOLID, а не высосана из пальца.


Понятно. Менеджеры во всем виновыты. У них иррациональные страхи. Как это знакомо .
Re[16]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Gaperton http://gaperton.livejournal.com
Дата: 12.03.13 15:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

T>>>ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался.

G>>Я еще не видел темы, в которой программисты не разбирались бы лучше всех . А уж в бизнесе — ваще. Программист сказал — сдох, зачит — сдох .
WH>Ага... он настолько жив, что яха его даже продать не смогла. Хотя пыталась...

Ага. И по-твоему, если бы он был написан на LISP, то был бы гораздо живее, да?
Re[25]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 12.03.13 15:45
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Понятно. Менеджеры во всем виновыты. У них иррациональные страхи. Как это знакомо .


Я этого не говорил. Видимо тебе просто захотелось это услышать.
Re[17]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: WolfHound  
Дата: 12.03.13 15:51
Оценка:
Здравствуйте, Gaperton, Вы писали:

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

G>Ага. И по-твоему, если бы он был написан на LISP, то был бы гораздо живее, да?
Не переводи стрелки. Тут пытаются втирать, что проект жив. А это не правда.
Он еще трепыхается по тому, что в его названии есть слово яха. Без него он сдохнет сразу. Поэтому его никто и не купил.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Ziaw Россия  
Дата: 12.03.13 16:09
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Обычная логика говорит мне, что если бы этот код состоял из конструкций самоделкина, в котором я ищу ошибку, то доверять в нем нельзя ни единому слову. Например, LessThan может на деле в ряде ситуаций означать LesserOrEqual, или того хуже.


Итак, проблема все таки не в DSL, а в самоделкине? Так с этим я и не спорил.

G>Чтобы ты прочувствовал, насколько это много — скажи мне, что тебе говорит вот этот код:

G>Нет, это вовсе не язык непонятный. И программа вполне хорошо написана. Единственная проблема в том, что ты (скорее всего) читать его не умеешь — не надо путать это собственным невладением языком. Однако, эта проблема довольно просто решается — по J все-таки есть "учебники".

Да, даже зная синтаксис я тут скорее всего ничего не пойму. Надо понимать, как такие программы пишутся, какие приемы используются. Знание синтаксиса не приблизит меня к пониманию ни на йоту. Вывод какой?

Z>>Несмотря на синтаксис C#, это обычный DSL. Чтобы его читать важнее знать домены (измерение времени и тестирование), чем ломать голову над вопросами неоднозначности синтаксиса:


G>Неужели? А вот это самый обычный JavaScript, а конкретнее — вполне обычная библиотека should.js. Выглядит куда приличнее, чем "обычный DSL". Никаких таких "доменов" знать не надо — на, полюбопытствуй.


Как это не надо? Я сходу не понимаю, что делает этот код, хотя чтение JS для меня не является проблемой. Надо знать область применения этой штуки и термины принятые там, то есть домен. Предположив, что это тестирование, я могу начать догадываться о смысле кода. И да, это DSL, вполне обычный, а не какой-то особо приличный.
Re[12]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
От: Mamut Швеция http://dmitriid.com
Дата: 12.03.13 19:09
Оценка:
G>>Чтобы ты прочувствовал, насколько это много — скажи мне, что тебе говорит вот этот код:
G>>Нет, это вовсе не язык непонятный. И программа вполне хорошо написана. Единственная проблема в том, что ты (скорее всего) читать его не умеешь — не надо путать это собственным невладением языком. Однако, эта проблема довольно просто решается — по J все-таки есть "учебники".

Z>Да, даже зная синтаксис я тут скорее всего ничего не пойму. Надо понимать, как такие программы пишутся, какие приемы используются. Знание синтаксиса не приблизит меня к пониманию ни на йоту. Вывод какой?


Что не надо рассказывать сказки про золотые всем понятные и самодокументируемые DSL'и, которые сразу всех спасут.


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.