metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-03-30 08:51 pm

Эрланг vs "мейнстрим"

Очередной раз сцепились с зелантоном на тему того, что лучше - использовать эрланг или смирится и использовать C#/Java/С++/C.
Ну два последних языка мы не рассматриваем, это специфические языки, которые за пределы тяжелых вычислений и ядер операционных систем лучше не вытаскивать. В случае моих задач С и С++ очень быстро деградируют до состояния "переписали половину эрланга и лиспа руками", чего делать, само собой, смысла нет.

Но в целом, вопрос растения против зомби "эрланг против жабы" остается открытым. При этом, жаба у нас в продакшене есть сугубо в виде библиотек для использования в кложури, а C# меня бесит тем, что использование его - это можно сразу ставить крест на идее "использовать линукс в качестве основной серверной системы". Моно, само собой, не работает и работать никогда не будет, более того, сунуть непонятный гибрид ужа и носорога на продакшен сервер я опасаюсь.
Я бы вообще оставил для всего кложурь, но для темы данного спора разница между кложурью и эрлангом только в том, что первый язык более аккуратный, а по второму субъективно больше специалистов в дельта-окрестности. Ну и люди с мозгом, достаточно вывернутым для формулировки предметки на лиспе не так часто встречаются, более того - я понятия не имею, как этому обучить.

Аргументы зелантона (и частично артурега) выглядят следующим образом: с мейнстримными языками набрать 5-10 дешевых работников, из них выгнать наиболее тупых, остальных оставить и дать эволюционировать там до лидов и прочих сеньоров (если повезет, то зарплату им можно будет повышать медленее, чем растут их скиллы). Полученную команду можно или продать по головам если это аутсорс, или более-менее устойчиво эксплуатировать в продуктовой разработке, по причине закона больших чисел слабо завися от личных заебов отдельных разработчиков.

Для кложуре-эрлангов нужны 1-2 айседа и более-менее нормальные задачи и условия труда, по ушам высококвалифицированным разработчикам с опытом особо не поездишь. Эффективность такой организации разработки вроде бы выше, если разработчики с ежихами в дурку не уедут.

Вообще, у меня есть подозрение, что для использования мейнстримных языков и дешевых разработчиков придется выкинуть работу последних примерно 3-5 лет, потому что "не осилят". Даже с учетом того, что основная разработка ведется на мейнстримном дальеш некуда C#, еще присутствует чуть чуть С++/С, жабаскрипт, clojure, F# и очень много SQL. Я как-то не верю в дешевых разработчиков на C#, которые бы это согласились осиливать.

[identity profile] serguei tarassov [arbinada.com] (from livejournal.com) 2014-03-30 06:19 pm (UTC)(link)
Классический подход ERP: разделить разработку на ядро (фреймворк) и модули. Ядро писать на С/С++/Delpi/FreePascal/список продолжается, вынести наружу объектную модель и скриптовый язык, модули отдать прикладникам писать на этих самых скриптах.

[identity profile] metaclass.livejournal.com 2014-03-30 06:26 pm (UTC)(link)
Вот получается, что наиболее простой вариант так сделать - это лиспятина разная.
Делаем DSL, отдаем его предметникам, причем получается отсутствие границы между внешним и внутренним языком.

[identity profile] serguei tarassov [arbinada.com] (from livejournal.com) 2014-03-30 06:29 pm (UTC)(link)
Почему бы скриптовому языку не быть лиспоподобным.
Основное преимущество VB-подобия в наличии огромного количества примеров "ка сделать в ситуации Х".
Мне нравится паскаль-скрипт, его легче объяснять, но это субъективно.

[identity profile] fraks-nsk.livejournal.com 2014-04-05 06:07 pm (UTC)(link)
Пытался юзать паскаль-скрипт, но в той версии что я юзал (от FastReportа) как-то все было уныло в плане диагностики ошибок. В итоге, потратив на это дело год, я пришел к выводу что вместо того что бы рожать паскаль-скриптовые решения имитируя Delphi можно просто делать exe-шники на Delphi и не морщить мозг скриптом.

В итоге скрипт этот только унутре FastReport-а и остался.

[identity profile] head_thrash (from livejournal.com) 2014-03-30 07:09 pm (UTC)(link)
Хыхы, у нас так, но:

* Ядро написано на адовых плюсах, в них разбирается только 1 человек в компании
* Аппликухи пишутся на сишарпе (моно, ага :-D)

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

Шарпистов искать легко. Плюсовиков и джавистов - очень сложно. Первых умных очень мало, по вторым - куча шлака и энторпрайза головного мозга.

[identity profile] insanegigolo.livejournal.com 2014-03-30 07:35 pm (UTC)(link)
java & enterprise - братья навсегда, я так понимаю среднего джависта который не знает Буча и ко и не умеет клепать трехзвенки никуда не берут.

[identity profile] jdevelop.livejournal.com 2014-03-30 07:54 pm (UTC)(link)
это мифология.

[identity profile] insanegigolo.livejournal.com 2014-03-30 08:12 pm (UTC)(link)
а скажите в какой конторе джависта собеседуют и не спросять про шаблоны?

[identity profile] insanegigolo.livejournal.com 2014-03-30 08:50 pm (UTC)(link)
ну за этим интересным эфермизмом "глубокое понимание OOP" могут скрываться и шаблоны, и способы хранения в памяти, и сборщики мусора, и как видят ООП создатели Java. Больше информации об их интервью не нашел.

[identity profile] jdevelop.livejournal.com 2014-03-30 09:15 pm (UTC)(link)
шаблоны же не хотят как бе. А ООП бывает и без шаблонов, внезапно.

[identity profile] byyj.livejournal.com 2014-03-31 06:19 am (UTC)(link)
:) был уже один герой, внезапно открывший для себя, что он всю жизнь разговаривал прозой

[identity profile] dimaby1.livejournal.com 2014-03-30 08:47 pm (UTC)(link)
Зачем адекватному прикладнику заниматься программированием под самопальную ерунду, которая вне этой конторы никому не нужна.

[identity profile] serguei tarassov [arbinada.com] (from livejournal.com) 2014-03-30 09:00 pm (UTC)(link)
Использование термина "адекватный", как и "аджайл" - это диагноз :)
Разработчики на RPG, ABAP, MorphX или 1С - "неадекватные прикладники" :) В мире - тысячи небрендовых ERP со своими экосистемами...

[identity profile] zelanton.livejournal.com 2014-03-30 06:28 pm (UTC)(link)
пиши на эрланге, мы уже договорились)

[identity profile] jdevelop.livejournal.com 2014-03-30 07:11 pm (UTC)(link)
Критерий "не осилят" - это сугубо вами надуманный критерий, на самом деле. Ничего в вашем коде из того, что не мог бы сделать средний жабокодер, нет.

[identity profile] metaclass.livejournal.com 2014-03-30 07:43 pm (UTC)(link)
Да пытались мы их использовать, этих жабокодеров. Не работает. Качество "на отъебись".

[identity profile] jdevelop.livejournal.com 2014-03-30 07:53 pm (UTC)(link)
да не надо называть жабокодерами студентов бгуир, которых вы наняли работать за еду и подзатыльник.

[identity profile] metaclass.livejournal.com 2014-03-30 08:17 pm (UTC)(link)
А артурег считает что именно они жабакодеры.

[identity profile] jdevelop.livejournal.com 2014-03-30 08:19 pm (UTC)(link)
не, не считает

[identity profile] b00ter.livejournal.com 2014-03-30 08:20 pm (UTC)(link)
Ну да, мы знаем, что тру жабокодеры уже давно в бостонах сидят. Что, в целом, не отменяет "95% программистов на (Java|PHP|Ruby|Python|etc) - балбесы". Дартаньянство такое дартаньянство.p

[identity profile] jakobz.livejournal.com 2014-03-30 09:09 pm (UTC)(link)
Средний жабокодер всё равно пишет не на джаве, а на DSL поверх XML-я в какой-нибудь энтерпрайз-хреновине. От того что вместо треугольных скобочки станут круглыми, ничего для джависта не изменится.

[identity profile] justy-tylor.livejournal.com 2014-03-30 08:22 pm (UTC)(link)
Потенциального сотрудника может увлекать предметная область (геймдев, лекарства от рака, ...), технологии (хаскель, хипстакложурь, ...) и/или многобабла. Различная "опердень на жабе" в этом плане выглядит максимально не привлекательно, ибо за такие же заборы с коровниками в банковской сфере платят лучше.

[identity profile] potan.livejournal.com 2014-03-31 07:10 am (UTC)(link)
Эх, совместить бы все это...

[identity profile] yuri-yurkevich.livejournal.com 2014-04-05 06:38 am (UTC)(link)
Cовместить это можно, если разобраться с понятием того, что такое мирный атом.

И даже нужно.

[identity profile] jakobz.livejournal.com 2014-03-30 09:04 pm (UTC)(link)
А эрланг вообще для оперденей всяких покатит? Там по-идее надо метапрограммирования всякого, как у него с этим?

[identity profile] zelanton.livejournal.com 2014-03-30 09:23 pm (UTC)(link)
Ребе зачем-то понадобилось байтики массово херачить и паттерн-матчить, а это в ерланге внезапно действительно ок. Ну а метапрограммирование где надо поди на чём-то другом будет. Зоопарк в общем предвидится.

[identity profile] messirvoland.livejournal.com 2014-03-31 05:00 am (UTC)(link)
Просто оставлю эту старую запись от [livejournal.com profile] zamotivator Опердени на Эрланг (http://erlang-mnesia-video.ru/)

[identity profile] grey-kristy.livejournal.com 2014-03-31 08:32 am (UTC)(link)
Ну, теоритически, parse_transform позволяет издеваться над Erlang'ом как угодно

[identity profile] levgem.livejournal.com 2014-03-31 11:52 am (UTC)(link)
плохо.

Метапрограммирование идет над AST, который представляется в очень тяжелой для отладки форме.

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

[identity profile] berezovsky.livejournal.com 2014-03-30 09:20 pm (UTC)(link)
Попытка победить энтропию в условиях военной диктатуры.
Борьбу за идеи подменили поисками способа подчинить себе хаос.
Наконец-то я нашёл для себя ответ на вопрос, которым мучался больше семи лет.
В общем, ситуация примерно следующая.
Вместо фундаментальных исследований и производства реально полезных вещей, вроде экологическей еды, сверхскоросного транспорта и т.д. общество направили в русло компьютеризации.
Это, с одной стороны, позволяет вобрать в себя максимум человеческих душ, подключить их к центральному разуму, чтоб в конечном итоге управлять их желаниями, потребностями и эмоциями.
С другой стороны, нужно породить многообразие, чтобы этим многообразием увлекались, исследовали, и вовлекались в процесс без лишних усилий, как бы по собственному желанию.
Заодно это выгодно экономически. Потому что чем больше технологий и прочих штучек "прогресса", тем больше рабочих мест, покупок, продаж и оборота. Для текущей пирамиды это жизненно важно.
Соответствено, именно в этой сфере будет, где развернуться. А определённой категории увлёкшихся будет казаться, что повышенный доход в этой области связан именно с какими-то их личными интеллектуальными заслугами или стараниями.
Но на самом деле это самоубийство. Увлекаясь и рвя задницу, чтобы вобрать в себя всё и вся, чтобы успеть, охватить, продвинуться-возвыситься, не сдохнуть и выдержать конкуренцию, можно тупо перегореть и отправиться на помойку раньше, чем встанут на ноги собственные дети.
Уже мало кто думает, что делает, зачем и для кого. Технология и оптимизация стала самоцелью. Ценность дохода выше рассуждений о целесообразности. Понятия "продавать", "эксплуатировать" по отношению к человеку уже как бы в порядке вещей.
Если бы те кланы, которые создавали это видимое разнообразие, реально заботились о благосостоянии общем, а не своём, технологии развивались бы совершенно в другом ключе. Вместо сотен недоделанных, нерабочих, просто бесполезных библиотек, были бы единицы отточенных, отлаженных, универсальных и взаимозаменяемых.
Но это никому не нужно, нужно увеличивать этот разрыв, сеять хаос, разделять, властвовать, дробить до атомов, чтобы разум затерялся во всём этом бесконечном мусоре.
Участие в этом подобно работе на войну. Вроде, Стругацкие первые вопрос поставили. Если сейчас думать, чем прокормить ближнего, завтра этого ближнего может просто не стать, некого будет кормить.
То есть любое такое действие приводит только к укреплению Системы. Изнутри выхода на видно, нужно как-то абстрагиваться и посмотреть на неё со стороны, как бы сверху.
Вот там уже видно, куда двигаться и какой стратегии придерживаться. Завтра всё это наебнётся вместе с тысячами корпораций, где одни множили объекты хаоса, а другие хаос, который эти объекты обслуживал. И выяснится, что реально полезных объектов останутся считанные единицы, которые обслуживать можно будет ради самого факта причастности к идее.

[identity profile] d34u82.livejournal.com 2014-04-01 04:41 pm (UTC)(link)
но самое ужасное - невозможнось смириться с тупыми людишками в троллейбусах. это травмирует мозг, и сильно мешает работе программиста.

[identity profile] yuri-yurkevich.livejournal.com 2014-04-05 06:40 am (UTC)(link)
Cверхскоростной транспорт исключает экологическую еду.

А научиться правильно и экономно работать с информацией уменьшает потребность как в еде вообще, так и в транспорте.

[identity profile] berezovsky.livejournal.com 2014-04-05 06:55 am (UTC)(link)
Это не в один момент происходит, нужны переходные апокалиптические процессы. Точно так же как нельзя в один момент научиться питаться праной или солнцем без традиционной еды.

А у Рейчела, в частности, описан сверхскоростной транспорт на основе нулевой точки и города-сады со свежими овощами и фруктами, которые почти мгновенно и почти бесплатно переносятся в любое место земли. Но для этого нужно сначала поднять общий уровень веры в такие источники энергии и убрать большую часть негатива с планеты. Потому что нулевая точка и субатомные уровни - это уже область, где действует вера и желание. Будет вера - будет энергия, а сейчас такие эксперименты в лаборатории проваливаются, потому что проверяющие к ним скептически относятся. Так что всё это вполне совместимо.

[identity profile] yuri-yurkevich.livejournal.com 2014-04-05 11:48 am (UTC)(link)
Обмен энергией - это процесс разрушения сложной структуры и создания более простой из её остатков.

Чем он медленнее идёт, тем прочнее создаваемая структура.

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

[identity profile] yuri-yurkevich.livejournal.com 2014-04-05 11:49 am (UTC)(link)
При том при всём простая структура усложняется, и ей надо будет самой разрушаться.

Лучше это сделать управляемым процессом поиска и устранения ошибок.

[identity profile] gleb-kudr.livejournal.com 2014-03-30 09:48 pm (UTC)(link)
>Моно, само собой, не работает и работать никогда не будет

Он вообще-то работает.

[identity profile] head_thrash (from livejournal.com) 2014-03-31 07:18 am (UTC)(link)
В общем да, но не всегда и не везде. Ну вот например, наш showstopper:
http://stackoverflow.com/questions/18450/is-mono-ready-for-prime-time/19021501#19021501

Регулярно стресс-тестим новые версии, но бага Xamarin-ом не фиксится, да и похоже что и не будет фикситься. С подобным подходм неясно, зачем вообще использовать моно -- что в нём такого, ради чего стоит жрать этот кактус.

Ну, разве что куча легаси, которое надо поддерживать.

[identity profile] blackyblack.livejournal.com 2014-03-31 05:55 am (UTC)(link)
Про спор между кложурью и эрлангом между прочим Рич Хикки уже высказался. Мол эрланг - крутотень, но домейн специфик. А кложурь круче, потому что общего назначения. Сам язык не то что аккуратнее. У кложури вообще нет синтаксиса, поэтому и производится впечатление, что он аккуратнее.

[identity profile] archydragon.livejournal.com 2014-03-31 07:01 am (UTC)(link)
Как бы это общее назначение кложе боком не вышло, в плане распространения в ширнармассах.

[identity profile] blackyblack.livejournal.com 2014-03-31 07:05 am (UTC)(link)
Думаю это правильное решение. Энтерпрайз не очень любит всякие DSL потому что их становится много и на всех сотрудников не напасёшься. А вот решение "данные вместо синтаксиса" на мой взгляд ошибочное.

[identity profile] metaclass.livejournal.com 2014-03-31 07:56 am (UTC)(link)
Да, кложурь в плане общности заведомо лучше.

[identity profile] thedeemon.livejournal.com 2014-03-31 09:37 am (UTC)(link)
А что будет, если вместо
(let [x 1] x) написать (let [x 1) x) или (let [x: 1] x) ? ฺИли просто (+ 5 5;).
Хотя интерпретатор и не признается, плюясь исключениями вроде Unmatched Delimiter, по сути это синтаксические ошибки, ибо синтаксис там еще как есть, просто плохой примитивный.

[identity profile] blackyblack.livejournal.com 2014-03-31 09:46 am (UTC)(link)
Ну ладно. :)

[identity profile] vit-r.livejournal.com 2014-03-31 07:17 am (UTC)(link)
Есть люди, которые могут писать софт, и те, кому для этого не хватает мозгов. Опасные языки вроде С и С++ или языки, для которых сложно найти решения типичных задач, вроде эрланга и кложуры просто дают показать это деление явно. Ява и всякие Пыхыпы позволяют прятать неумение решать задачи за массой кода. На короткой дистанции это даёт выигрыш. Потом все закапываются в исправление ошибок.

В идеале, в фирме должны быть монстры, специалисты и люди, способные учиться. Язык банально подбирается под задачу.
Edited 2014-03-31 07:19 (UTC)

[identity profile] az-from-belarus.livejournal.com 2014-03-31 08:51 am (UTC)(link)
В такой ситуевине на мой взгляд следовало бы очень вдумчиво поработать над библиотечками. Довести их до некоего продуманно-минималистичного уровня, шоб набор кубиков был хорошо заточен под имеющиеся задачи, а не для любого сферического коня. А потом плавненько библиотечки поддерживать руководствуясь двумя принципами - отбиваться от желания приспособить библиотеки для создания чего угодно; хорошая внутренняя документированность и читабельность исходников. Ну а имея приличный конструктор можно собирать новое или пересобирать существующее ребятам более близким к прикладной области.
ПС. Приучать народ писать комменты и кратенько концептуальную доку. Для упрощения жизни позволить писать с грамматическими ошибками и даже с использованием арго или командно-матерного (многим так легче выражать обыденные мысли)

[identity profile] az-from-belarus.livejournal.com 2014-03-31 09:12 am (UTC)(link)
ПС. Как-то проводил неформальный опрос у народа. Пытался уяснить - какую часть используемых библиотек (независимо от языка) они реально используют в работе, какую часть использует вообще их команда в любом проекте. Большинство скромно приближалось к 20 процентам. К сожалению знакомых занятых в серьезных разработках, типа всяческих кадов или реалтаймовских систем у меня не так много, потому выборка не очень большая. Но есть о чем задуматься. Предварительные выводы такие. Большинство кодеров следует той или иной МОДЕ и используют привычне языковые обороты или библиотечные средства. С новыми людьми достаточно часто встречается риск заполучить в команду любителей иной моды, и тогда всякий проект начинает обрастать лишними библиотеками, а что хуже весь массив кода приобретает разнородную стилистику и вообще начинается накопление всяческого бардака.

[identity profile] yuri-yurkevich.livejournal.com 2014-04-05 06:42 am (UTC)(link)
Для этого надо вообще-то приучить писать тесты.

[identity profile] d34u82.livejournal.com 2014-04-01 04:26 pm (UTC)(link)
метакласс, когда ты наконец научишь бестолковых людишек правильно программировать? а то ж невозможно смириться с тупостью бестолковых людишек.