Здравствуйте, T4r4sB, Вы писали:
TB>Если это все стандартизируется в системе то так даже лучше — меньше таскать в программе, когда в операционке всё есть. Но и тут есть подвох когда появляется новая функуия без которой твои программы в новой версии оси выглядят немного странно, а если ты задействуешь эту функцию, то потеряешь совместимость со старыми версиями.
Это если двигаться в одну сторону.
Но есть еще и движение в ином направлении, ортогональном: работа на разных ОС. Т.е. одни и те же фичи есть и там, и там, но оформлены совершенно по разному. И тут возникает некий слой обеспечения совместимости, сперва в виде библиотек, затем в виде фреймворков. И вот мы уже в мире плюсовых Qt/FLTK/wxWindows или Java-овского Swing-а в конце 1990-х. В общем-то то самое пакетно-ориентированное программирование в уже оформившемся виде.
O>>Когда уже доделают оптимизирующие компиляторы, чтобы выковыривали из пакетов только реально выполняемые клиентской программой строчки кода и генерили безбиблиотечный исходник 30 килобайт? C>Так давно. Статическая линковка называется.
То подключение пакетов целиком как есть. А надо просто использовать пакет как книгу рецептов, и скопировать из них только те последовательности команд, которые нужны для конкретной задачи.
Друга ищи не того, кто любезен с тобой, кто с тобой соглашается, а крепкого советника, кто полезного для тебя ищет и противится твоим необдуманным словам.
Здравствуйте, T4r4sB, Вы писали:
TB>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики.
Ну, я до сих пор все так делаю. Знаю, что трачу много времени, зато не имею зависимостей, кроме неизбежных, вроде хлопот с подписыванием ядерного кода. А некоторые заказчики очень довольны тем, что мой софт почем зря не лезет в сеть, для сборки не нужно скачивать и устанавливать 100500 библиотек (как тут недавно описывалось
Здравствуйте, so5team, Вы писали:
S>такое явление как "библиотеки подпрограмм" начало формироваться, если я правильно помню историю, еще до этого
Обычно это были таки библиотеки стандартных подпрограмм. В том и разница, что библиотеки и API, более-менее стандартизованные "сверху", обеспечивают большее единообразие и меньший хаос, нежели современное бесконтрольное их использование.
Здравствуйте, LaptevVV, Вы писали:
LVV>Кто сертифицирован — те надежные и работают всегда и везде.
Дело не столько в сертификации, сколько в количестве/разнообразии, которое уже давно неспособен охватить отдельно взятый мозг. Представьте себе ресторан, где меню в виде талмуда толщиной сантиметров в семь.
Здравствуйте, cppguard, Вы писали:
O>>Когда уже доделают оптимизирующие компиляторы, чтобы выковыривали из пакетов только реально выполняемые клиентской программой строчки кода и генерили безбиблиотечный исходник 30 килобайт?
C>Так давно. Статическая линковка называется.
Не. В идеале такой компилятор должен получать на вход исключительно исходники (хотя бы обфусцированные). Обладая должной мощью, он мог бы найти все возможные зависимости (вплоть до динамических), по ним построить граф, и максимально его оптимизировать, а все ненужное выкинуть. Тогда, действительно, из десятка библиотек, по сотне мегабайт каждая, можно будет собрать бинарник в пару десятков килобайт, если его функциональность большего не требует.
Собственно, все это давно и активно используется в производстве микросхем. Там на входе софта, строящего топологию, почти всегда только исходники, которые довольно сильно оптимизируются. Библиотек, предоставляющих готовые схемные решения, тем более — готовые топологии, крупные производители стараются избегать.
Здравствуйте, T4r4sB, Вы писали:
TB>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики. Да, надо было читать документацию к формату, но это было прикольно. TB>Сейчас ты скачиваешь готовый пакет и изучаешь документацию, чтобы понять, какие настроечки и конфигуровочки надо куда приделать. Какой флаг приделать к унылой команде унылого скрипта сборки — обосраться как весело TB>Раньше если у тебя был баг и расстрел памяти, то это было увлекательное приключение по поиску причин. Сейчас ты лелешь на стековефрлоу чтобы узнать, у кого ещё этот пакет так же баганул и как это обойти TB>Раньше ты сам придумывал интерфейс своей либе и прикручивал фичи. Сейчас ты зубришь документацию, но это не помогает. Ты наизусть знаешь как использовать сишный рандом, который ты 10 лет не использовал, но не можешь запомнить как приделать к программе современный идеологически-выдержанный рандом, в котором за тебя все формулы запрятали в методы с названиями, которые хрен запомнишь, и каждый раз гуглишь заново. TB>Раньше твоя программа получалась 30 килобайт и запускалась везде, сейчас она весит 10 мегов и требует новейшую вин11, потому что использованный тобой пакет тащит какую-то зависимость до которой хрен доберёшься и на которую всем насрать. TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.
Да, были бумажные книжки по процессорам — и что-то даже оседало в голове.
Сейчас гуглёж, гуглёж, гуглёж.
TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.
А еще через пару лет автору приходит в голову что его Public API не соответствует новейшим веяниям моды и перелопачивает все.
А потом, если вдруг пакет стал мега популярным, автор решает что на MIT лицензии ничего не заработаешь и переходит на какое-то написанное выпускником задрищенского юрфака говно.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Дело не столько в сертификации, сколько в количестве/разнообразии, которое уже давно неспособен охватить отдельно взятый мозг. Представьте себе ресторан, где меню в виде талмуда толщиной сантиметров в семь.
И большинство блюд есть совершенно невозможно, а в остальных есть неприятные баги рецепта, на которые уже пару лет висят пулл-реквесты, только на них автору некогда посмотреть
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, LaptevVV, Вы писали:
LVV>Кто сертифицирован — те надежные и работают всегда и везде. LVV>Ошибка в таком пакете — это ахтунг и мировая катастрофа...
Может не прокатить.
Работал я в одном проекте. Писался он на Java. Тестировщики в какой-то момент начали рапортовать об ошибке, что-то критическое. А разработчики не видят, в чём дело. Позже выяснилось, что у одних стояла Java от Oracle, а у других — от IBM. Они некоторые вещи типа областей видимости по-разниму обрабатывают.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, T4r4sB, Вы писали:
TB>>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики.
ЕМ>Ну, я до сих пор все так делаю. Знаю, что трачу много времени, зато не имею зависимостей, кроме неизбежных, вроде хлопот с подписыванием ядерного кода. А некоторые заказчики очень довольны тем, что мой софт почем зря не лезет в сеть, для сборки не нужно скачивать и устанавливать 100500 библиотек (как тут недавно описывалось
Здравствуйте, T4r4sB, Вы писали:
TB>>>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики.
ЕМ>>Ну, я до сих пор все так делаю. Знаю, что трачу много времени, зато не имею зависимостей, кроме неизбежных, вроде хлопот с подписыванием ядерного кода. А некоторые заказчики очень довольны тем, что мой софт почем зря не лезет в сеть, для сборки не нужно скачивать и устанавливать 100500 библиотек (как тут недавно описывалось
), разбираться с лицензией на каждую, и т.п.
TB>Респект, это ТРУЪ-программирование а не тупо собрать пакетики
Подозреваю, что это только потому, что он на протяжении десятилетий занимается очень специфической темой, связанной с обработкой звука в драйверах Windows.
Довелось бы ему с подписанными XML-документами работать, да еще на 3х платформах, можно было бы посмотреть как бы он выкручивался бы.
Здравствуйте, syrompe, Вы писали:
TB>>Какое же это унылое говно — современное пакетно-ориентированное программирование.
S>А еще через пару лет автору приходит в голову что его Public API не соответствует новейшим веяниям моды и перелопачивает все. S>А потом, если вдруг пакет стал мега популярным, автор решает что на MIT лицензии ничего не заработаешь и переходит на какое-то написанное выпускником задрищенского юрфака говно.
В русте отчасти это решается возможностью указать в зависимостях старую версию пакета
Только все равно страшно что бинарник распухнет если разные компоненты потребуют разную версию одного и того же пакета и все продублируется на каждый чих.
А еще я попробовал так сделать чтоб собирать старым компилятором (новый в вин7 не работает по причине... да все той же) и нифига чет не прокатило. Мб я плохо старался, яхз
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, so5team, Вы писали:
S>Подозреваю, что это только потому, что он на протяжении десятилетий занимается очень специфической темой, связанной с обработкой звука в драйверах Windows.
Ну, драйвера-то почти любые делаются в основном на собственном коде — прицепить к ним модные библиотеки сложно по вполне понятным причинам.
А когда для обработки звука/видео используется какой-нибудь fmmpeg, то получается что-то вроде VLC media player, у которого за тридцать лет не было ни одной неглючной реализации.
S>Довелось бы ему с подписанными XML-документами работать, да еще на 3х платформах, можно было бы посмотреть как бы он выкручивался бы.
Ну, я в суровой математике не копенгаген, так что сами средства создания/проверки подписей, наверное, взял бы готовые (тем более, что они давно есть в составе каждой популярной ОС). А для работы с XML недолго сделать собственный движок, это не рокет сайенс...
Здравствуйте, T4r4sB, Вы писали:
TB>Раньше чтоб сохранить картинку в png, тебе надо было читать как устроен формат и самому креативить и переставлять битики. Да, надо было читать документацию к формату, но это было прикольно. TB>Сейчас ты скачиваешь готовый пакет и изучаешь документацию, чтобы понять, какие настроечки и конфигуровочки надо куда приделать. Какой флаг приделать к унылой команде унылого скрипта сборки — обосраться как весело TB>Раньше если у тебя был баг и расстрел памяти, то это было увлекательное приключение по поиску причин. Сейчас ты лелешь на стековефрлоу чтобы узнать, у кого ещё этот пакет так же баганул и как это обойти TB>Раньше ты сам придумывал интерфейс своей либе и прикручивал фичи. Сейчас ты зубришь документацию, но это не помогает. Ты наизусть знаешь как использовать сишный рандом, который ты 10 лет не использовал, но не можешь запомнить как приделать к программе современный идеологически-выдержанный рандом, в котором за тебя все формулы запрятали в методы с названиями, которые хрен запомнишь, и каждый раз гуглишь заново. TB>Раньше твоя программа получалась 30 килобайт и запускалась везде, сейчас она весит 10 мегов и требует новейшую вин11, потому что использованный тобой пакет тащит какую-то зависимость до которой хрен доберёшься и на которую всем насрать. TB>Какое же это унылое говно — современное пакетно-ориентированное программирование.
Хм. Я не понял только одного — кто запрещает вам сейчас креативить и переставлять битики?
Я вот в восторге от пакетно-ориентированного программирования.
Ведь у меня есть выбор между тем, чтобы начать пердолить что-то самому, и тем чтобы быстро скачать пару гигов из интернета и поехать.
Это гораздо круче, чем "компонентное программирование" прошлого века.
Я помню свой восторг из девяностых, когда я обнаружил возможность на Delphi просто кинуть на форму готовый медиаплеер, и у меня была программа, умеющая воспроизводить mp3!
Представляете себе уровень затрат по написанию своего mp3-плеера на каком-нибудь Turbo C под DOS? Все вот эти вот чтения битиков из файла, аккуратная обработка всех "пользователь выдернул дискетку во время работы", декодирование формата, декомпрессия на лету, подсчёт времени для того, чтобы вовремя перекидывать аудиобуфера в саундбластер?
Каких-то несколько месяцев кранча, и кривенькая косенькая программа будет готова.
А тут — работы на три минуты. Ещё 15 минут можно потратить на то, чтобы сделать плееру кавайные кнопки.
Одна проблема — весь плеер теперь чёрный ящик. Если он не умеет играть .ogg — ну всё, не умеет. Перекраской кнопочек и передвиганием его по форме дело не спасти.
А теперь — пжалста, пакеты. Хочется влезть в аудиотракт этого плеера, и, к примеру, извлекать из него слова для караоке? Смотришь, что там у него внутри, встраиваешь свой код — и алга. Опять же, для распознавания речи не нужно тратить полжизни на написание докторской. Качнул пакетик с нейросеткой — и она тебе всё распознаёт.
Возможность быстро прототипировать — бесценна.
А если пакет перестал устраивать — велком обратно в битики. Можешь и сам сеточку тренировать, и mp3 декомпрессировать. Чего нет-то.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Хм. Я не понял только одного — кто запрещает вам сейчас креативить и переставлять битики?
Это не ценится( Рынок требует быстрее наговнякать ублюдище весом в 10 мегов, требующее последнюю винду.
S>Представляете себе уровень затрат по написанию своего mp3-плеера на каком-нибудь Turbo C под DOS? Все вот эти вот чтения битиков из файла, аккуратная обработка всех "пользователь выдернул дискетку во время работы", декодирование формата, декомпрессия на лету, подсчёт времени для того, чтобы вовремя перекидывать аудиобуфера в саундбластер? S>Каких-то несколько месяцев кранча, и кривенькая косенькая программа будет готова.
Не надо кранчиться, надо неспешно пилить декодер. Разве это не кайф?
S>А тут — работы на три минуты.
Крайне унылой работы по изучению документации по сборке. Ну для Дельфи ладно, настройка сборки и правда неактуальна.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
TB>Это не ценится( Рынок требует быстрее наговнякать ублюдище весом в 10 мегов, требующее последнюю винду.
Рынок этого требовал примерно всегда. Просто раньше возможностей таких не было. А сейчас те, кто неспособен воспользоваться возможностями, вытесняются из мейнстрима —
TB>Не надо кранчиться, надо неспешно пилить декодер. Разве это не кайф?
Не вижу тут особого кайфа. Пилить лучший в мире декодер — да, кайф. Ну, так это и сейчас можно делать.
А просто пилить декодер, который отличается от ста тыщ других декодеров только набором уникальных багов — ну, такое себе.
TB>Крайне унылой работы по изучению документации по сборке. Ну для Дельфи ладно, настройка сборки и правда неактуальна.
Отож. Кстати, унылая документация по сборке — это признак стрёмного пакета. Приличные вещи должны быть лёгкими в применении. Качнул — подключил — завёл.
А не вот это вот всё, когда приходится бегать по кругу с настройками tsc, потому что одна библиотека хочет CommonJS, а другая — ES2023.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, T4r4sB, Вы писали:
TB>Это не ценится( Рынок требует быстрее наговнякать ублюдище весом в 10 мегов, требующее последнюю винду.
TB>Не надо кранчиться, надо неспешно пилить декодер. Разве это не кайф?
Ну тут никак — нужно определиться, что для вас первостепенно: чтобы вашу работу оценили или чтобы она приносила удовольствие.
Не, я обеими руками за то чтобы успешно сочетать, но надеяться что это обязательно получится...
Здравствуйте, Михаил Романов, Вы писали:
МР>Ну тут никак — нужно определиться, что для вас первостепенно: чтобы вашу работу оценили или чтобы она приносила удовольствие. МР>Не, я обеими руками за то чтобы успешно сочетать, но надеяться что это обязательно получится...
Надо чтоб всемогущий Бог вытеснил идиотов, которые не в состоянии найти галочку при сборке и на пустом месте лепят зависимость от последней венды. Ну раз рынок этих идиотов только благословляет.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте