LINUX.ORG.RU
ФорумTalks

Синдром NIH 2026г.

 , , ,


0

3

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

Вводные: Есть некоторый restful API сервис, который написан серьёзными энтерпрайз разработчиками на Джаве. Spring Boot, КроликЭмКу, стандартный набор батареек, ну и аппаратные устройства, назовём их вычислительные устройства (ВУ). Этот сервис активно работает в проде, проблемы есть но в основном из-за запутанности (корпоративно-исторически обусловленной запутанности) архитектуры и неидеальности оперативной организации труда этих энтерпрайз разрабов. Но в общем и целом - ничего экстраординарного для реального опыта проблем в индустрии. Но зависть к ребятам большая, типа они разрабы, а мы - их клиенты.

Но ребята типа дорогие, а бизнес всегда хочет сэкономить, тем более кризис экономики… Возникает идея («ты ж программист!»), типа, для новых проектов, где не самые пиковые нагрузки, слепим что-то попроще, без очередей сообщений, без кровавого джава-энтерпрайза, просто возьмём где можно опенсорс батарейки, слепим, протестируем - и ОК. На Питоне. Сказано - сделано, и оно даже работает, и клиенты счастливы.

Но вот, в один прекрасный день, поступает предложение. Переписать прокладку между собственно веб-сервисом и ВУ с Питона на C. Мотицация - не хотим использовать опенсорс-обёртку, мало ли кто там её разрабатывает? а вдруг он завтра под поезд попадёт, и мы не сможем эту обёртку поддерживать. А атаки на каналы поставки, официальную репу PyPI, и вот это всё не наше хозяйство? И вообще, Питон медленный, переусложнённый и не готов для промышленного применения. Перепишем эту обёртку на C. На вопрос «а если потом таки будем очередь сообщений добавлять, то в неё писать и из неё читать тоже на сишке?» следует ответ «ну конечно!»

Дальше, предлагаю, коль скоро не устраивает производительность кода на питоне, взять таки Джаву, ведь у серьёзных энтерпрайз ребят она уже работает. Ответ: «ну ты же видишь, что на этой Джаве у нас как-то всё тормозит?!» А откуда они знают, что в Джаве причина тормоза, а не в архитектуре? А кто-то измерял самые простейшие вещи, типа загрузки процессора сборщиком мусора? Нет, никто ничего не измерял.

Предлагаю C++. Опять воротят нос, мол после стандарта образца xyz года там такого наворотили, что чёрт ногу сломит. Говорю «а кто-то заставляет непременно фичи новых стандартов использовать?» В ответ тишина. Не подходят людям технологические достижения в языках высокого уровня за последние 50 лет. Предпочитают ковбойский сишный наскок, а там - будь, что будет…

Как с такими людьми работать?

★★★★★

Последнее исправление: seiken (всего исправлений: 3)
Ответ на: комментарий от seiken

Я в 90-х радостно им логи парсил - тогда BO код в логах апача не ждали...

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

Бизнес хочет сэкономить на сторонней конторе, её услугах

Эээ... Убедить перенести с python на jython и подключить RabbitMQ???

Shadow ★★★★★
()

И ты и они балбесы. Надо брать либо go (если у вас дурачки сидят в целом, которым надо ЯП попроще чтоб за неделю выучить), либо rust если у вас серьёзные профи. И в одном и в другом случае работа с вебом лучше сишки, как минимум тем что там внутри нормальные юникодные строки.

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

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

cobold ★★★★★
()

Всё правильно тебе сказали, нормальный софт пишется на Си. И прекращай саботировать устранение скриптоты.

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

Питон в своё время предложил я сам

А ларчик поосто открывался. Афтар обиделся за свою питонятину.

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

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

В душе они растофилы.

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

Для России сейчас это «типишное» состояние, наверняка, оно же «типишное» для любого местечкового по.

Но только здесь речь идёт о западной Европе и корпоративной среде.

Там хорошо, где нас нет. Люди почему-то редко вспоминают, что везде живут люди.

skiminok1986 ★★★★★
()

Как с такими людьми работать?

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

удачи.

olelookoe ★★★★
()

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

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

PS: и таки да, почему не Go? Он же буквально для такого и создан (рест-шмест-круд в миллион потоков).

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

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

Как я ждал твоего коммента! Как глоток свежего воздуха…

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

Так вот леплю прототип микросервиса с там набором софта, который используется, чтобы самому сначала понять, как измерять степень эффективности работы JVM.

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

Там же, на самом деле, деградация логики мышления:

  1. у них (enterprise java) типа, тормоза (где именно - не показано);

  2. у нас питон, а питон же ещё более тормозной, чем java, и пофиг, что нагрузки на наш питон гораздо меньше, чем на серваки на java…

  3. вывод - переписать с python на C, чтобы выглядеть «брутальнее».

seiken ★★★★★
() автор топика

Ребята норм. Си ван лав. 🍻

ei-grad ★★★★★
()

написан серьёзными энтерпрайз разработчиками на Джаве

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

ei-grad ★★★★★
()

Как с такими людьми работать?

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

Но их там Столяров случайно не покусал? :) Типично его идея: пишем на C89, всё линкуем статически, стороннюю библиотеку, в которой не разобрался и не готов поддерживать как свою, не использовать. И конечно никаких питонов.

Хотя у желаний не зависеть от PyPI есть рациональное зерно. Переписывать на Си для этого не обязательно. Можно и даже нужно обойтись без PyPI, все нужные пакеты и зависимости скачать и ставить локально (возможно опакетить под используемые системы или докеры и прочие кубернетисы), вместе с нужной версией Python. Тогда никто никого не атакует через каналы поставки. Учитывая, что до сих пор на совремённые версии ОС можно поставить даже Python 2.7, совместимости вперёд лет на 10 точно хватит, даже если самого PyPI давно не будет.

То есть, это возможно, вообще для DevOps-ов задача, а не для программистов.

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

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

у нас питон, а питон же ещё более тормозной, чем java, и пофиг, что нагрузки на наш питон гораздо меньше, чем на серваки на java…

Python - тормозной на процессорных задачах (и то, если правильно спроектировать есть варианты), а у вас там I/O я так пониманию, в основном.

anonymous_incognito ★★★★★
()

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

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

Именно! I/O и консистентность двух БД (центральной и локальной).

seiken ★★★★★
() автор топика

тем более кризис экономики

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

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

Типично его идея: пишем на C89, всё линкуем статически, стороннюю библиотеку, в которой не разобрался и не готов поддерживать как свою, не использовать.

Ну, если с первыми двумя пунктами можно не соглашаться, особенно, со вторым. Но насчёт сторонней библиотеки - прав 100%. Надо отделять скажем так базовый Линукс, который есть в дистрибутиве, от библиотек, которых обычно там нет. И вот с ними надо очень осторожно, очень. Иначе получаются только докеры и ПО, не собирающееся через 2 года ничем и никем.

И конечно никаких питонов.

За пистон вообще расстреливать нужно. Тройка, к стенке, бах, и всё. Это бесполезно там что-то обсуждать, доказывать. Животные слов не понимают.

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

И вот с ними надо очень осторожно, очень. Иначе получаются только докеры и ПО, не собирающееся через 2 года ничем и никем.

Есть две крайности.

За пистон вообще расстреливать нужно.

Производительность труда программиста составляет 50-200 строк в день. Для новых проектов больше, для старых - меньше, даже меньше 50. Выразительность (expressiveness) у Python намного выше, чем у Си. При этом не так сильно сношает мозг как Haskell и ему легче обучить. Ну вот и всё. Поэтому пистон настолько популярен, даже если кому-то хочется расстреливать за него.

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

P.S. Мне самому нравится что-нибудь не крупное в своё удовольствие написать на C, но понимаю и почему Python так широко применяется.

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

Выразительность (expressiveness) у Python намного выше, чем у Си

не отвлекай человека от дела, у него «только расстрелы спасут мир»

P.S. Мне самому нравится что-нибудь не крупное в своё удовольствие написать на C, но понимаю и почему Python так широко применяется.

Есть масса гораздо более приятных ЯП, чем С, предназначенных для решения тех же задач, что и С, но без угрёбищной системы типов С, без нуль-терминированных строк и прочего убожества, причём, не изотерико-академических, а самых что ни на есть общественно-полезных. Для системного ПО - Ада, для численных экспериментов и моделей - Фортран.

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

Теперь ты видишь, к чему ваша толерантность приводит? Он на Аде и Фортране пишет. Что ты об этом думаешь? Всё ещё веришь обойтись без расстрелов?

lenin386 ★★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от thesis

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

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

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

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

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

Допустим, я видел, как одно работающее решение заменялось на другое работающее решение. Но никому из нас, даже на уровне тимлидов, не доносилось обоснование «почему». Сверху так решили, и всё. В большом техе, над тобой ещё 10 уровней иерархии, сверху донизу иногда доходит только приказ, без каких-либо обоснований.

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

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

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

Chiffchaff
()

откуда они знают, что в Джаве причина тормоза, а не в архитектуре?

А кто-то измерял самые простейшие вещи, типа загрузки процессора сборщиком мусора?

Нет, никто ничего не измерял.

Ну тогда предложи Rust.
Во-первых, модно-стильно-молодёжно, а во-вторых и третьих, если не быть хлебушком, то получается быстрый код, на уровне c/c++ и при том при всём зачастую маложрущий память.

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

Ну тогда предложи Rust.

почему «тогда»? Раст они не знают. Только C, C++ (дореволюционный) и немножечко Питона.

seiken ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)