Ненавижу пакетно-ориентированное программирование
От: T4r4sB Россия  
Дата: 24.09.25 19:09
Оценка: 6 (2) +2 -1 :))
Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики. Да, надо было читать документацию к формату, но это было прикольно.
Сейчас ты скачиваешь готовый пакет и изучаешь документацию, чтобы понять, какие настроечки и конфигуровочки надо куда приделать. Какой флаг приделать к унылой команде унылого скрипта сборки — обосраться как весело
Раньше если у тебя был баг и расстрел памяти, то это было увлекательное приключение по поиску причин. Сейчас ты лелешь на стековефрлоу чтобы узнать, у кого ещё этот пакет так же баганул и как это обойти
Раньше ты сам придумывал интерфейс своей либе и прикручивал фичи. Сейчас ты зубришь документацию, но это не помогает. Ты наизусть знаешь как использовать сишный рандом, который ты 10 лет не использовал, но не можешь запомнить как приделать к программе современный идеологически-выдержанный рандом, в котором за тебя все формулы запрятали в методы с названиями, которые хрен запомнишь, и каждый раз гуглишь заново.
Раньше твоя программа получалась 30 килобайт и запускалась везде, сейчас она весит 10 мегов и требует новейшую вин11, потому что использованный тобой пакет тащит какую-то зависимость до которой хрен доберёшься и на которую всем насрать.
Какое же это унылое говно — современное пакетно-ориентированное программирование.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re: Ненавижу пакетно-ориентированное программирование
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.09.25 20:08
Оценка: +3 -1
Здравствуйте, T4r4sB, Вы писали:

TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.


За 15 минут вайдкодишь то, что раньше делал бы год, заворачиваешь в докер. Докер-ориентированное программирование.
Re[2]: Ненавижу пакетно-ориентированное программирование
От: sergey2b ЮАР  
Дата: 24.09.25 20:26
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>За 15 минут вайдкодишь то, что раньше делал бы год, заворачиваешь в докер. Докер-ориентированное программирование.


а можно пример реального проекта/задачи
Re[2]: Ненавижу пакетно-ориентированное программирование
От: Слава  
Дата: 24.09.25 21:06
Оценка: +1
Здравствуйте, Nuzhny, Вы писали:

TB>>Какое же это унылое говно — современное пакетно-ориентированное программирование.


N>За 15 минут вайдкодишь то, что раньше делал бы год, заворачиваешь в докер. Докер-ориентированное программирование.


При этом докер внутри себя скачивает скрипт с гитхаба, запускает его, а он поднимает ещё один докер-контейнер.
Re: Ненавижу пакетно-ориентированное программирование
От: Osaka  
Дата: 24.09.25 22:00
Оценка: +1
TB>Раньше твоя программа получалась 30 килобайт и запускалась везде, сейчас она весит 10 мегов и требует новейшую вин11, потому что использованный тобой пакет тащит какую-то зависимость до которой хрен доберёшься и на которую всем насрать.
TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.
Когда уже доделают оптимизирующие компиляторы, чтобы выковыривали из пакетов только реально выполняемые клиентской программой строчки кода и генерили безбиблиотечный исходник 30 килобайт?
Друга ищи не того, кто любезен с тобой, кто с тобой соглашается, а крепкого советника, кто полезного для тебя ищет и противится твоим необдуманным словам.
Re[2]: Ненавижу пакетно-ориентированное программирование
От: cppguard  
Дата: 25.09.25 01:37
Оценка:
Здравствуйте, Osaka, Вы писали:

O>Когда уже доделают оптимизирующие компиляторы, чтобы выковыривали из пакетов только реально выполняемые клиентской программой строчки кода и генерили безбиблиотечный исходник 30 килобайт?


Так давно. Статическая линковка называется. Только вот сразу перестают работать всякие рефлексии, а за ними и DSL, обёртки, декораторы, расширения времени выполнения и т.д. А ещё внезапно выясняется, что современная экосистема это ни разу не 30 килобайт. Только TLS/SSL тянут за собой воз и маленькую тележку, а ещё видео, звук, формат документов.
Re: Ненавижу пакетно-ориентированное программирование
От: cppguard  
Дата: 25.09.25 01:47
Оценка: :)
Здравствуйте, T4r4sB, Вы писали:

TB>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики. Да, надо было читать документацию к формату, но это было прикольно.

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

TB>Раньше ты сам придумывал интерфейс своей либе и прикручивал фичи. Сейчас ты зубришь документацию, но это не помогает. Ты наизусть знаешь как использовать сишный рандом, который ты 10 лет не использовал, но не можешь

Напомни, сколько итераций заняло у уважаемых бородатых мужиков придумать стандарт аутентификаии WiFi, чтобы он не было решетом? А сколько разных стандартов сейчас содержать пометки "deprecated, insecure"? Сколько существует протоколов, для которых есть разные реализации, и они несовместимы друг с другом? В POSIX free() объявлен как free(void *), хотя даже школьнику очевидно, что данные не меняются, а значит сигнатура должна быть free(const void *). И так на каждом шагу. Я не хочу в то время, когда реализации стандартов писали в каморке, что за актовым залом, и через пару месяцев выяснялось, что всё поломано ещё на старте.

TB>Раньше твоя программа получалась 30 килобайт и запускалась везде, сейчас она весит 10 мегов и требует новейшую вин11, потому что использованный тобой пакет тащит какую-то зависимость до которой хрен доберёшься и на которую всем насрать.

Это не проблема программирования, это проблема программистов. Мои проги и сейчас требуют минимум зависимостей, максимально используют runtime языка.

Кругом море задач, для которых не существует пактов. Например, укладка графов на плоскости, чтобы они красиво смотрелись. С учётом весов и ограничений.
Re: Ненавижу пакетно-ориентированное программирование
От: Hоmunculus  
Дата: 25.09.25 03:29
Оценка: +2
Здравствуйте, T4r4sB, Вы писали:

Вот только никогда не стояло задачи открывать png. Стоят всегда более интересные задачи, в которой надо еще и архитектуру обдумать. А ты был вынужден тратить время на идиотский формат png файла, а не решать именно свобю задачу
Re[2]: Ненавижу пакетно-ориентированное программирование
От: so5team https://stiffstream.com
Дата: 25.09.25 03:35
Оценка:
Здравствуйте, cppguard, Вы писали:

C>В POSIX free() объявлен как free(void *), хотя даже школьнику очевидно, что данные не меняются, а значит сигнатура должна быть free(const void *).


А вы могли бы объяснить старому пердуну, давно забывшему школу, почему это "очевидно" и почему "данные не меняются"?
Re: Ненавижу пакетно-ориентированное программирование
От: so5team https://stiffstream.com
Дата: 25.09.25 03:48
Оценка: 3 (1) +1 :)
Здравствуйте, T4r4sB, Вы писали:

TB>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики.


А сохраняли вы картинку в итоге посредством прерываний BIOS-а, вручную переставляя головку винчестера на нужные сектора и вручную обновляя цепочку секторов, занятых вашим файлом в метаданных файловой системы?

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

Мне лично отрадно, что на моих глазах происходит взросление этого самого "пакетно-ориентированного программирования" на протяжении последних 35 лет. И есть ощущение, что лет через 10 мы еще будем вспоминать нынешние времена с умилением: вот мол, какие были времена, люди сами делали для себя библиотеки, и какие это были библиотеки! Не то, что эти ваши гигабайты сгенерированные языковыми моделями, в которых не то что человек, даже самые продвинутые языковые модели не могут разобраться...
Re: Ненавижу пакетно-ориентированное программирование
От: LaptevVV Россия  
Дата: 25.09.25 04:45
Оценка:
TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.
Просто настало время сотворить в мировом масштабе сертификацию пакетов.
Или что-то в этом роде.
Кто сертифицирован — те надежные и работают всегда и везде.
Ошибка в таком пакете — это ахтунг и мировая катастрофа...

Ну, что-то вроде ядра линукса, любое изменение/дополнение для которого проходит централизованную проверку.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Ненавижу пакетно-ориентированное программирование
От: Doom100500 Израиль  
Дата: 25.09.25 05:45
Оценка: +1
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, T4r4sB, Вы писали:


TB>>Какое же это унылое говно — современное пакетно-ориентированное программирование.


N>За 15 минут вайдкодишь то, что раньше делал бы год, заворачиваешь в докер. Докер-ориентированное программирование.


Ну да. Сервера-же бесплатные.
Когда одни делают лёгкие контейнеры только с одним бинарником, другие вайб-кодят 20-гигабайтовие образы у грузят ими CI/CD и кубер, который помнит всё, если не чистить.
Спасибо за внимание
Re[3]: Ненавижу пакетно-ориентированное программирование
От: cppguard  
Дата: 25.09.25 06:06
Оценка:
Здравствуйте, so5team, Вы писали:

S>А вы могли бы объяснить старому пердуну, давно забывшему школу, почему это "очевидно" и почему "данные не меняются"?


https://rsdn.org/forum/cpp/1918853.flat#1918853
Автор: Vain
Дата: 25.05.06

https://www.reddit.com/r/C_Programming/comments/1kcnsvp/is_there_a_sensible_and_principled_way_of_using/
https://yarchive.net/comp/const.html
Re[4]: Ненавижу пакетно-ориентированное программирование
От: so5team https://stiffstream.com
Дата: 25.09.25 06:30
Оценка: 1 (1) +4
Здравствуйте, cppguard, Вы писали:

S>>А вы могли бы объяснить старому пердуну, давно забывшему школу, почему это "очевидно" и почему "данные не меняются"?


C>https://rsdn.org/forum/cpp/1918853.flat#1918853
Автор: Vain
Дата: 25.05.06

C>https://www.reddit.com/r/C_Programming/comments/1kcnsvp/is_there_a_sensible_and_principled_way_of_using/
C>https://yarchive.net/comp/const.html

К сожалению, у меня нет времени внимательно читать то, что кто-то написал на каких-то заборах. Кроме того, по двум последним ссылкам обсуждение идет не для free, а для kfree из Linux-а, там может быть своя специфика.

Что касается free, то ее задачей является освобождение блока памяти.
Для некоторых типов аллокаторов это означает необходимость модификации memory control block-а, предшествующего адресу, который был передан во free. В таких аллокаторах указатель на этот самый MCB получается очень просто:
void free(void * ptr) {
  MCB * mcb = ((char *)ptr) - sizeof(MCB);
  mcb->status = MCB_STATUS_FREE_BLOCK;
  ...
}

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

Кроме того, вроде как ни POSIX, ни стандарт Си не запрещает иметь реализации free, которые кроме освобождения указанного блока еще и затирают содержимое освобожденного блока какими-то специальными значениями (например, 0xDEADBEAF в debug-сборках). Опять же для этого нужен указатель, допускающий модификации.

Так что с "очевидно", имхо, все не так очевидно.
Re[5]: Ненавижу пакетно-ориентированное программирование
От: cppguard  
Дата: 25.09.25 06:47
Оценка:
Здравствуйте, so5team, Вы писали:

S>Кроме того, вроде как ни POSIX, ни стандарт Си не запрещает иметь реализации free, которые кроме освобождения указанного блока еще и затирают содержимое освобожденного блока какими-то специальными значениями (например, 0xDEADBEAF в debug-сборках). Опять же для этого нужен указатель, допускающий модификации.


Нормальный такой аргумент Ну так нигде в стандарте и не написано, что всё, что не запрещено, разрешено. Аналогично можно придумать пример про какие-то другие функции, работающие с указателями. Помимо того, что уже написано, и с чём я большей степени согласен, я ориентируюсь прежде всего на семантику. В стандарте чётко описано поведение, и поведение, кроме случаев double-free, ничего не говорит про модификацию данных. Особенности реализации это особенности реализации, пусть внутри снимается const сколько угодно раз — данные не должны быть изменены, потому что семантика этого не описывает, а значит не сломаются и остальные механизмы, полагающиеся на константность.
Re[6]: Ненавижу пакетно-ориентированное программирование
От: so5team https://stiffstream.com
Дата: 25.09.25 06:59
Оценка: +1
Здравствуйте, cppguard, Вы писали:

C>Нормальный такой аргумент Ну так нигде в стандарте и не написано, что всё, что не запрещено, разрешено.


Собственно, так и есть. Если что-то не запрещено явно и не объявлено как ведущее к UB, то это разрешено.

Вас же не удивляет, что компилятор может удалять переменные из кода в результате оптимизации. Или добавлять run-time проверки на переполнение стека.

C>я ориентируюсь прежде всего на семантику


Только вот для удаляемых данных нет вот этой вот семантики: "данные не должны быть изменены"
Данные превратились в мусор, их больше нет. Соответственно, нет и такого требования как "данные не должны быть изменены", т.к. это требование тупо не к чему применять.

При этом одно из достоинств Си, неоднократно озвучиваемых хейтерами C++, состоит в том, что якобы в Си все прозрачно, нет ничего, что делается неявно "под капотом". И как раз передача неконстантного void* в free этой самой прозрачности и следует -- если память по переданному указателю может модифицироваться, то значит не место неявным снятиям константности под тем самым "капотом".

У меня нет задачи убедить вас в том, что мои аргументы единственно верны и вы заблуждаетесь.
Моя задача показать, что утверждение об "очевидно" далеко не очевидно.
Re[2]: Ненавижу пакетно-ориентированное программирование
От: T4r4sB Россия  
Дата: 25.09.25 08:08
Оценка: :))
Здравствуйте, cppguard, Вы писали:

C>Здравствуйте, T4r4sB, Вы писали:


TB>>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики. Да, надо было читать документацию к формату, но это было прикольно.

C>И детских багов маленькую тележку, которые превращают твою прогу в решето.

Не без этого, но такие баги даже чинить как-то не так скучно что ли
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[3]: Ненавижу пакетно-ориентированное программирование
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 25.09.25 08:09
Оценка:
Здравствуйте, sergey2b, Вы писали:

N>>За 15 минут вайдкодишь то, что раньше делал бы год, заворачиваешь в докер. Докер-ориентированное программирование.

S>а можно пример реального проекта/задачи

Это была шутка, приближенная к реальности.
Re[2]: Ненавижу пакетно-ориентированное программирование
От: T4r4sB Россия  
Дата: 25.09.25 08:12
Оценка:
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, T4r4sB, Вы писали:


TB>>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики.


S>А сохраняли вы картинку в итоге посредством прерываний BIOS-а, вручную переставляя головку винчестера на нужные сектора и вручную обновляя цепочку секторов, занятых вашим файлом в метаданных файловой системы?


Мышку в досе прерываниями ловил, например. И даже испытал некоторое разочарование когда узнал что в винде это совсем не так делается.
Если это все стандартизируется в системе то так даже лучше — меньше таскать в программе, когда в операционке всё есть. Но и тут есть подвох когда появляется новая функуия без которой твои программы в новой версии оси выглядят немного странно, а если ты задействуешь эту функцию, то потеряешь совместимость со старыми версиями. И опять придем к проблеме когда простейшее приложение какого-то хрена требует последнюю версию венды и браузера и... все равно 10 мегов на диске
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[3]: Ненавижу пакетно-ориентированное программирование
От: T4r4sB Россия  
Дата: 25.09.25 08:16
Оценка:
Здравствуйте, cppguard, Вы писали:

C>Здравствуйте, Osaka, Вы писали:


O>>Когда уже доделают оптимизирующие компиляторы, чтобы выковыривали из пакетов только реально выполняемые клиентской программой строчки кода и генерили безбиблиотечный исходник 30 килобайт?


C>Так давно. Статическая линковка называется. Только вот сразу перестают работать всякие рефлексии, а за ними и DSL, обёртки, декораторы, расширения времени выполнения и т.д.


Мы все еще про С-образные? В них рефлексия бывает только которую явно программист прописал, как и подключение библиотек
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.