Несмотря на то, что используется Си, ООП в программах под GNU/Linux скорее практика, чем исключение. Кроме того использование языков, отличных от Си, противоречит «гедлайнам» RMS для системы GNU.
Кстати, вы вроде напрямую в GtkDrawingArea рисуете? Вроде во всех доках по Gtk рекомендуют переходить на Cairo. Хотя, может оно там и используется, я не особо вчитывался.
Года 2 назад игрался с GTKMM. Запуск простейшего приложения (одна пустая форма) ощутимо тормозил, в сравнении с чистым GTK. Разница в скорости запуска была чуть ли не 10 секунд. Так и осталось?
В функциональном и процедурном подходе есть разница. В частности в функциональном нет переменных и циклов. В Си же функция является лишь процедурой, возвращающей значение. Из неё можно сделать чистую функцию при желании, но в общем случае она таковой не является.
Строго говоря, там большинство библиотек и приложений выполнено в объектно-орентированном стиле. Но с использованием процедурного языка «C» :). Просто «классы» и «объекты» выглядят чуть иначе. Если взять биндинги на что-нибудь с родной поддержкой OOP, например Python — то все сразу вщелкивается на свои места и появляются знакомые школьникам «классы», «наследование» и «экземпляры». Но они там и до этого были — просто не в столь явном виде O_O.
Да, именно так выглядит ООП на «C». Но он же обычно напрямую не используется, а мапится на что-нибудь более высокоуровневое — Python, Vala итд. Там это все обретает поддержку синтаксиса языка и становится как в учебниках.
Да нет. Она у меня строитель. И ей такая программа нужна была для своих строительных целей. Правда пока что опробовать ее не успела, так как в декрете сейчас. Но я подумал может кому пригодится такая программа еще.
поправил. Раньше думал что функциональный — использование функций (подпрограмм, возвращающих значение), в отличие от процедур — подпрограмм, которые выполняют некий набор комманд, но не возвращают значений
Пишем приложение на GTK+ используя C++ и GTKMM библиотеку