Ви помічали, що багато нових настільних програм схожих майже на веб-сайти? Це не ваша фантазія.
Від Trello до Slack, від WordPress.com до Github, дедалі частіше стають так звані настільні програми, які об’єднують веб-сайт з кількома власними функціями, такими як сповіщення, доступ до файлової системи та меню. Найпоширеніша технологія, що дозволяє це зробити, називається Електрон , і його використовують кілька додатків, про які ви, можливо, навіть не підозрюєте додаток для чату Discord та Microsoft Код Visual Studio .
Electron полегшує розробникам можливість одночасного випуску програми на Windows, macOS та Linux, але у користувачів є і мінуси. Застосування електронів величезне, з одного боку. Slack, програма для чату, займає 237 МБ місця на жорсткому диску на моєму Mac, і споживання пам'яті також не низьке. Що забирає всі ці ресурси? І чому розробники використовують щось таке неефективне?
Додатки Electron зробити досить просто
Настільні програми важко зробити, особливо якщо ви хочете, щоб вони були міжплатформенними. Доступ до файлової системи працює по-іншому в Windows, ніж у Linux, наприклад, а сповіщення працюють по-іншому в macOS, ніж у Windows. Це означає, що кожному, хто хоче написати програму для всіх трьох настільних операційних систем (або навіть двох з них), потрібно переписати багато свого коду при перенесенні з однієї на іншу.
Електрон “вирішує” це, пропонуючи єдину платформу, яка працює на всіх трьох основних настільних операційних системах. Це означає, що розробники можуть писати код для таких речей, як сповіщення, один раз і очікувати, що він буде працювати оригінально в кожній операційній системі. Ще краще для розробників: все можна створити за допомогою Javascript, HTML та CSS - технологій, котрі кодують веб, добре знайомі.
Програми Electron містять майже весь хром
Як це можливо? Частково тому, що кожна програма Electron містить повний веб-браузер: Chromium, версія Google Chrome з відкритим кодом . Це включено разом з інструкціями для конкретної платформи, щоб гарантувати, що все поводиться точно так, як очікують розробники у всіх системах. Ось чому настільна версія Slack займає понад 200 МБ місця на жорсткому диску: більша частина Chrome є там.
Кожна програма Electron, яку ви запускаєте, є більш-менш повноцінним екземпляром Chrome. Як блогер Джозеф Джентль зазначив , це навряд чи ідеально:
Ви можете уявити Slack як невелику програму javascript, яка працює в іншій віртуальній машині операційної системи (хром), яку вам потрібно запустити, щоб по суті спілкуватися в IRC. Навіть якщо у вас відкритий справжній хром, кожна електронна програма запускає свою власну, додаткову копію всієї ВМ.
Так що так, у користувачів є мінуси. Перш за все, кожна окрема програма Electron, яку ви завантажуєте, включає більшу частину Chromium, і кожна запущена програма виконує значну частину цього коду. Тут немає спільного використання ресурсів, як із власними програмами, тобто програми Electron займуть більше місця на жорсткому диску та пам'яті, ніж програми, розроблені з урахуванням вашої платформи. Якщо продуктивність - це щось, про що ви дійсно дбаєте, можливо, ви хочете уникати застосувань Electron.
Зачекайте, так це добре чи погано Electron?
На даний момент комп’ютери настільки потужні, що більшість користувачів навіть ніколи не помічають, наскільки неефективними є програми Electron. Насправді, переважна більшість навіть ніколи не чула про Електрон. Більшість моїх колег цього не робили, і всі вони використовують Slack щодня. Багато хто був радий побачити настільну версію Trello, і вони знову не підозрювали, що це програма Electron.
І ці програми дійсно краще інтегруються з вашою операційною системою краще, ніж веб-сайти. Вони живуть у своєму вікні. Вони пропонують чудові комбінації клавіш, рідні сповіщення та інші речі, яких не можна зробити так само за допомогою браузера.
І гарна ставка, що такі програми, як Slack, Trello та WordPress.com, не потурбуються запропонувати настільну версію, якщо Electron не існує, натомість зосередившись на мобільних версіях та версіях браузера. Тож питання не в тому, чи поганий Електрон; це те, чи додатки Electron кращі, ніж нічого. Я готовий сказати так, але розумні люди можуть не погодитися. (І привіт, для цих людей завжди існує веб-версія.)