LINUX.ORG.RU

Enterprise vs. non-enterprise

 , nfr


0

5

Всем привет. Как поживаешь, /development/ ЛОРа? Давно не писал, но мое внимание привлекла одна проблема (присущая, вообще говоря, не только ЛОРу, но на ЛОРе проявляющаяся ярче всего). Речь пойдет о пресловутом «enterprise» (иногда в юмористическом написании «enterpriZe», «ынтырпрайз» и так далее).

В том, что «enterprise» стал на ЛОРе эдаким жупелом, смоляным чучелом — ничего странного и страшного нет. У неспециалистов это слово в первую очередь ассоциируется с корпоративным, капиталистическим, пиджачно-галстучно-кофеварочным. А отрицание корпоративного — очень в духе современной молодежи, чей природный нонконформизм требует реализации. Но это не есть предмет сегодняшней беседы; оставим юношеский нонконформизм социологам и психологам.

Проблема в том, что сам технический термин «enterprise-технологии» часто трактуется неверно. Распространено множество дилетантских интерпретаций (например, «ынтерпрайз ≡ copy-paste» и так далее). Как человеку, не один десяток лет проведшему в пресловутом «enteprise», мне хотелось бы расставить точки над «i».

Итак, ПО и технологии уровня предприятия («enterprise software») характеризуются в первую очередь повышенными нефункциональными требованиями (non-functional requirements, NFR). Что это означает? NFR относятся к работе системы, а не к её специфическому поведению (которое описывается функциональными требованиями). Рассмотрим типичные NFR:

  • производительность (performance);
  • масштабируемость (scalability);
  • доступность (availability);
  • надежность (reliability);
  • безопасность (security);
  • расширяемость (extensibility);
  • управляемость кода (maintainability);
  • управляемость системы (manageability)

и так далее. По этим признакам определенные технологии и языки программирования могут быть отнесены к «enterprise» или «non-enterprise». Например:

  • Java-технологии специально разрабатывались как enterprise и максимально удовлетворяют перечисленным NFR;
  • у языка Си отличная производительность, но отсутствует ООП, отсюда проблемы с абстракциями, управляемостью и расширяемостью. Плюс прямая работа с памятью и проблемы безопасности;
  • C++ предоставляет ООП, но не решает проблем с безопасностью;
  • Python и Ruby обладают хорошим ООП, но, не имея качественных JIT-компиляторов, сильно проигрывают по производительности. См. историю с Твиттером и Ruby vs. Scala;
  • Haskell имеет немасштабирующийся GC; функциональный подход не дает таких возможностей для decoupling'а и модуляризации, как ООП. Следствие — неуправляемый и плохо расширяемый код;
  • Лиспы имеют целый букет проблем, начиная от производительности, проходя через масштабируемость и заканчивая управляемостью.

Разумеется, такое деление «enterprise / non-enterprise» в известной степени условно. Например, можно и на Java нагородить неуправляемой, немасштабируемой и дырявой лапши. С другой стороны, наверное, можно и в рамках лиспа придерживаться строгой модуляризации, а коммерческие реализации дадут хорошую производительность и масштабируемость. Однако, такой подход не принят в лисп-среде (там приняты шестиуровневые квазицитирования), и подобный код будет считаться «non-lispy crap».

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

С пламенным приветом,
ваш Кукинштейн

★★

Ответ на: комментарий от archimag

Толпа тут не при чём, а ваш набор критериев левый.

Вообще ITA хороший пример потому, что там совсем не фанатики. Они также используют Java (для веб), C++ (для скорости) и Python в качестве клея.

Это не мой набор критериев левый, а большинства «менеджеров», которые под страхом смертной казни не выберут подобную связку: «Java (для веб), C++ (для скорости) и Python в качестве клея».

yyk ★★★★★
()
Ответ на: комментарий от vertexua

Ты не поверишь, но большинство стартапов - говносайты.

Не поверю. В уебе стартапов нет. Там есть сотни тысяч говноподелок, и некоторые из них вырастают и монетизируются. Классических стартапов, с инвесторами и быстрым ростом до IPO или поглощения, в уебе нет со времен доткомов.

А если нет, то они точно на Java/C#

Спец по венчурному рынку силиконовки детектед. Яржаль.

anonymous
()
Ответ на: комментарий от alienclaster

Нет конечно - обычный рекламный бизнес с современным каналом, тыщи их.

Т.е. «специфический» и «редко встречающийся» - одно и тоже? Кончай нести пургу.

yyk ★★★★★
()
Ответ на: комментарий от yyk

Нет конечно - обычный рекламный бизнес с современным каналом, тыщи их.

Т.е. «специфический» и «редко встречающийся» - одно и тоже?

«Ты сказал» (ц) джисус крайст

Кончай нести пургу.

Про армейку со стройками сегодня продолжишь, нет?

alienclaster ★★★
()
Ответ на: комментарий от yyk

А в гугле по-твоему кто работает, илита? :)

Как минимум - не тьлько жабко-кодеры :ь

Ну да, парочка небыдлокодеров туда попала случайно...

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Про армейку со стройками сегодня продолжишь, нет?

Хера, щегол, портянок не нюхавший, с тобой говорить о том, о чём ты даже сказок не читал (а дальше - как про дурака: «а если читал, то не понял, а если понял - то не так»)? Ты меня с кем-то попутал: я не добрый - я просто так не учу, а могу только на йух послать.

yyk ★★★★★
()
Ответ на: комментарий от alienclaster

Ну да, парочка небыдлокодеров туда попала случайно...

«Ты сказал...» (хотя и не сказал вовсе, а херню какую-то сморозил)

yyk ★★★★★
()
Ответ на: комментарий от anonymous

Айлоло, академик детектед. Что не так-то? Чувак всё правильно написал.

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

Ха-ха, один «стартапер» говносайтики клепает, другой крутой «enterprise спец» чебуречные автоматизирует. Serious business, ничего не скажешь.

anonymous
()
Ответ на: комментарий от anonymous

Серьёзные стартапы - это, например, разработки в области робототехники, биотехнологии или энергосбережнии.

twitter, facebook, linkedin, vk.com, google, pinterest - это в основном об энергосбережении или биотехнологии?

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Не с кем, про армейку ты пока один задвигал.

Не пытайся казаться тупее, чем ты есть - это практически за гранью реальности.

yyk ★★★★★
()
Ответ на: комментарий от yyk

Не пытайся казаться тупее, чем ты есть - это практически за гранью реальности.

«Вяло. Вяло! Не умеете, не знаете вы, как это делается.» :)

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Прошу прощения - я на сие не учился :ь

yyk ★★★★★
()
Ответ на: комментарий от alienclaster

twitter, facebook, linkedin, vk.com, google, pinterest - это в основном об энергосбережении или биотехнологии?

Это всё лотерея под названием «Бум доткомов».

Кстати, Цукер-то нищий же, нет? До сих пор, как дурачок, ходит с выражением детской неожиданности на лице, проповедует про свой расчудесный социальный граф и крутые приложения, которые нафиг никому не сдались.

anonymous
()
Ответ на: комментарий от anonymous

Это всё лотерея под названием «Бум доткомов».

Бум доткомов это о том что наоборот - не взлетело.

Кстати, Цукер-то нищий же, нет?

С чего бы? Даже дуров не нищий.

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

Сотни миллионов людей с доступом в интернет не в счет, конечно же? :) Фесбук - это «баззворды и нинужно» (с) :)

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

Другой аноним уже всё сказал. Поменьше говнохабр читайте.

anonymous
()
Ответ на: комментарий от alienclaster

Сотни миллионов людей с доступом в интернет не в счет, конечно же? :) Фесбук - это «баззворды и нинужно» (с) :)

Конечно! В обществе потребл@дства без пары майбахов и вилл на канарах и французской ривьере ты - несостоявшийся нищеброд! :)

yyk ★★★★★
()
Ответ на: комментарий от alienclaster

twitter, facebook, linkedin, vk.com, google, pinterest - это в основном об энергосбережении или биотехнологии?

И кто в них (кроме гугла) на стадии стартапа инвестировал? Стартапами они не были, сбутстрапились до самостоятельных бизнесов.

anonymous
()
Ответ на: комментарий от dave

На сколько я понял, blame culture вообще достаточно характерна для западных компаний (европейских в том числе).

dizza ★★★★★
()
Ответ на: комментарий от yyk

Не взлетел же фейсбук, Цукер на акциях зафейлил. А приложения его дурацкие никто не хочет разрабатывать.

anonymous
()
Ответ на: комментарий от anonymous

Не взлетел же фейсбук, Цукер на акциях зафейлил.

пля, его «на акциях зафейлил» большинству местных кодеров даже в сладких грёзах не снилось :)

yyk ★★★★★
()
Ответ на: комментарий от yyk

пля, его «на акциях зафейлил» большинству местных кодеров даже в сладких грёзах не снилось :)

Так завтра стадо наиграется и перебежит на другую поляну, а Цукер еще и должен останется.

anonymous
()
Ответ на: комментарий от yyk

а ты завтра скуришь свои грамоты и загнёшься... Что за мещанство?! :)

Моя прибыль на 95% не падала. Цукеру пора кончать нянчиться со стадом и начинать по-быстрому стричь зелень.

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

anonymous
()
Ответ на: комментарий от vertexua

А таких name у тебя в коде в разных местах 800 штук. Но из этой структуры используется только в 3 местах. Где они?

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

anonymous
()
Ответ на: комментарий от vertexua

Считай что в статическом ЯП эти тесты типов написаны за тебя. Или ты их сам написал в виде типов - как хочешь воспринимай

угу, угу, а потом софт валится. Ведь его никто не тестировал, надеясь на то, что статика ошибки отловит.

anonymous
()
Ответ на: комментарий от vertexua

А что это за тесты типов? И зачем их писать в динамике, если все типовые ошибки будут пойманы обычными юнит-тестами?

anonymous
()
Ответ на: комментарий от vertexua

Но они точно не тестируют что в структуре есть name

Тестируют, конечно же.

anonymous
()
Ответ на: комментарий от anonymous

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

Юзайте динамику, она автоматически делает архитектуру правильной, а лобковые волосы — мягкими и шелковистыми! Лол.

anonymous
()
Ответ на: комментарий от anonymous

Это каких же? Ссылки на проекты в студию.

http://www.youtube.com/watch?v=kKQLhGZVN4A
https://code.google.com/p/go-wiki/wiki/GoUsers

Только ведь почему-то весь мир пишет на си++ и жабе

Я не говорю, что Smalltalk лучше, например, явы, я говорю, что твой аргумент про ООП некорректен.

quantum-troll ★★★★★
()
Ответ на: комментарий от anonymous

Юзайте динамику, она автоматически делает архитектуру правильной, а лобковые волосы — мягкими и шелковистыми! Лол.

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

anonymous
()
Ответ на: комментарий от quantum-troll

С джинериками есть проблема

от их отсутствия тоже есть проблема.

Хотя ещё есть gotgo, он реализует джинерики в рамках пакета.

просил же без костылей :)

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

от их отсутствия тоже есть проблема

Именно так. «The generic dilemma is this: do you want slow programmers, slow compilers and bloated binaries, or slow execution times?»

Рано или поздно параметрический полиморфизм будет и в го. А пока только gotgo или reflect.

quantum-troll ★★★★★
()
Ответ на: комментарий от anonymous

Отсутствие нормального ООП

перечитай что ли Страуспропова дизайна , почему «нормальный ООП»(class-based) имено таков.

в golang - не идеал , но работа над ошибками ( отсутствие наследования реализации и как следствие необходимости перебилда) кое(не вся - есть в golang моменты которые не решены при том что в обероне уже были решены) какая проведена

алгебра типов на основе интерфейсов(совпадение по профилю) - много практичней чем в наследниках С++

тот же С++ это же решает через родовое.

qulinxao ★★☆
()
Ответ на: комментарий от vertexua

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

если задача реально требует неординарного решения таковой инструмент оказывается адыкватен.

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

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

пока виет не изобрёл символьный язык алгебры - алгоритм деления(тот который в начальной школе прививают) был очень сложен для словесного понимания.

в данный момент лисп/аналоги предьявляет излишнии требования для своего использования

других инструментов такого уровня просто нет

людей способных правильно использовать лисп/аналоги мало.

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

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

первый эрланг был на прологе. первый пролог был на лиспе

Python это SECD-машина которая - сам просвещайся

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

ты опускаеш такое явление как дрейф корневых гнёзд у слов.

чисто для эрудиции узнай что ранше филологом называли тех кого сейчас называют «классическими филологами» и так с кучей имён.

вообще ужас под эгидой «возврата вещам истиных(исходных) имён» в Китая был многократно.

qulinxao ★★☆
()
Ответ на: комментарий от alienclaster

у них задачи на которых

либо бригада трактористов решает задачи под которых просто крестьян не хватит ( т.е такое количество крестьян просто сверхдорого менеджить)

либо просто 1 тракторист решает дешевле чем аул крестьян

при том , что в составе гугла есть как трактористы так и аулы .

qulinxao ★★☆
()

ты зря не освещаеш роль COBOL'а - как максимально удовлетворяющего NFR

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

Моя прибыль на 95% не падала.

У Цукера тоже.

Цукеру пора кончать нянчиться со стадом и начинать по-быстрому стричь зелень.

Он уже по-быстрому состриг.

mv ★★★★★
()
Ответ на: комментарий от metadeu5

Ответ на: комментарий от Kuka 22.03.2013 19:00:30

Вы искажаете мой посыл
metadeu5 (22.03.2013 21:03:26)

Совсем не палимся.

queen3 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.