Из недавнего выпуска дайджеста Java Annotated Monthly от JetBrains я узнал о сайте https://awesome-java-ui.com/ — каталоге инструментов для построения UI на Java. Знаю, звучит как дичь (что там каталогизировать-то?), и многие думают, что Java давно и безнадёжно утратила свои позиции в этой сфере. Но как будто бы нет... 🤔
И дело отнюдь не только в JavaFX. За последние годы появилось и продолжает развиваться немало новых инструментов, покрывающих как десктопный интерфейс, так и веб, и мобильный, и конечно же терминальный. Многие из них сделаны по лекалам успешных инструментов из других языков, а некоторые развиваются самостийно. Вот несколько фреймворков, зацепивших моё внимание:
• Asciitable — библиотечка для вывода таблиц в текстовом виде. У нас в AggreGate таблицы — это основная единица данных, но при отладке часто не хватает средств для их удобной визуализации, например, в дебаггере;
• Casciian — от одного только скриншота сразу захлёстывает волна ностальгии, ведь это же вылитый Borland Turbo Vision из 90-ых годов, но только воссозданный на современной кодовой базе, да ещё с кучей модерновых фич. Не знаю, насколько удобен в использовании, но выглядит очень интересно;
• j2html — билдер HTML на Java; позволяет строить несложную разметку страниц через статически типизированный DSL на Java; используется, в том числе в самом сайте каталога;
• TamboUI — мощный фреймворк для создания богатых терминальных интерфейсов с возможностью стилизации через CSS (да, оказывается, можно и так);
• Wicket — когда в 2011-ом году я пришёл команду интернет-банка, построенного на этом фреймворке, слово "Wicket" было своего рода ругательством, синонимом слова "legacy", обозначающем нечто неудачное, безнадёжно устаревшее, но вынужденно используемое по сей день. Через пару лет мы всё же ушли с него на другой фреймворк. С тех пор я неоднократно встречал упоминания Wicket'а в действующих проектах, а сейчас виже в этом каталоге как активно развивающийся. Выходит, не всё так однозначно 🧐
У меня нет иллюзий о том, что Java в ближайшем будущем сможет потеснить, например, Electron для построения богатого и гибкого UI. Однако всё же отрадно видеть, что в Java есть и развиваются пусть не такие крутые, но всё же удобные и доступные инструменты, с которыми можно строить UI, например, для собственных вспомогательных разработок или прототипов коммерческих приложений. Ведь такие возможности как раз и отличают взрослую, могучую экосистему от "просто языка программирования", не так ли? 😉
Post #363
507