Ответ на пост «Вопрос программистам»8
Почему программисты делают тяжёлые и тормознутые программы? Могу объяснить.
Если кратко - программисты не виноваты, они не могут. Никто не виноват. Просто так устроен мир. Примите и смиритесь. Ждите, когда нейросети всё перепишут и ускорят.
А теперь подробно.
Давайте я проведу аналогию. Вы приходите в "Пятёрочку". Видите там например пачку печенья, которую три года назад покупали за 40 рублей, а сейчас она стоит 90. Что вы будете делать? Накинетесь на продавца с вопросами в духе "продавцы, зачем вы это делаете, это ведь то же самое печенье, того же веса (или даже ещё меньше) - почему цена-то так выросла? Вы это специально?"
Нет, все понимают, что продавец в "Пятёрочке" не отвечает ни за цены, ни за ассортимент. Над ним стоит куча народу - маркетологи, топ-менеджеры, супервайзеры, директора, CEO и вот это вот всё. А они закупают у производителей, которые тоже поднимают цены. А у производителей растут цены на расходники, транспортировку и т.д. Продавец может только товары по полкам расставлять да сканером по штрихкодам пикать.
Так вот у программиста - примерно та же ситуация. Приходишь в компанию, а тебе говорят: "Мы делаем вот такой проект. Он сделан на вот этом языке программирования, с использованием такого-то фрейворка. Тебе надо будет приделать к этому проекту вот такую свистелку и ещё вот такую кряхтелку."
Используемые подходы определяют, каким будет проект. Если сам фреймворк весит пол-гигабайта - хоть ты тресни, но программа у тебя никак не будет весить меньше. Потому что фреймворк ставится вместе с ней, без него она работать не будет. И быстро загружаться программа тоже не будет. Потому что ей сначала надо загрузить в память нужную часть этого полугигабайтного фреймворка. А остальное подгружать по мере работы.
Конечно, найдутся люди, которые выскажут предложения в духе - "Ну так вы делайте без всяких фреймворков, чтобы весило мало и работало быстро."
Нет проблем. Это вполне возможно. Целые операционные системы так делают. Вот наример:
https://ru.wikipedia.org/wiki/KolibriOS
Очень маленькая и очень быстрая операционная система. Намного легче и быстрее Windows - потому что всё написано на ассемблере и на C/C++. И что, много людей ей пользуется? Нет. Большинство даже не слышали никогда про неё. Всем надо, чтобы работали все программы, которые есть в Windows. А маленькую и быструю ОС, но без программ для Windows никому не надо. Так и с другими программами - всем надо чтобы было то и это, пятое и десятое. Как раз то, что делает фреймворк. Подключаешь его - и пожалуйста, программа делает всё что надо, осталось только чуть-чуть подправить.
Конено, найдутся люди, которые скажут: "Ну так сделайте то и это, пятое и десятое сами, без фреймворка, чтобы работало быстро". И это тоже можно. И можно сделать, чтобы оно работало быстро. Один нюанс - это будет дорого. Годы работы. Посчитайте - один программист, допустим, получает 200 тысяч рублей. (Для грамотного программиста, умеющего писать на C++ ассемблере - это ещё немного, скорее всего надо будет больше). За 10 месяцев работы ему надо заплатить два миллиона. (Опять же скорее всего будет намного больше - ну хотя бы потому что налоги надо будет ещё платить). Вы готовы заплатить два миллиона за то, чтобы нужная вам программа работала быстро? Готовы ли ваши коллеги и знакомые платить столько? Притом, что у конкурентов такая же (но медленная) будет стоить, скажем, 5 тыс. рублей? Вы же знаете ответ, правильно?
Да, стоимость можно раскидать на много пользователей. Но итог всё равно будет один. Даже если программа стоит дороже не на миллион, а на несколько тысяч - купят всё равно у конкурентов. К тому же у конкурентов программа выйдет раньше, намного раньше. Все к ней привыкнут и переучиваться на другую никто не захочет даже бесплатно - как никто сейчас не хочет пересаживаться на Линукс.
Менеджеры, управляющие программистскими компаниями, тоже всё это знают. Поэтому они не ставят задачи делать программы, которые будут весить мало и работать быстро. Они ставят задачи разрабатывать программы быстрее, как можно быстрее, и как можно дешевле. Тот, кто попытается сделать по-другому - не выдержит конкуренции и обанкротится. Поэтому программы работаю медленно и весят много. Так было, и так же будет в будущем. В ближайшее время это не изменится.
Потому что пользователи "проголосовали рублём" за медленные и тяжёлые, но дешёвые и привычные программы.
Но не стоит расстраиваться. Когда-нибудь ИИ дорастёт до такого уровня, что сможет работать лучше и быстрее живых программистов. Вот тогда всё и перепишут так, чтобы работало быстро и весило мало. Причём перепишут очень быстро. Там, где команда программистов возилась годами - ИИ сделает всё за дни, а то и часы. Предполагаю, что лет через 5-15 это случится.
Я как программист выскажу непопулярное мнение, те, кто узнают себя, конечно, будут недовольны, но:
Это все нытье из разряда «не мы такие, жизнь такая»
Так можно про любую отрасль сказать — медицина («нам мало выделяют средств и мало платят, потому мы орем на пациентов на регистратуре, выписываем не те лекарства и ставим неправильные диагнозы» — кто не опнял, я не про всех врачей, а про тех, кто живет в стиле «не мы такИе жизнь такая»)
В стрительстве («хреновые стали производить стройматериалы, руководство на них экономит, потому у нас все криво и косо — в маетиаралах дело, не в кривых руках)
Так и у программистов — фреймвокри, конечно, универсальный инструмент и им надо уметь пользоваться. На собесе спашиваешь «знаешь ли такой фреймворки умеешь с ним работать» «— да, конечно»
По факту просто подключает весь фреймворк, а не нужные именно в проекте модули, хотя многие фреймворки это позволяет, юзают неоптимальныйм образом.
Да, сверху от бизнеса всегда задача — минимальные затраты, то есть максимальная скорость разработки. Но как обычно бывает — программисты оценили на столько то часов, по факту вылезает больше. Кто виноват? Фреймворки или сами программисты которые не умеют ими пользоваться и неправильно оценили?
Ни в одной сфере такого нет— можно не попасть в оценки и ничего не будет, за тобой еще армия тестировщиков — за тебя проверяют, а не накосячил ли ты где, и если накосячил отдают на доработку без последствий.
По моему, программисты сильно расслабились, думать н ехотят, включать голову не хотят, подключают готовые фреймвокридажене удосужившись их как следует отключить. Или для решения постой задачи тянут тяжелые фреймвокри — так же проще, а заказчик зачастую этого не понимает. А если что н работает — фреймворк виноват. И шантажируют заказчика — либо тяжелый фоеймворк либо переписываем за хххх денег и времени.
В итоге профессия программиста дискредитирована — миддл это как правило джун, умеющий фреймворки подключать и их методы юзать не зная даже как там под капотом это работае. Потому что это уже синьор — который удосужился копнуть четь глубже.
ИИ конечно заменит таких джунов и псевдомиддлов, но это по сути кодеры, а не разработчики. А вот разработчиков настоящих ии не заменит. Но профессия сейчас наводнена низкоквалифицированными «специалистами» — вот из за этого проблемы, которые поднял тс в оригинальном посте.
Но ситуация меняется, и вот толпы программистов сейчас крупные компании выкидывают на улицу, мы живет во временя пересомысления рынка и отрасли.
Как раньшев врачевателем был тот, кто мог вылечить людей — то ли народными средствами, то ли заговором, но потом появилось медицинское образование. К сожалению, сейчас тоже что-то мехнаическое в профессии наблюдается — механически кодить, не понимая сути вещей, и такие выходят на рынок. А настоящих инженеров-программистов и нет, большая редкость