Много сталкивался с разными гуями. Конкретно на jav'e в основном используют awt\swing . Софта десктопного немало есть, тот же openoffice.
Конкретно JavaFX для написания софта годится тоже очень хорошо но еще лучше для написания гибридного софта(этакое веб приложение с нативным функционалом, в пример тот же стим). Т.е. используются javafx формы совместно с webview. При этом отображается некий кусок страницы к примеру чат\список игр и прямо в коде страницы впендюрины кнопки которые дергают нативный функционал уже не веба а конкретно этой машины(игру там запустить или добавить игру во вкладку формы где список игр и т.д.). Поэтому Java и JavaFX вполне себе заслуживают место под солнцем но надо понимать что для каждой задачи больше подходит совй язык. Если вы хотите писать игру то тут однозначно с++\mono , если же софтина будет корпоративного уровня и важна масштабируемость и расширяемость то java\c#, если что то для себя или просто забавы ради то выбор не принципиален вообще.