Здравствуйте, Константин Б., Вы писали:
КБ>И... ты решил что тут виноват язык на котором написана библиотека Б? 🤔
Да, так и есть. Ведь pip — это часть стандартной языковой инфраструктуры. И сам язык способствует тому, чтобы на нём писали программы определённым образом.
Здравствуйте, novitk, Вы писали:
N>Это обычный флейм "статика/динамика"? Извините, что влез.
Не только это. Там ещё pip способствует тому, чтобы не было стремления соблюдать совместимость. Легко написать, легко указать версию, легко обновить. В тех же плюсах проблемы с версиями библиотек возникают, например, при использовании vcpkg (может, уже и исправили). Но динамика точно не облегчает работу.
Здравствуйте, Константин Б., Вы писали:
КБ>И... ты решил что тут виноват язык на котором написана библиотека Б? 🤔
Ещё вспомнилось, как бережно отнёсся к пользователям Торвальдс, когда отстоял незадокументированное поведение memcpy в glibc. Прикинь, он хотел, чтобы у всех работала функция, хоть по документации и не должна была. Для удобства пользователей, если ты понимаешь, о чём я.
А ещё я взял исходники С библиотеки, подключил в свой С++17 проект и оно просто заработало без единой проблемы.
Ты скажешь, что это совпадение и ерунда. А мне кажется, что С-программисты реально заботятся об обратной совместимости программ и библиотек.
Здравствуйте, Nuzhny, Вы писали:
N>А ещё я взял исходники С библиотеки, подключил в свой С++17 проект и оно просто заработало без единой проблемы. N>Ты скажешь, что это совпадение и ерунда. А мне кажется, что С-программисты реально заботятся об обратной совместимости программ и библиотек.
Ты слишком обобщаешь и преувеличеваешь, сравнивая стабильность API дедушки POSIXа с новейшими высерами ML сообщества. Все сильно зависит от конкретной библиотеки. Например по моему опыту numpy — стабилен, а pandas — нет.
Здравствуйте, кубик, Вы писали:
К>Блин, сколько воя было про DLL hell в винде. К>Боже мой,какой это был детский сад по сравнению с питоном на линуксе ...
Здравствуйте, novitk, Вы писали:
N>Ты слишком обобщаешь и преувеличеваешь, сравнивая стабильность API дедушки POSIXа с новейшими высерами ML сообщества. Все сильно зависит от конкретной библиотеки. Например по моему опыту numpy — стабилен, а pandas — нет.
Вот так совершенно случайно оказалось, что солидный кусок numpy написан на С, а pandas целиком на Питоне. Совпадение?
Здравствуйте, Nuzhny, Вы писали: N> ... А мне кажется, что С-программисты реально заботятся об обратной совместимости программ и библиотек.
C язык "зрелый", и не используется для "однодневных" разработок в отличие от ... Поэтому имеется некая культура, что написанное однажды, должно работать настолько долго, на сколько это возможно, да и люди развивающие язык с учетом этого осторожно и бережно вносили изменения.
немного размышлений про C++
В свою очередь, с C++ получилось несколько хуже, ибо слишком много хайпа вокруг него периодически создавалось, то всем развестистое ООП (с нулевыми издержками) подавай, то на каждом углу метапрограммирование на шаблонах ...
Это безобразие послужило приманкой для теоретиков и прочих идиотов, которые от безделья и практической безграмотности, и так непростой мультипарадигменный язык, бездумно украсили "фишечками" и "рюшечками" сделав его изрядно переусложненным для среднестатистического обывателя.
А на всяких скрипто-языках типа Питона, совсем другая культура разработки, по сути пригодны подобные средства только для прототипирования (однодневок) и возможно обучения в школьных кружках.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Константин Б., Вы писали:
КБ>>И... ты решил что тут виноват язык на котором написана библиотека Б? 🤔
N>Да, так и есть. Ведь pip — это часть стандартной языковой инфраструктуры. И сам язык способствует тому, чтобы на нём писали программы определённым образом.
А определенным образом — это каким? И как именно pip этому способствует?
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Константин Б., Вы писали:
КБ>>И... ты решил что тут виноват язык на котором написана библиотека Б? 🤔
N>Ещё вспомнилось, как бережно отнёсся к пользователям Торвальдс, когда отстоял незадокументированное поведение memcpy в glibc. Прикинь, он хотел, чтобы у всех работала функция, хоть по документации и не должна была. Для удобства пользователей, если ты понимаешь, о чём я.
А еще вспомнился другой известный программист на Си — Ульрих Дреппер. Прикинь, он наоборот хотел чтобы у всех все сломалось 🤷🏿
N>А ещё я взял исходники С библиотеки, подключил в свой С++17 проект и оно просто заработало без единой проблемы.
N>Ты скажешь, что это совпадение и ерунда.
Ну вот когда библиотеки на питоне работают без проблем — это совпадение и ерунда? Или по твоему такого не бывает? )
N>А мне кажется, что С-программисты реально заботятся об обратной совместимости программ и библиотек.
Здравствуйте, Константин Б., Вы писали:
КБ>А определенным образом — это каким? И как именно pip этому способствует?
Разжую ещё раз.
Он позволяет легко получать библиотеки указанных версий. Я же написал выше. Благодаря этой лёгкости у разработчиков создаётся впечатление, что не обязательно соблюдать какую-то совместимость, ведь можно просто указать правильную версию. И это работает на мини проектах, которых на Питоне пишется много. Но когда начинаешь собирать из разных исходников что-то больше, чем проект на тысячу строк (или вообще из jupiter ноутббуков), но проблема с версионностью встаёт в полный рост и сразу видно, что о ней никто не думал. Сверху добавляем динамику и получаем тот самый python hell.
Тут ещё добавляет радости переход по версиям самого языка, я вообще не в курсе, как в Питоне эти штуки решаются и из моего поверхностного опыта кажется, что никак.
Здравствуйте, Константин Б., Вы писали:
КБ>А еще вспомнился другой известный программист на Си — Ульрих Дреппер. Прикинь, он наоборот хотел чтобы у всех все сломалось 🤷🏿
Где, как, что сломалось? Хоть ссылку на обсуждение кинь.
КБ>Ну вот когда библиотеки на питоне работают без проблем — это совпадение и ерунда? Или по твоему такого не бывает? )
Тут другая логика работает. Библиотека не работает — это аварийная ситуация. У нас может на тысячу библиотек не работать одна библиотека или 5. Это всё очень маленький процент, но во втором случае мы получаем проблем в пять раз больше. Добавь к этому, что исправляются при этом они тяжелее и получишь реальную картину.
N>>А мне кажется, что С-программисты реально заботятся об обратной совместимости программ и библиотек. КБ>Ульрих Дреппер — не C-программист?
Давай проверим! Зашёл к нему на гитхаб, там у него своих репозиториев 33, из них только 7 на С. Остальные на С++, Питоне, баше, Mathematica... Да, он не С программист, а вполне универсальный программсит, знающий и использующий много разных языков.
Но я в принципе не знал, кто он, пришлось искать. Почему ты привёл его как пример, почему сам не узнал, на чём он программирует? У тебя в принципе аргументы настоящие будут? Ты по факту задал несколько вопросов, упомянул не в тему какую-то неизвестную мне фамилию.
Здравствуйте, Ватакуси, Вы писали:
В>Питончик отлично работает везде, где у людей прямые руки.
Когда встречается фраза про "прямые руки", это всегда означает (всегда, без исключений), что на проде огребешь по полной. Потому что в реальности фраза "прямые руки" означает "хитровыделанный, переменный в самых неожиданных местах, радиус кривизны рук и мозгов". Только так, и никак иначе.
В>>Питончик отлично работает везде, где у людей прямые руки. DO>Когда встречается фраза про "прямые руки", это всегда означает (всегда, без исключений), что на проде огребешь по полной. Потому что в реальности фраза "прямые руки" означает "хитровыделанный, переменный в самых неожиданных местах, радиус кривизны рук и мозгов". Только так, и никак иначе.
Нет, не означает. Более того, с непрямыми руками ты отгребёшь с любым языком/системой/платформой и т.п.
В>>Питончик отлично работает везде, где у людей прямые руки. DO>Когда встречается фраза про "прямые руки", это всегда означает (всегда, без исключений), что на проде огребешь по полной. Потому что в реальности фраза "прямые руки" означает "хитровыделанный, переменный в самых неожиданных местах, радиус кривизны рук и мозгов". Только так, и никак иначе.
Здравствуйте, Nuzhny, Вы писали:
КБ>>А определенным образом — это каким? И как именно pip этому способствует?
N>Разжую ещё раз.
не подавись
N>Благодаря этой лёгкости у разработчиков создаётся впечатление, что не обязательно соблюдать какую-то совместимость, ведь можно просто указать правильную версию.
ээм, во многих случаях вообще не пишут версию в requirements (и не фризят тоже)
здесь и сейчас работает и норм, что там завтра будет пофиг
Здравствуйте, кубик, Вы писали:
К>В Windows как прекрасно заботились о compartibility
Дык МС и в своих питонячих либах за этим следит, и Амазон с Гуглом.
Совместимость вещь дорогая, простому Ваську нафиг не упало париться с этим для какого-то кубика.
Здравствуйте, Константин Б., Вы писали:
КБ>А еще вспомнился другой известный программист на Си — Ульрих Дреппер. Прикинь, он наоборот хотел чтобы у всех все сломалось 🤷🏿
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, Константин Б., Вы писали:
КБ>>А еще вспомнился другой известный программист на Си — Ульрих Дреппер. Прикинь, он наоборот хотел чтобы у всех все сломалось 🤷🏿
M>Кто это?
Был в свое время ментейнером glibc. По стандарту memcpy не поддерживает пересекающиеся области памяти (в этом случае надо использовать memmove)
Однажды в реализацию memcpy внесли оптимизацию которая сломала код всем кто использовал memcpy неправильно.
Был жуткий скандал и срач на эту тему. Дреппер топил за то чтобы эти криворукие программисты правили свой код. Торвальдс топил за то что стандартами надо подтереться.