>>5618> Нет> Нисколько> есть небольшой опыт администрированияНу вот, а я пишу софт 8 лет. Коммерческий и не очень. Это не большой опыт, но его хватает, чтобы примерно судить, почему один софт взлетает, а другой нет, почему один софт хорош, а другой нет (хотя правильнее говорить "подходит под такую-то задачу или нет").
> с этим "замечательным" софтомВозможно, ты просто не так его применяешь - например, дрочишься с каким-нибудь тяжелым корпоративным монстром, который не предназначен для домашних/учебных проектов.
> чтобы понять, что тебе насрали в тарелку, нужно ли быть поваром? Не нужно. Только это кривая аналогия из позапрошлого десятилетия, которая не всегда работает, как и другие аналогии.
В случае с разработкой ПО тебе не "насрали в тарелку", а положили что-то не очень вкусное, но зато питательное. И не только тебе, а еще миллионам людей, которые до того умирали с голода и питались в лучшем случае сверчками. Результат налицо: накормили огромное количество народу, и они теперь не сдохнут, а принесут какую-никакую пользу. Это конечно хуже, чем накормить всех фуа-гра с цезарем, но лучше, чем совсем ничего.
А вот ПОЧЕМУ накормили именно так, ПОЧЕМУ именно таким составом, КАК это удалось сделать в таких масштабах, ОТКУДА взяли ингридиенты, КАК хранили и КАК именно их приготовили - вот чтобы правильно ответить на эти вопросы, нужно, действительно, быть поваром (или скорее пищевым технологом).
> Что-то мешает писать такие же простые программы как и раньше, не перегружая функционалом?Ничего не мешает, садись и пиши. Только задачи стали сложнее, и твой "простой" софт их не вытянет.
Вот тебе реальный, не абстрактный пример - допустим, пилят чат уровня той же IRC. Пока идет обмен текстовыми сообщениями, все хорошо: есть условный эндпоинт POST /messages, туда летит JSON, красота. "Простой" получается софт, классный, как ты любишь.
Потом появляется задача обмениваться файлами. Что делать? Эндпоинт POST /messages - текстовый, работает только с JSON. Отправлять файлы полем в base64? Получим оверхед 20-30% к телу запроса, это очень плохо. Плюс кодировать придется на клиенте, какой-нибудь браузер на слабосильном телефоне охуеет 3 GB бинарщины переводить в текст. Значит, делаем POST /files, который будет принимать файлы в бинарном виде. Все, проблема решена? Как бы не так, появилось минимум три новых: как подвязывать файлы, до или после сообщения? как уведомлять юзера о статусе обработки файла? что делать, если сообщение/файл не прошло? И потом, как вообще хранить эти файлы? Где? Какие лимиты? А если файл дублируется? А если юзер зальет архив с ЦП, но по хедеру это будет картинка - что делать будем? И это мы только начали погружаться. Сколько будет багов, какой будет UI - это вообще отдельные истории, по которым можно книги написать.
Вот тебе и "простая" задача. И из таких "простых" задач современный софт и состоит. Проблем как выше - миллион, решишь одну - будут другие.
И да, есть конечно радикальные решения. Можно сказать АРРЯ ЮНИКС ВЕЙ НАДА ДЕЛОТ АДНУ ЗАДАЧУ, и для обмена файлами использовать стороннее решение. Или можно перееехать с текстового HTTP, ведь такой чат на нем писать как-то странно. Проблема в том, что радикальные решения не работают в реальной жизни. Отдельный файлохост - это неудобно, и юзеры охуеют с такого. Ведь в телеге ты кинул файл и он полетел, а тут что? Еще куда-то идти? Фу, отписка. И чат ты от HTTP не отвяжешь, ведь он УЖЕ написан, и им УЖЕ пользуются. А еще это может быть не чат, а форум например.
Короче, мой поинт в том, что любая, даже незначительная, на первый взгляд, фича, вносит ДОХУЯ сложности в софт. Но и без фич никак, потому что они позволяют решать задачи здесь и сейчас. Это или нужно юзерам, или за это платят деньги, или все вместе.