Почему, в чем сложность создания GUI приложений на языке Си?
Почему на Си нет готовых решений по созданию программ с окнами? Почему это такая редкость, создавать приложения с окнами на Си? Вроде-бы мощный язык...
в чём мощь этого языка? вы эту мощь проверяли или дальше журнальных сплетней дело не двинулось?
Си это все-таки нишевый ЯП, он применяется в основном для системного программирования и разработки высокопроизводительных модулей (которые используются более медленным кодом). То есть, используется он там, где приоритетны его основные преимущества: малый расход ресурсов, простая надежность, и бешеная производительность.
А окошки, суть чистая прикладнуха - там совершенно другие приоритеты... и как следствие, другие инструменты: медленные высокоуровневые языки, жирные GUI-библиотеки, но зато быстрая разработка (для нее даже термин специальный есть, формошлепство). Окошкам не нужно быть легкими и ультраскоростными, поэтому нет смысла корячиться над ними в низкоуровневых языках.
1 - В C нет встроенных средств. Идеология языка это не предусматривает.
Всё дано на "откуп" сторонним библиотеками и взаимодействию с API ОС/аппаратной частью. Соотв. вопрос ещё на сколько удобно программисту API ;)
2 - На MSDN полно примеров на C++ которые в большинстве случаев без проблем адаптируются на C. А то и вообще практически без изменений. Если речь про Windows.
3 - Под Linux системы полно примеров работы с тем-же GTK н-р. Весь мануал в примерах на C.
https://developer.gnome.org/gtk3/stable/gtk-getting-started.html
По ссылке пример типичного оконного приложения на GTK.
Да код получается муторный, на интерфейс и разработку уходит приличное время.
Частично помогают визуальные редакторы (в т. ч. ресурсов. под Windows)
Да на нем что угодно сложнее хелловорлда создавать сложно.
Кроме GUI там еще нету bool, нету нормальных строк, нету ООП, нету контейнеров, нету ссылок... Это я сейчас перечислил все то, что есть в С++ (на C++ можно иной проект целиком написать чуть ли не без единого ручного аллока памяти, указателя, char* и прочей дряни)
А ведь для GUI даже C++ используется редко и даже применение С++ все-таки больше для того, что описал в первом абзаце Ярослав. Хотя еще раз отмечу, что современный C++ все то же самое позволяет делать с гораздо бОльшим комфортом, сравнимым с высокоуровневыми ЯП.
Потому что очень сложно делать всю эту оконную хренотень без классов. С тем же успехом можно на ассемблере окошки лепить.