![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
При прочих равных я всегда предпочитаю родные бинарники. Серьёзная программа должна выполняться в машинных кодах, как предписано разработчиком процессора. Виртуальных машин избегаю по возможности. Они обычно только вносят лишнюю сумятицу.
К примеру, Питон, отличный язык, но построенный вокруг специальной виртуальной машины. Вопрос на засыпку: сколько разных копий Питона установлено на вашем компьютере? Я глянул на своём маке:
К примеру, Питон, отличный язык, но построенный вокруг специальной виртуальной машины. Вопрос на засыпку: сколько разных копий Питона установлено на вашем компьютере? Я глянул на своём маке:
- собственно Питона установлено четыре версии: 2.7, 3.8, 3.9, 3.10
- копия Питона 3.7 внутри приложения LibreOffice
- три лишних копии Питона 3.8 в приложениях XCode, Apple CLI Tools и KiCad
- ещё одна копия Питона 3.9 в компиляторе для ESP32
- плюс десять копий Питона 3.10 в утилитах awscli, bpytop, gallery-dl, glances, meson, scons, sip, sphinx-doc, xonsh, youtube-dl
no subject
Date: 2022-08-07 21:56 (UTC)Java и .NET имеют JIT и исполняются в машинных кодах.
Python (обычно) нет.
no subject
Date: 2022-08-07 22:07 (UTC)no subject
Date: 2022-08-07 23:08 (UTC)Любой крупный продукт тащит привязку к конкретным версиям shared libraries,
а уж containerized-приложения по-определению.
no subject
Date: 2022-08-07 23:39 (UTC)no subject
Date: 2022-08-08 03:24 (UTC)А решать как-то надо, вот инженеры и придумали (в век резиновой памяти) запекать все в
навозные шарикиконтейнеры и поставлять пользователям чтобы зависимости были только от ядра ОС.no subject
Date: 2022-08-08 03:21 (UTC)Так сложилось что разработчики пишут ПО с разной скоростью и догоняют апстримы как придется, вот и получается что наши системы вынужденно замусореваются такими зависимостями
no subject
Date: 2022-08-08 05:44 (UTC)Они же не сами плодятся. Их плодят-с. Чтобы, как мне тут пишут в свежем утреннем рекламном письме, «to deliver and transform applications in less time». Пользователь-то всё стерпит…
no subject
Date: 2022-08-08 11:21 (UTC)Та сама логіка працює щодо статично лінкованих програм так само: в них купа дубльованих і трохи різних версій одних і тих самих бібліотек, тільки що ми навіть не можемо побачити, копія чого саме запечена в купу великих бінарників.
Так, Linux shared libraries і перевикористання пакунків це справді аномалія і дуже багато роботи, щоб протестувати це все разом.
Edit: про недоліки VMs додам ще про те, що embedded VMs створюють ефект внутрішньої платформи, де раптово перестають ефективно працювати інструменти для машинного коду, без VM-specific tooling все різко стає непрозорим: профайлинг, дебаг, security audits. І навіть коли воно є, зробити корисні висновки стає складніше.
no subject
Date: 2022-08-08 11:36 (UTC)no subject
Date: 2022-08-08 12:44 (UTC)no subject
Date: 2022-08-08 13:52 (UTC)no subject
Date: 2022-08-08 14:01 (UTC)no subject
Date: 2022-08-08 18:26 (UTC)no subject
Date: 2022-08-10 08:15 (UTC)Ну, стало быть, не все так безнадежно, как казалось. Хотя детишки все равно на это свои любимые бейсики напялят.
no subject
Date: 2022-08-08 15:43 (UTC)-- конечно, любой package manager решает ту же самую проблему вполне себе эффективно
-- ну да, возьмем к примеру npm
-- б*ъ*/*%*&*ъ!!!!
no subject
Date: 2022-08-08 18:28 (UTC)no subject
Date: 2022-08-08 20:19 (UTC)идиотовпользователей как у npm.