Здравствуйте, VladD2, Вы писали:
VD>Я ссылки не прикаповал, а гуглить ты и сам можешь. Это одна из известных "историй успеха" которые Грэхэм описывал в своей книге (если не ошибаюсь, в этой).
Здравствуйте, VladD2, Вы писали:
T>>Как то так выходит, что в яхе c тобой не согласны http://smallbusiness.yahoo.com/
VD>Где и с чем не согласны? По подробнее, плиз. А то случайным образом данная ссылка как-то не сильно смахивает на аргумент.
Здравствуйте, Tanker, Вы писали:
T>С языком получается примерно так — пишешь первую версию, отдаешь разрабам, они быстро плодят в десятки раз больше кода, чем ты этого ожидал. Ты меняешь чтото в языке и тут надо обладать достаточной харизмой что бы убедить разрабов переписать их код.
В реальной ситуации у тебя, как у менеджера и/или программиста, просто не будет времени переписывать код. Потому, что ресурсы ограничены, а в бэклоге прикладных, конкретных задач на два года вперед, из которых на полгода тех, которых надо было сделать вчера.
И закончится тем, что разрабы будут писать на говнодсл с кучей интересных "багофич". И новонанятые разработчики, глядя на этот ужас, будут через одного увольняться на второй день после найма. Потому, что изучение этого недоязыка, сделанного кучкой доморощенных гениев, лично им никакого профита не принесет — следующий работодатель не оценит.
Это "реальная реальность" гарантировано наступит тогда, когда команда разработчиков будет больше, чем 5-6 человек. А с высокой вероятностью — когда их больше двух.
Я, собственно, попадал в подобные ситуации дважды на руководящей позиции. Самое интересное — есть некоторые меры (сводящиеся к нечеловеческой дисциплине проектирования), которые помогут не просто избежать коллапса, но и извлечь из метафишек пользу.
И все эти меры ограничивают свободу, которой так восхищаются местные товарищи . Прям скажем — вырывают им зубы, и лишают всяческого кайфа от забористого наркотика — метапрограммирования .
Re[22]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
G>И закончится тем, что разрабы будут писать на говнодсл с кучей интересных "багофич". И новонанятые разработчики, глядя на этот ужас, будут через одного увольняться на второй день после найма. Потому, что изучение этого недоязыка, сделанного кучкой доморощенных гениев, лично им никакого профита не принесет — следующий работодатель не оценит.
Тут еще стоит добавить, что "доморощенные гении" обыкновенно крайне, как бы это сказать, за... диристы. . Они уверены, что они такие прям уникумы-уникумы.
Что неимоверно отягчает их общение с новонанятыми специалистами. Не каждый, знаете-ли, готов терпеть такое общение, ага. А уволить засранца за переходящую все границы наглость и хамство нельзя — он, видите-ли, слишком много знает.
Метакод — он такой. Он дает "избранным" очень много власти. Слишком. И это очень нехорошо и опасно, когда такая власть оказывается в руках человека с ментальностью ребенка.
Ой, прям чувствую, сейчас кто-нибудь начнет мне говорить, что я, якобы, испытал какую-то травму от контакта с неимоверно талантливыми самородками, и именно поэтому так пишу . Не, ребят, мне — пофигу. Это коллеги-программисты испытывали травмы, а я менеджер .
Re[22]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
G>И закончится тем, что разрабы будут писать на говнодсл с кучей интересных "багофич". И новонанятые разработчики, глядя на этот ужас, будут через одного увольняться на второй день после найма. Потому, что изучение этого недоязыка, сделанного кучкой доморощенных гениев, лично им никакого профита не принесет — следующий работодатель не оценит.
И я, в общем, теперь вполне живо себе представляю, что творилось в яху после покупки замечательного стартапа грехэма . Настолько, что готов делать ставки.
Началось все с того, что они честно попытались развивать все на LISP. Однако, Грэхем не смог донести до команды прелесть своего ДСЛ, и в результате легко вошел в конфликт с командой, и обозвал их идиотами. Эти самородки — они так, гхм, нетерпеливы, и резки, да. Особенно когда становятся успешными мультимиллионерами.
В результате, группа разработки (которая была набрана со знанием LISP, его в половине американских университетов в базовой программе преподают, и я уверен, изначально хотела на нем писать) поставила менеджеру ультиматум. Или — или (убирайте к чертям Грэхема, или мы нахрен уволимся).
Менеджер в непростой ситуации. Он понимает, что Грехэму, который внезапно мультимиллионер, в сущности уже на все насрать. И единственный человек, которому что-то надо — это он, менеджер (этим всегда заканчивается). менеджер попросил разработчиков не ссорится, и прикинуть план поэтапного переписывания этого метаговнокода, чтобы его можно было размазать, потому, что другие планы просто не работают.
И он, осознавая беспомощность, следующую из отсутствия маневра и завязанности на одном малоадекватном человеке, ставит команде одно условие. Больше никаких метаязыков. Выбирайте любой.
Вот так оно, скорее всего, было. Безрадостная картина. И те манеры сторонников ДСЛ, которые мы наблюдаем сейчас на РСДН, не дают никаких поводов для оптимизма. Видите-ли, код пишется не для компьютера. Он пишется в первую очередь для другого человека. И разработка — это в первую очередь общение человека с человеком, а не уникомов с компьютерами.
Re[23]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
G>Менеджер в непростой ситуации. Он понимает, что Грехэму, который внезапно мультимиллионер, в сущности уже на все насрать. И единственный человек, которому что-то надо — это он, менеджер (этим всегда заканчивается). менеджер попросил разработчиков не ссорится, и прикинуть план поэтапного переписывания этого метаговнокода, чтобы его можно было размазать, потому, что другие планы просто не работают.
А Грэхем, уволившись, пишет книжки про нереальный личный success story. Которыми вдохносляется молодежь. Пионер — это ж не возраст, он же молод душой, и характерен своей инфантильностью. Аудитория огромна.
Неудивительно. Для Грэхема story закончился продажей его стартапа. А для его братьев-программитов начались херовые будни, про которые никто не пишет книжек.
Re[9]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, VladD2, Вы писали:
G>>Ты, Влад, хочешь верить в то, что окружающие тебя непонятные люди — идиоты. VD>Давай лучше ты не будешь телепатией заниматься. У тебя не очень хорошо выходит.
Понимать мотивы поведения людей у меня очень хорошо выходит. В сущности, мне именно за это на работе деньги платят.
G>>А они не идиоты. В системе Грехема было 40% метакода. Нанять в америке лисперов — два пальца об асфальт. В стартапе Грехема было двое, и оба уволились. Менеджер этого проекта — не идидот, он не более чем решал задачу методом наименьших усилий.
VD>Прав менеджер или не прав решает время. Судя по тому, что до решения переписать на С++ проект был успешным, а после переписывания сдох и определяет то, что менеджер был не прав. Вот если бы проект на Лиспе загибался, а на будучи переписанным на плюсы вдруг взлетел, то можно было бы твою трактовку обсудить. А так ты получается, что ты перевернул все с ног на голову.
Тебе ниже человек ответил, что и как у кого получается. По итогам, у тебя получается не очень хорошо.
VD>>>У Вольфханда же была та самая "проблема" что ты описал выше (первая цитата в этом сообщении). Ему вместо (вполне высокоуровневого) кода на ЯОН свалилась поддержка того же самого кода но на ДСЛ-е. G>>Выше ты писал, что ему свалилась система на обычном языке, и он переписал ее на объясненном ему коллегами дсл. Разница. VD>Переписал не он, а я (и Хардейс). А он как раз был вынужден в этом коде (на ДСЛ-е) разбираться.
Богатый опыт. Ну ты для начала самоустранись, как Грэхем. Чтобы ничего, кроме исходного кода, для разбирательства было недоступно. А до этого напиши столько кода, сколько написали они — для этого надо много времени и энергии. Тогда ты приблизишься к ситуации, о которой говорил я.
Правда после самоустранения ты результатов заметить не сможешь. Да и не интересно тебе будет. Займешься другими интересными вещами. Как Грэхем.
Re[14]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
G>И он, осознавая беспомощность, следующую из отсутствия маневра и завязанности на одном малоадекватном человеке, ставит команде одно условие. Больше никаких метаязыков. Выбирайте любой.
Это частная проблема завязаности на неадекватного гения, а не DSL в общем. Уж насколько ООП позволяет набить шишек, но ничего, получили несколько раз граблями по лбу, выработали SOLID и ООП стал не таким страшным. И злые гении самоучки, проектировавшие мозгодробительные иерархии, сменились вменяемыми людьми, которые действительно могут это делать. DSL-строение не получило еще адекватных инструментов и практик, вроде паттернов/антипаттернов, занимаются им в основном "гении" с горящими глазами, отсюда идут описанные тобой страхи менеджеров. Менеджеры боятся — технология не идет в мейнстрим, не идет в мейнстрим — нет серьезной теории, которая должна быть основана на практике, как SOLID, а не высосана из пальца.
С другой стороны, в тех же рельсовых гемах DSL'и уже мейнстрим и их учат разрабы, а не увольняются на второй день. Неудачные эксперименты просто не находят популярности. Дефакто на это есть стандарты, стили кодирования. Пока негласные, но понятные людям, которые читают код.
G>Вот так оно, скорее всего, было. Безрадостная картина. И те манеры сторонников ДСЛ, которые мы наблюдаем сейчас на РСДН, не дают никаких поводов для оптимизма. Видите-ли, код пишется не для компьютера. Он пишется в первую очередь для другого человека. И разработка — это в первую очередь общение человека с человеком, а не уникомов с компьютерами.
Манеры на РСДН я наблюдаю очень разные. Как у сторонников так и у противников.
Re[9]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, 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? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
G>А если принять во внимание легкое отношение к дсл местной аудитории — в нем будет просто дохрена багов и кривой семантики. Ты обладаешь ментальным сканированием? Ты можешь знать, что этому марсианину показалось логичным? Книг он на эту тему не писал — западло.
Ты тут вещаешь про проблемы с общением у авторов ДСЛ. А из тебя самого адекватность прямо так и прет... Людей, про которых ты ничего не знаешь, марсианами обозвал... А потом удивляешься, почему эти люди посылают тебя. И, конечно же, приходишь к выводу, что проблема в этих людях. Ибо такой великий специалист по пониманию мотивов людей не прав быть не может.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[15]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
T>>ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался. G>Я еще не видел темы, в которой программисты не разбирались бы лучше всех . А уж в бизнесе — ваще. Программист сказал — сдох, зачит — сдох .
Ага... он настолько жив, что яха его даже продать не смогла. Хотя пыталась...
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
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". Никаких таких "доменов" знать не надо — на, полюбопытствуй.
Здравствуйте, Ziaw, Вы писали:
Z> DSL-строение не получило еще адекватных инструментов и практик, вроде паттернов/антипаттернов, занимаются им в основном "гении" с горящими глазами, отсюда идут описанные тобой страхи менеджеров. Менеджеры боятся — технология не идет в мейнстрим, не идет в мейнстрим — нет серьезной теории, которая должна быть основана на практике, как SOLID, а не высосана из пальца.
Понятно. Менеджеры во всем виновыты. У них иррациональные страхи. Как это знакомо .
Re[16]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, WolfHound, Вы писали:
T>>>ViaWeb -> Yahoo! Stores -> Yahoo! Smallbusiness Сдох только лисп, бизнес остался. G>>Я еще не видел темы, в которой программисты не разбирались бы лучше всех . А уж в бизнесе — ваще. Программист сказал — сдох, зачит — сдох . WH>Ага... он настолько жив, что яха его даже продать не смогла. Хотя пыталась...
Ага. И по-твоему, если бы он был написан на LISP, то был бы гораздо живее, да?
Re[25]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
WH>>Ага... он настолько жив, что яха его даже продать не смогла. Хотя пыталась... G>Ага. И по-твоему, если бы он был написан на LISP, то был бы гораздо живее, да?
Не переводи стрелки. Тут пытаются втирать, что проект жив. А это не правда.
Он еще трепыхается по тому, что в его названии есть слово яха. Без него он сдохнет сразу. Поэтому его никто и не купил.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
Здравствуйте, Gaperton, Вы писали:
G>Обычная логика говорит мне, что если бы этот код состоял из конструкций самоделкина, в котором я ищу ошибку, то доверять в нем нельзя ни единому слову. Например, LessThan может на деле в ряде ситуаций означать LesserOrEqual, или того хуже.
Итак, проблема все таки не в DSL, а в самоделкине? Так с этим я и не спорил.
G>Чтобы ты прочувствовал, насколько это много — скажи мне, что тебе говорит вот этот код: G>Нет, это вовсе не язык непонятный. И программа вполне хорошо написана. Единственная проблема в том, что ты (скорее всего) читать его не умеешь — не надо путать это собственным невладением языком. Однако, эта проблема довольно просто решается — по J все-таки есть "учебники".
Да, даже зная синтаксис я тут скорее всего ничего не пойму. Надо понимать, как такие программы пишутся, какие приемы используются. Знание синтаксиса не приблизит меня к пониманию ни на йоту. Вывод какой?
Z>>Несмотря на синтаксис C#, это обычный DSL. Чтобы его читать важнее знать домены (измерение времени и тестирование), чем ломать голову над вопросами неоднозначности синтаксиса:
G>Неужели? А вот это самый обычный JavaScript, а конкретнее — вполне обычная библиотека should.js. Выглядит куда приличнее, чем "обычный DSL". Никаких таких "доменов" знать не надо — на, полюбопытствуй.
Как это не надо? Я сходу не понимаю, что делает этот код, хотя чтение JS для меня не является проблемой. Надо знать область применения этой штуки и термины принятые там, то есть домен. Предположив, что это тестирование, я могу начать догадываться о смысле кода. И да, это DSL, вполне обычный, а не какой-то особо приличный.
Re[12]: А при чем тут DSL? (в продолжении темы о языках общего назначения)
G>>Чтобы ты прочувствовал, насколько это много — скажи мне, что тебе говорит вот этот код: G>>Нет, это вовсе не язык непонятный. И программа вполне хорошо написана. Единственная проблема в том, что ты (скорее всего) читать его не умеешь — не надо путать это собственным невладением языком. Однако, эта проблема довольно просто решается — по J все-таки есть "учебники".
Z>Да, даже зная синтаксис я тут скорее всего ничего не пойму. Надо понимать, как такие программы пишутся, какие приемы используются. Знание синтаксиса не приблизит меня к пониманию ни на йоту. Вывод какой?
Что не надо рассказывать сказки про золотые всем понятные и самодокументируемые DSL'и, которые сразу всех спасут.