Entry tags:
Виртуальные машины не то чтобы зло...
При прочих равных я всегда предпочитаю родные бинарники. Серьёзная программа должна выполняться в машинных кодах, как предписано разработчиком процессора. Виртуальных машин избегаю по возможности. Они обычно только вносят лишнюю сумятицу.
К примеру, Питон, отличный язык, но построенный вокруг специальной виртуальной машины. Вопрос на засыпку: сколько разных копий Питона установлено на вашем компьютере? Я глянул на своём маке:
К примеру, Питон, отличный язык, но построенный вокруг специальной виртуальной машины. Вопрос на засыпку: сколько разных копий Питона установлено на вашем компьютере? Я глянул на своём маке:
- собственно Питона установлено четыре версии: 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
Java и .NET имеют JIT и исполняются в машинных кодах.
Python (обычно) нет.
no subject
no subject
Любой крупный продукт тащит привязку к конкретным версиям shared libraries,
а уж containerized-приложения по-определению.
no subject
no subject
А решать как-то надо, вот инженеры и придумали (в век резиновой памяти) запекать все в
навозные шарикиконтейнеры и поставлять пользователям чтобы зависимости были только от ядра ОС.no subject
Так сложилось что разработчики пишут ПО с разной скоростью и догоняют апстримы как придется, вот и получается что наши системы вынужденно замусореваются такими зависимостями
no subject
Они же не сами плодятся. Их плодят-с. Чтобы, как мне тут пишут в свежем утреннем рекламном письме, «to deliver and transform applications in less time». Пользователь-то всё стерпит…
no subject
Та сама логіка працює щодо статично лінкованих програм так само: в них купа дубльованих і трохи різних версій одних і тих самих бібліотек, тільки що ми навіть не можемо побачити, копія чого саме запечена в купу великих бінарників.
Так, Linux shared libraries і перевикористання пакунків це справді аномалія і дуже багато роботи, щоб протестувати це все разом.
Edit: про недоліки VMs додам ще про те, що embedded VMs створюють ефект внутрішньої платформи, де раптово перестають ефективно працювати інструменти для машинного коду, без VM-specific tooling все різко стає непрозорим: профайлинг, дебаг, security audits. І навіть коли воно є, зробити корисні висновки стає складніше.
no subject
no subject
no subject
no subject
no subject
no subject
Ну, стало быть, не все так безнадежно, как казалось. Хотя детишки все равно на это свои любимые бейсики напялят.
no subject
-- конечно, любой package manager решает ту же самую проблему вполне себе эффективно
-- ну да, возьмем к примеру npm
-- б*ъ*/*%*&*ъ!!!!
no subject
no subject
идиотовпользователей как у npm.