Ответ Tzeentch4 в «Про работу в айти, еще разок не чокаясь»
Заебался я подобные посты читать, попробую объяснить:
1) кривой и ущербный софт - проблема комплексная, т. к. во 1х с точки зрения компании им не выгодно допиливать софт до идеала, он не даст новых продаж, им выгодно устранить самые критичные баги и косяки и пилить или новые фичи или делать абсолютно новый. Во 2х обычно такой софт пишется ни 1м программистом, а штатом и если свести код без багов для маленькой компании ещё вполне себе по силам, то для большой конторы это гигантский гемморой. В 3х если это большое приложение то там код который писался годами а то и десятилетиями и переписывать его под стандарты современности займёт такую кучу времени и денег что проще новый софт с 0 создать(это примерно как из авто начала 2000 сделать современное авто с кам шинами, умными помощниками и прочим, не забывая о том что устарело всё в том числе двигатель и сама база для авто). В 4х у вас есть своё ПО без багов, а оно требует что бы работало с чужим ПО (реклама, встроенный плеер, авторизация через вк и прочие приколы), а при попытке прикрутить у вас всё идёт на север, и вы с матюгами правите свой код так что бы оно хоть как то заработало, а тот чье ПО вы прокручиваете говорит что у них всё ок, и может это их косяк, может у вас версии библиотек не сошлись, а может просто ебет мозг сервер на стороне, потому что его баб Маня залила когда полы мыла. Ну или у пользователя стоит какая ни будь прога которая конфликтует с вашим по, по чье вы пытаетесь интегрировать себе или на связку вашего по + интегрируемого, а по отдельности работает без проблем. В 5х разное железо и разная система, очень большой гемор подгонять по под всё виды систем: линукс, винда, андроид, айос и их производные, они всё работают по разному и даже браузеры сук всё имеют свои отличия и фишечки, с которых по незнанию горит жопа, так что с Альфы Центавра звонят и спрашивают.
2) библиотеки - это отличный способ сократить время разработки в разы, так как они известны, облегчают понимание кода и предсказуемо работают, это как с конструктором, ну или рем комплектами для авто, всё есть под рукой, бери то что надо, что не нужно пусть лежит, может пригодиться после, это сильно проще и быстрее чем делать с нуля, потому что зачем изобретать велосипед, если есть готовый?
3) качественный уровень програмистов - тут по разному, есть золотые головы которые очень хорошо шарят, есть те кто быстро учатся, есть те кто выучили свою нишу и не жужжат, а есть так называемые индусские программисты - ребята которые делают вместо нормального кода хрень которая работает но через такую жопу, что без пол литра не разберешься( на одном из сайтов по решению задачек для программистов, была задача сколько вариантов хода у коня на шахматной доске если конь в х позиции, и среди решений, я видел тупо переписанные ответы под всё 64 клетки доски) индусские - термин, а не то что всё индусы говно как программеры. И таких нанимают, потому что это дёшево, или же всех устраивает их уровень. Ну и не забываем что у нас есть куча школ, где тебя учат решать 2-3 задачи и ты спец в ай ти(примерно такой же как и в 2000х была куча юристов, экологов и прочих "топ" специальностей, которых учили в ПТУ)
4) оптимизация ПО - почти бессмысленная задача если код написан более-менее нормально, он долго грузится не от плохого кода, а от того что туда нужно запихать миллион функций которые возможно не нужны, а то и вредят, но тут всё от тех кто это хочет и идёт(маркетологи, директора и прочие люди которые принимают решения). Любое устройство сейчас работает очень быстро и часто по долго грузится или из за плохого интернета или по тому что нужно что бы оно долго грузилось для солидности. Почему интернета, так потому что очень много картинок, гифок, видео и прочего скачивается на ваше устройство с серверов и часто его делают под разрешения которые усредненные(3-4 вида и хватит), так же туда качается куча контента который вы можете и не увидеть, но что бы он грузился быстро его кидают сразу большим паком, так как проще 1 раз подождать загрузку чем ждать 10 мелких.
5) советское ПО - оно написано под определённое железо, для определённых задач, на том языке который максимально подходит для решения этих задач, сейчас так делают для специализированных устройств навроде роутеров, драйверов и прочих ЧПУ и иже с ними. И то сейчас часто делают его под большой пак устройств, что бы пользователю было проще(вспомните 00е когда для всего был отдельный драйвер, и приходилось хранить кучу дисков с драйверами для видюхи, матери, сокета, звука, принтера, кодеки, и как сейчас вы на сайте получаете пак драйверов и оно ставится само.)
Надеюсь я доступно, без оскорблений объяснил почему и отчего сейчас так выглядит современное ПО, и почему всё програмисты пишут код именно так.