Java-IDE прямо в браузере: код, компиляция и превью без установки ни строчки
Codename One показала экспериментальную IDE, которая целиком работает в браузере: редактирование, компиляция Java и запуск превью происходят локально в странице, а проект хранится в хранилище браузера. Разбираемся, что это значит на практике и где у эксперимента жёсткие границы.
Главная ценность браузерной IDE Codename One — не в том, что она заменит IntelliJ, а в том, что стартовый барьер для попробовать Java-фреймворк упал с «вечер на настройку окружения» до «открыл вкладку и нажал Run».
Конфликт: пять минут интереса против часа возни
Знакомая ситуация? Человек наткнулся на фреймворк, захотел попробовать — и упёрся в установку JDK, настройку путей, танцы с Gradle и прочую рутину, которая съедает энтузиазм быстрее, чем код компилируется. К моменту, когда всё заработало, желание что-то писать часто уже пропало.
Codename One взялась решать именно эту задачу. Их новый браузерный IDE — это «очень ранняя, высокоэкспериментальная» версия, как честно предупреждают сами разработчики. Но логика простая: открываете страницу, нажимаете Run — и видите приложение, работающее рядом с исходником. Дальше можно сразу править Java и смотреть, что получилось.
Для тех, кто не сталкивался: Codename One — открытый фреймворк, который позволяет собирать нативные приложения для iOS, Android, десктопа и веба из одной кодовой базы на Java или Kotlin. То есть речь не про «какой-то учебный песочник», а про рабочий инструмент с вполне взрослыми целями.
Что внутри страницы
По сути это Playground — та самая «песочница с настоящим компилятором Java в странице», показанная неделей ранее, — доросшая до полноценного рабочего пространства: дерево проекта, несколько файлов, превью приложения.
При первом открытии загружается стартовый проект GettingStarted. Жмёшь Run в верхней панели — редактор компилирует Java и показывает приложение рядом с кодом. Простейший сценарий «первого знакомства» — заменить стартовый экран счётчиком:
Form hi = new Form("First app", BoxLayout.y());
Label count = new Label("Trips: 0");
Button add = new Button("Add a trip");
int[] trips = {0};
add.addActionListener(event -> count.setText("Trips: " + (++trips[0])));
hi.addAll(count, add);
hi.show();
Нужные классы интерфейса и компоновки уже импортированы, так что остаётся запустить, нажать кнопку и убедиться, что подпись меняется. Весь смысл упражнения — максимально сократить дистанцию между «мне пришла идея» и «я вижу результат».
Ошибки компилятора подсвечиваются прямо по исходнику, есть автодополнение, всплывающие подсказки по API и навигация по коду. Здесь стоит сделать важную поправку к пиар-эффекту: это не полноценный Java Language Server и уж точно не модель рефакторинга из IntelliJ. Codename One сама этого и не утверждает. Для быстрого старта подсветки и подсказок достаточно, для серьёзной разработки — нет.
«Не облачная IDE»: где на самом деле живёт код
Самое интересное в проекте — не интерфейс, а архитектурное решение. Codename One нарочито называет своё детище «Not a Cloud IDE» — «не облачная IDE». И это не маркетинговая поза.
Вся разработка происходит в браузере: редактирование файлов, компиляция для превью и запуск приложения. Файлы проекта лежат в хранилище самого браузера на вашем устройстве. Никакого удалённого рабочего пространства, которое в фоне держит сервер, — нет. Сайт отдаёт редактор и тулчейн, иногда потребуется докачать зависимости, но это не превращает сессию в удалённую машину.
Облачный сборочный сервер Codename One появляется в процессе ровно один раз — когда вы явно запросите облачную сборку. Это отдельная операция: вы передаёте входные данные сборки в существующий сервис. И это, внимание, не резервная копия вашей рабочей копии проекта. Сборка в облаке не бэкапит то, что вы правите.
Ещё один момент, который легко упустить: открытая в браузере IDE не делает весь рабочий процесс офлайновым. Хотите автономность — скачивайте ZIP и работайте локально.
Файлы в браузере — это хрупко
Панель инструментов не пытается обмануть: «Saved only in this browser · No cloud backup» — сохранено только в этом браузере, облачного резервного копирования нет. Воспринимайте это буквально.
Вошли в аккаунт на втором компьютере или переключились на другой профиль браузера — проект туда не переедет. Очистили данные сайта или работали в приватном режиме — можно потерять всё, что нажито непосильным правками. Отсюда простое правило: собираете что-то стоящее — сразу жмите Download ZIP.
Экспорт даёт полноценный проект, который можно продолжить собирать обычными инструментами — Maven или Gradle — уже на десктопе. Для сценария «попробовать и забрать с собой» это работает как надо. Для сценария «неделя работы без бэкапов» — категорически нет.
Где эксперимент заканчивается
Список ограничений стоит прочитать целиком, без диагонали.
IntelliJ это не заменит. Полноценную Java-экосистему, все десктопные инструменты и плагины сборки внутрь JavaScript не засунешь — и в Codename One прямо говорят, что не пытаются. Превью в браузере поддерживает определённый подмножество поведения зависимостей и сборки; проекты вне этого подмножества нужно собирать локально.
Бэкенд-проекты создавать, править и экспортировать можно, но бэкенд-рантайма в браузере нет. Превью полноценного стека сейчас показывает только клиентскую часть. Так что не стоит ждать, что серверная часть приложения запустится прямо во вкладке редактора.
Есть доступ к настройкам, GUI Builder и облачным сборкам, но софт ранний, и это надо держать в голове. И отдельный нюанс для мобильной разработки: успешное превью в браузере — ещё не гарантия, что все API устройства поведут себя так же на реальном телефоне. С ростом проекта целевые платформы придётся проверять на настоящих девайсах.
Зачем это всё
Идея, если честно, хорошая. Первая проба Java-фреймворка не должна стоить человеку полдня конфигурирования. Поправил счётчик, поменял компоновку, скачал проект — и вот у вас уже есть работающая основа, а не пустая папка и выгоревший энтузиазм.
Codename One закрывает этим релизом свою серию еженедельных обновлений. Между демонстрацией полноценного ride-hailing приложения и браузерным рабочим пространством они работают над двумя концами одной задачи: сократить путь человека до той части приложения, которая по-настоящему его собственная. Один эксперимент втягивает новичка в Java через страницу, другой показывает, что на фреймворке можно собрать сложный сервис.
Итог простой. Браузерная IDE от Codename One — не конкурент профессиональным инструментам и не повод удалять локальное окружение. Это витрина с очень быстрым входом: посмотрели, как работает фреймворк, получили живой результат, забрали ZIP и ушли дальше в нормальную разработку. Для инструмента, который позиционирует себя как «экспериментальный превью», это, пожалуй, ровно та цель, которую стоило ставить.