Лет семь назад стало понятно, что веб для разработки приложений не взлетел, а удобных нативных фреймворков не было — так появился Electron, а на роль главного десктопого языка был назначен JavaScript. Разрабатывать десктоп-приложения на JVM было бы даже лучше и проще, но JVM тогда было нечего предложить в смысле фреймворков. _Нормальных_ фреймворков.
В JetBrains мы потихоньку решаем эту проблему. Для графики сейчас у нас есть Skija — порт Skia для JVM. Для UI делаем Compose for Desktop. А вот для управления окнами пока нет ничего.
Самый большой наш друг сейчас — AWT. Его плюсы — он работает везде, предоставляя базовый функционал, и мы даже как-то научились с ним жить (форкнув JDK, ни много ни мало). Минусы — очень уж он морально устарел, а многие архитектурные проблемы в нем решаются не очень изящно.
Задумка нашего проекта простая: посмотреть, насколько сложно создать новую, современную, легкую, простую в использовании и нативную для JVM библиотеку для создания и управления окнами под все платформы. Что-то вроде Электрона, только без монструозного Chrome внутри.
Примерный scope:
На перспективу (если успеем):
Потенциальные заказчики:
По любым вопросам пишите @nikitonsky и @zs3ky
Мы ищем студентов, готовых замарать свои руки в C++, ObjC, Swift, Win32, Cocoa, X11, Wayland и немножечко в JNI и разобраться, как работают десктоп-приложения на самом глубоком уровне. Основные качества: желание разбираться, как оно на самом деле работает, и желание делать нормально.
Легко, наверное, не будет, но если получится это провернуть — такая библиотека нужна всем. Без преувеличений.