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».

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

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

★★

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

То есть вы учёный?

Я не претендую на столь высокое звание :) Я себя позиционирую скорее как научно-технического работника.

Государственный служащий с небольшой зарплатой?

Молодой человек, пора избавляться от (пост)советских стереотипов. CERN — международная организация с хорошим финансированием от нескольких десятков государств. Рекомендую ознакомиться с западной контрактной системой, по которой работают сотрудники типа вашего покорного слуги. Уверяю вас, никто из здешних обитателей на зарплату не жалуется. ;) Да и госслужащие, кстати, тоже.

Поэтому вы шабашите на стороне уроками по Java?

Зачем вы лжете? Я подрабатываю консультациями по Java EE и более общим вопросам (архитектура, бизнес-аналитика). Я занимаюсь этим даже не ради дополнительного заработка (который, справедливости ради, весьма вкусен), а потому, что Java EE — это вторая полусфера моей компетенции. И я не хочу утрачивать квалификацию как специалист в этой области — положение обязывает, знаете ли. Впрягся — тяни.

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

Я уже занимаюсь любимым делом в ЦЕРНе и получаю за это очень солидное вознаграждение. Нью-Йорк и Лондон мне не нравятся своей пестротой и разношерстностью, а здесь тихий патриархальный уголок.

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

Кстати, а где бложик-то? Я б подписалсо.

Увы, work in progress. Следите за событиями, я постараюсь анонсировать публикации здесь. Уверяю, вас ждет много интересного. ;) В частности, давно готовящийся труд «Мифы и легенды о лиспе», беспристрастный обзор хваленого Allegro и многое другое.

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

Вы действительно хотите сравнить между собой компилятор Форта и Хаскелля между собой или ВМ Форта и JVM? Стандартную библиотеку Ruby и Си?

А что не так?

Вы же понимаете, что в каждом подобном отдельном сравнении вся инфраструктура Джавы и в десятку финалистов не войдет?

Почему? Вычислительная и I/O-производительность JVM приближается к Си; стандартная библиотека богаче, чем у Си/Си++, Ruby, Python, Lisp и Haskell, вместе взятых; по возможностям написания модульного кода Java оставляет далеко позади процедурные и (чисто) функциональные языки. Что не так-то?

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

вбрасывает... из психушечки... тонны баззвордов

Молодой человек! Попробуйте поговорить с папуасами Новой Гвинеи о квантовой физике. Услышите в свой адрес гораздо больше нелестных эпитетов, из которых «сумасшедший» и «непонятное жужжание» будут самыми мягкими.

Что-то мне подсказывает, что это как раз ваш случай. ;)

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

Во-первых в интерпрайзе не всегда завышенные NFR. Интерпрайз-интерпрайзу рознь.

Согласен; но NFR в enterprise всегда существенны. В этом и отличие.

Во-вторых, почему для создания хайлоада, где еще суровее NFR, интерпрайза с глуькин нос?
где еще суровее NFR

Это не совсем так. В хайлоаде суровее лишь некоторые NFR, такие как performance, capacity, throughput, scalability. Поэтому и инструменты используются специфические: Hadoop, NoSQL-базы и так далее. Всем по большей части наплевать на сложные объектно-ориентированные модели, вычисление нетривиальные бизнес-правил, выполнение комплексных запросов и так далее.

В enterprise же важен гораздо более широкий спектр NFR — несущественных среди них нет.

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

А вот ООП в задачах модуляризации в голом виде потерпело фиаско.

Да что ви мне такое гойворите! А мужики-то и не знают. ;)

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

Попробуйте поговорить с папуасами Новой Гвинеи о квантовой физике

Здесь с тобой примерно так и общаются, только до квантовой физики не дошли: тебе пока и простые вещи малопонятны.

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

В enterprise же важен гораздо более широкий спектр NFR — несущественных среди них нет.

Слова типа «более» портят попытку расставить точки над «i». Увы.

dizza ★★★★★
()
Последнее исправление: dizza (всего исправлений: 1)
Ответ на: комментарий от Kuka

Всем по большей части наплевать на сложные объектно-ориентированные модели, вычисление нетривиальные бизнес-правил, выполнение комплексных запросов и так далее.

И да, вот тут ты палишся. Всякие бизнес-правила и так далее это как раз из области FR.

dizza ★★★★★
()

Вот более годное определение: «Enterprise applications are about the display, manipulation, and storage of large amounts of often complex data and the support or automation of business processes with that data» (Мартин Фаулер).

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

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

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

Потому что первая же пара попавшихся продуктов — JBoss, GlassFish

Вы разницу между технологией созданной вердором и конечным продуктом понимаете?

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

Фактически, вы игнорируете переусложнённость этой части индустрии. Возьмите в качестве примера продукты для дистанционного обучения от IBM, «веб порталы» которые мы видели все двухтысячные на ibm.com, sun.com, oracle.com. Медленные, неповоротливые, игнорирующие удобство пользователя.

А ERP продукты, для инсталляции и настройки которых требуются миллионы долларов?

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

ihanick
()

Какой жоский тред :)

Сколько боли в жопках защитничков своего Любивного ЯП :)

Дополню Кукштейна.

Используется ваш любимый ЯП в ентерпрайзе, используется!
Просто на фоне кода Java/C#/C++ их доля не видна. Нельзя сказать что вклад кода на «любимом ЯП» ничтожен, но в то же время, он явно не самый важный в общем контексте.

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

Вычислительная и I/O-производительность JVM приближается к Си

Не предергивайте с java
Вычисляторы пишутся обычно на плюсах, и уже они дергаются из java, .net, pythom и т.п.ссс

Вычислительная и I/O-производительность JVM приближается к Си

И, да, Вы упорно опускаете основного конкурента же - ,NET. с ним, конечно, выпячивать «преимущества Java перед» всякими Ruby/c++/Haskell ГООРАЗДО сложнее ;)

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

по возможностям написания модульного кода Java оставляет далеко позади процедурные и (чисто) функциональные языки. Что не так-то?

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

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

дайте, пожалуйста, ссылку на ваш блог. То что у вас в профиле — не работает.

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

Почему? Вычислительная и I/O-производительность JVM приближается к Си;

ну у хацкеля тоже

стандартная библиотека богаче, чем у Си/Си++, Ruby, Python, Lisp и Haskell, вместе взятых;

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

по возможностям написания модульного кода Java оставляет далеко позади процедурные и (чисто) функциональные языки. Что не так-то?

Был бы рад увидеть аргументированный ответ, желательно с примерами, в которых Haskell показывает лучшую модуляризацию, lower coupling и higher cohesion, чем Java.

примени пожалуйста свой аргумент к себе, и каких примеров тебе бы хотелось.

P.S. со следующей версии в хацкель будет параллельный и масштабирующийся ГЦ.

qnikst ★★★★★
()
Последнее исправление: qnikst (всего исправлений: 1)

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

Две страницы срача, основанных на неполной информации и, соответственно, совершенно ложных предпосылках?

Подавляющее большинство предприятий - коммерческие. Т.е. прибыль - во главе угла. И все ваши FR и NFR режутся «как серпом по яйцам» условиями максимизации прибыли (часто - с помощью минимизации затрат) и минимизации времени внедрения (конкуренты не дремлют), плюс самая жуткая IT-страшилка «на все времена» - «легаси».

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

И с этой точки зрения enterprise интересен, как чистка Авгиевых конюшен. Да, он обеспечивает львиную долю вливаний в эту самую IT-сферу, и, таким образом, способствует её развитию. Даже jvm с версии 1.6 стала довольно приличной vm. Но сам по себе «enterprise» в лучшем случае тянет на «инженерию», в худшем - на обычную поломойку. Большинство - где-то между ними.

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

yyk ★★★★★
()

fat+=1000;

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

Требования для ынтырпрайза:

- низкий порог вхождения

- большое кол-во специалистов на рынке труда

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

:)

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

Вообще-то, я сейчас работаю в CERN, в Швейцарии

что-то это место ну никак с ынтырпрайзом не ассоциируется

Harald ★★★★★
()

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

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

Программирование как искусство? Нет, не слышал.

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

Хорошее, годное описание.

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

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

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

ЗЫ. Работаю в инвести банке, это нечто среднее между компаниями первого и второго типа. Так что у нас тут вроде и интерпрайз, но апплкиейшен серверов и прочей шелухи нет. Только Java SE, только concurrency, только хардкор.

dizza ★★★★★
()

Enterpris'ы разные бывают. По мне, LHC вполне себе предприятие, если говорить о софте. Да, нет цели получения прибыли, но ограничения по бюджету есть. И что мы там видим? ROOT, GEANT и ко.

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

cast Bioreactor

Это всё равно что пригласить на партсобрание компартии, посвящённое победе коммунизма, алкаша-машиниста из разворованного полуразрушенного завода по соседству.

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

Это который лиспер, торсионщик и инвольтатор в эгрегоры?

Нет, это местный богач Java разработчик. Поработал пару лет в enterprise, а затем купил три крупных отеля в Майями. Сейчас отошёл от дел, ездит по миру и жертвует миллионы на благотворительность.

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

Нет, это местный богач Java разработчик. Поработал пару лет в enterprise, а затем купил три крупных отеля в Майями. Сейчас отошёл от дел, ездит по миру и жертвует миллионы на благотворительность.

Ах, вон оно что, месье! (понимающе кивает) да-да, Майами, благотворительность... Какой благородный дон, однако!

Я, стало быть, перепутал его с другим поциентом джентльменом, известным как bioreactor.

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

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

При таких оговорках никакой язык вообще не должен «решать проблемы с X» - их решает специально обученный человек :) Архитектор/технолог. И все предыдущие построения про преимущества жабы - лесом :)

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

Shootout

Shootout на ЛОРе нельзя упоминать. Тут на первом месте - личная вера

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

Да просто далеко не всех пускают и берут в этот самый «энтерпрайз»

ЧИВО? Нет, нет... LOLWUT? В «энтерпрайз» не берут, в энтерпрайзе остаются те, кто на большее не способны.

vertexua ★★★★★
()

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

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

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

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

Зачем вы сравниваете джаву и какие-то экспериментальные языки программмирования, о которых можно услышать только на сайтах с темным фоном? Зачем вы приводите примеры, без раскрытия их экономического эффекта? Кого вы пытаетесь обмануть, технологические евангелисты? Шли бы вы все в стартапы, в гуглы, яндексы и фейсбуки, где ваш провал не будет заметен или не принесет вреда сотрудникам, которые виновны лишь в том, что недальновидное руководство не смогло распознать смутьянов и не пустить их на порог.

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

по возможностям написания модульного кода Java

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

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

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

Именно. И это наиболее правильное и адекватное что можно сделать в этой ситуации.

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

Работаю в инвести банке

Тот который с виртуалками или тот который с С++ в неудачных местах и Хаскеллем? ;)

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

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

Не посоветуете, в каком направлении над собой работать, чтобы в столь рыбное место попасть?

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

Не посоветуете, в каком направлении над собой работать, чтобы в столь рыбное место попасть?

Научиться пользоваться гуглом? https://ert.cern.ch/

А зачем вы хотите туда попасть? Правда интересно, без троллинга.

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

да ссылку на сайт надыбать несложно (сам бы осилил)... а вот получить ответ от человека, который там работает - это другое всё же.

не ради конкретной цели интересуюсь, скорее из любопытства

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

не ради конкретной цели интересуюсь, скорее из любопытства

У меня много знакомых там работает. Зависит от конкретного эксперимента. А вообще все жалуются что довольно скучно. Эксперименты огромные и долгие, везде куча людей занята. Софт вполне себе взрослый ентерпрайз. Ежели нравится работать в больших конторах, то наверное интересно будет. А скиллы самые обычные: физика, математика, много инженерной работы.

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

А где - не скучно?

В лисп и хаскель-стартапах же. Очевидно же.

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

А где - не скучно?

Много где, когда не надо строить завод для одного эксперимента. Клево когда есть свой проект.

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

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

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

Не посоветуете, в каком направлении над собой работать, чтобы в столь рыбное место попасть?

Для начала искоренить жадные и вороватые совковские мыслишки про блат и «рыбные места».

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

Стань self-made man.

anonymous
()

Тут есть тонкий момент. Один мой друг однажды сказал мне:

«Выбери я что-то малознакое для моих программистов и случись затем проект неудачным, то все сразу на меня покажут пальцем: „Это он виноват, что проект не получился. Это он выбрал нам плохой язык программирования“.

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

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

кастани пожалуйста как бложе запустишь, интересно посмотреть

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