Это действительно несколько субъективный вопрос, поэтому нет лучшего или правильного ответа на него. Следующее основано на моем (ограниченном) опыте:
Мне лично нравится wxWidgets с PLT Scheme для написания простых, но гибких графических интерфейсов. Существуют гораздо более продвинутые наборы инструментов, но мне обычно не нужны их возможности. wxWidgets является гибким, и интерфейс Scheme следует традициям Scheme - быть мощным с относительно простой структурой. Мне нравится тот факт, что wxWidgets является переносимым и все же пытается не рисовать свои собственные виджеты, но может использовать нативные или общие наборы инструментов среды, в которой он используется. Он написан на C ++, но я никогда не использовал его интерфейс C ++.
Это не значит, что, на мой взгляд, Scheme, как правило, является оптимальным языком для написания вашего приложения. На самом деле существует множество видов приложений, которые я бы не писал в Scheme, даже если мне нравится этот язык. Но что касается части программирования GUI, она мне нравится из-за ее прямоты и способа, которым функциональный язык, такой как Scheme, хорошо сочетается с программированием GUI декларативного стиля.
Конечно, вы не будете иметь такой же уровень контроля при использовании, как при вовлечении вашей программы на каждом этапе построения окна и реакции ввода, используя цикл обработки событий (например, с Win32API или Xt / Intrinsics). Но это не всегда удобно и часто не нужно, и, кажется, становится все более распространенным.
Примечание: Инструментарий wxWindows был переименован в wxWidgets , но моя установка довольно свежей версии PLT Scheme по-прежнему идет с более старой версией wxWindows. Я не уверен, доступен ли обновленный пакет wxWidgets или он будет включен в будущую версию схемы PLT.