metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2007-06-14 09:32 am

Всем гуру птичьих языков посвящается

Всем, кто изобретает собственные говноязыки программирования, или собирается "упростить программу", встроив в нее скриптовый движок для бизнес-логики - читать следующее до полного просветления:

Корпоративный движок правил

Мягкое кодирование


Особенно, бля, это касается разработчиков всякого ненавидимого нами enterprise-говна. С вашими долбаными поделками потом десятки лет люди мучиться будут.

[identity profile] nvm.livejournal.com 2007-06-14 09:38 am (UTC)(link)
так вроде бы есть стандарт на эти квадратики (функционально-блочные диаграммы то есть), не помню как называется.
И в принципе достаточно удобно -- наши разработчики были отделены от программистов, и занимались двумя вещами -- сборкой шкафов и как раз тасканием квадратиков со стрелочками. Контроллеры были разные.
То есть такие птичьи языки имеют смысл, когда надо делать много разных систем под заказ, да вот хотя бы у 1с такой язык.
В рамках же одной конторы это зло, конечно.

[identity profile] metaclass.livejournal.com 2007-06-14 09:44 am (UTC)(link)
Язык 1С и его окружение адский ужас.
Много разных систем под заказ было бы делать гораздо проще если бы вместо встроенного языка к 1С сделали бы толковый API для написания расширений, а язык бы оставили только для генерации простых отчетов в стиле "входные параметры-запрос-печатная форма".
Просто разработчики 1С успели пройти по пути полного неадеквата до конца и сделать этот неадекват стандартом де-факто.
Надеюсь, их всех отправят в сибирь, пылесосить сугробы на урановых рудниках.

[identity profile] nvm.livejournal.com 2007-06-14 09:53 am (UTC)(link)
я знаю чем бы кончилось. Накопилась бы критическая масса расширений, а потом кто-нибудь сделал бы своё ядро, совместимое по API, но лучше или дешевле, и разработчики 1с пошли бы по миру.

[identity profile] nvm.livejournal.com 2007-06-14 09:55 am (UTC)(link)
то есть путь неадеквата -- это как раз путь, по которому надо идти до конца, или уж не вставать на него. Останавливаться на этом пути нельзя, иначе вылетишь с рынка :)

[identity profile] metaclass.livejournal.com 2007-06-14 09:58 am (UTC)(link)
Да, что-то вроде этого :)

[identity profile] 1ceheart.livejournal.com 2007-06-14 09:58 am (UTC)(link)
> И в принципе достаточно удобно

Это удобно, пока реализуемая логика не выходит за уровень "если сработал датчик 1, открыть клапан 2". Реализация чего-то чуть более сложного превращается в адскую пытку, а поддержка и внесение изменений - вообще невозможны в принципе, хотя бы потому, что квадратикам со стрелочками нельзя сделать diff.

А птичий язык для постпроцессинга G-кода для ЧПУ? Это же пиздец. Конфиг sendmail нервно курит в углу.

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

[identity profile] metaclass.livejournal.com 2007-06-14 10:44 am (UTC)(link)
+1
Визуальные и прочие бинарные языки не пригодны для контроля версий. Совсем.

Я все таки очень надеюсь, что их всех отправят пылесосить цеха Железногорского ГХК от плутониевой пыли.

[identity profile] nvm.livejournal.com 2007-06-14 11:54 am (UTC)(link)
так надо стрелочки с квадратиками хранить в xml!

[identity profile] metaclass.livejournal.com 2007-06-14 12:12 pm (UTC)(link)
Эээ, вы что?
Тогда же любой нормальный программист сможет разобраться и избавиться от необходимости в утилитах вендора, прохождения курсов у него же, ежегодной платы за право задать вопрос в техподдержке.

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

[identity profile] nvm.livejournal.com 2007-06-14 12:00 pm (UTC)(link)
>>Это удобно, пока реализуемая логика не выходит за уровень "если сработал датчик 1, открыть клапан 2".
так в 95% случаев это и надо.
>>Реализация чего-то чуть более сложного превращается в адскую пытку
в основном это из-за убожества контроллерного железа, которое птичьи языки добросовестно и отражают.
>>квадратикам со стрелочками нельзя сделать diff
да, это проблема.

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

[identity profile] 1ceheart.livejournal.com 2007-06-14 12:31 pm (UTC)(link)
> так в 95% случаев это и надо.

В 95% случаев это надо на первом этапе. Потом приходит заказчик (технолог, инженер, не суть) и говорит - а вот мы тут подумали и решили сделать так, чтобы клапан 2 открывался не сразу после срабатывания датчика 1, а через 15 секунд и только если ручка 5 повернута в положение 4, а если за 30 секунд до этого была нажата кнопка 3, то бла-бла-бла. И люди начинают сношаться с квадратиками и стрелочками, воплощая на 20 страницах картинок то, что выражается пятью строками кода.

> а чтобы он ещё мог кодить на С -- уже гораздо тяжелее, и платить ему придётся дикие деньги

Во-первых, не обязательно C. Ничто не мешает птичьему языку быть просто C-style, и компилиться в тот же байт-код - а-ля PHP, кодеры на котором, кстати, стоят копейки.

А люди, которые когда-то нарисовали 20 страниц квадратиков со стрелочками и их теперь приходится держать в штате только потому, что они хотя бы частично помнят, как это работает, обходятся в итоге дороже.