реклама
Бургер менюБургер меню

Нави Тулаг – От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях (страница 4)

18

Какая философия лежит в основе каждого фреймворка.

Кто их целевая аудитория — и почему вы среди них.

Какие сильные и слабые стороны у каждого для задач лаборатории.

Эта глава поможет вам не просто «выбрать фреймворк», а понять, какой язык вам использовать.

3.1. Python Eel: «Мой скрипт заслуживает интерфейс»

📜 История и философия

Eel родился в 2017 году из простой идеи:

«Почему бы не использовать HTML/CSS/JS для интерфейса, а всю логику оставить на Python?»

В отличие от Electron и Neutralino, Eel не встраивает браузер. Вместо этого он:

Запускает локальный веб-сервер на Python (через bottle или gevent-websocket).

Открывает окно системного браузера (Chrome, Edge, Safari).

Связывает Python и JavaScript через HTTP/WebSocket.

Философия Eel:

Не становиться веб-разработчиком. Использовать веб-технологии как инструмент для отображения данных, оставляя Python для работы с железом.

👥 Целевая аудитория

Кто вы

Почему Eel вам подходит

Инженер-экспериментатор

Ваша логика уже на Python (pyserial, pandas, numpy)

Исследователь/лаборант

Нужен GUI за вечер, без изучения Node.js

Студент технической специальности

Дипломный проект с реальным железом и современным UI

Data Scientist

Визуализация результатов модели в окне приложения

Сильные стороны для инженеров

Очень простой старт: 10 строк Python + 10 строк HTML = готовое приложение.

Полный доступ к экосистеме Python: pyserial, pandas, numpy, scikit-learn, opencv — всё работает «из коробки».

Минимальный порог входа: Не нужно знать JavaScript глубоко — достаточно базовых вызовов функций.

Идеален для скриптов с GUI: Панели управления, сбор данных, визуализация.

Слабые стороны

Нет встроенного доступа к нативным API ОС: Нет меню, трея, уведомлений «из коробки» (требуются доп. библиотеки вроде pystray).

Ограниченные возможности UI: Сложные интерфейсы (drag-and-drop, анимации) — сложнее, чем в Electron.

Производительность вызовов: Каждый вызов Python → JS проходит через HTTP/WebSocket (не критично для 95% задач).

Сборка в .exe: Требует PyInstaller, что может быть громоздко с большими зависимостями.

🛠️ Пример из практики: Панель мониторинга Arduino

Вот как выглядит типичное Eel-приложение для инженера (из ваших проектов):

Что это даёт инженеру:

Режим эмуляции — тестируйте код без Arduino

Графики в реальном времени — Chart.js + Python

Упаковка в .exe — PyInstaller, один файл для коллег

💡 Важно: В этой книге мы делаем ставку на Eel как основной инструмент, потому что он максимально близок к мышлению инженера: Python для логики, HTML для красоты.

3.2. Electron: «Веб-приложение как десктопный продукт»

📜 История и философия

Electron разработан в 2013 году в компании GitHub как внутренний инструмент для редактора Atom. Идея была простой:

«Почему бы не использовать те же технологии, что и для веба, чтобы создавать десктопные приложения?»

Философия Electron:

Чёткое разделение ответственности: Main-процесс (Node.js) управляет ОС, Renderer-процесс (Chromium) отвечает за UI.

Это делает архитектуру предсказуемой, масштабируемой и безопасной.

👥 Целевая аудитория

Кто вы

Почему Electron вам подходит

Веб-разработчик

Вы знаете JavaScript/TypeScript, React, Vue

Команда продукта

Строите сложный инструмент с долгосрочной

поддержкой

Инженер с IoT-проектом

Нужен сложный UI + облачная синхронизация

Сильные стороны

Зрелая экосистема: electron-builder, DevTools, TypeScript-поддержка.

Чёткая архитектура с изоляцией процессов.

Огромное сообщество и документация.

Полный доступ к API ОС: меню, трей, уведомления, диалоги — всё «из коробки».

Поддержка всех современных веб-фреймворков: React, Vue, Svelte.