Pull to refresh

Comments 20

Несмотря на то, что используется Си, ООП в программах под GNU/Linux скорее практика, чем исключение. Кроме того использование языков, отличных от Си, противоречит «гедлайнам» RMS для системы GNU.

Кстати, вы вроде напрямую в GtkDrawingArea рисуете? Вроде во всех доках по Gtk рекомендуют переходить на Cairo. Хотя, может оно там и используется, я не особо вчитывался.
*там=в вашей программе
В метод onDraw передается параметром ссылка на Cairo::Context. Рисую далее с помощью него
О, вот он где. Я вроде заглядывал в Canvas.cpp, но не увидел его сразу.
Да. Прошу прощения, я в этой статье не акцентировал внимание на прорисовке. Думаю это тема для другой статьи.
Года 2 назад игрался с GTKMM. Запуск простейшего приложения (одна пустая форма) ощутимо тормозил, в сравнении с чистым GTK. Разница в скорости запуска была чуть ли не 10 секунд. Так и осталось?
Вроде тоже недавно баловался с Gtkmm, но тормозов не видел.
Стоит заметить, что большинство библиотек и приложений в Linux выполнены с использованием функционального подхода.

Мне как-то казалось, что большинство реализовано с помощью процедурного подхода.
В Си нет разницы, процедура или функция. В любом случае, во многих из них есть ООП.
В функциональном и процедурном подходе есть разница. В частности в функциональном нет переменных и циклов. В Си же функция является лишь процедурой, возвращающей значение. Из неё можно сделать чистую функцию при желании, но в общем случае она таковой не является.
Строго говоря, там большинство библиотек и приложений выполнено в объектно-орентированном стиле. Но с использованием процедурного языка «C» :). Просто «классы» и «объекты» выглядят чуть иначе. Если взять биндинги на что-нибудь с родной поддержкой OOP, например Python — то все сразу вщелкивается на свои места и появляются знакомые школьникам «классы», «наследование» и «экземпляры». Но они там и до этого были — просто не в столь явном виде O_O.
Как в GTK+
image

И весёлые методы
gtk_label_set_markup_with_mnemonic 
Тут важен не сам Gtk, а Glib, которую он использует. GObject как раз идет из этой библиотеки.
Да, именно так выглядит ООП на «C». Но он же обычно напрямую не используется, а мапится на что-нибудь более высокоуровневое — Python, Vala итд. Там это все обретает поддержку синтаксиса языка и становится как в учебниках.
У вас жена в школе ещё учится и только начался курс геометрии?
Да нет. Она у меня строитель. И ей такая программа нужна была для своих строительных целей. Правда пока что опробовать ее не успела, так как в декрете сейчас. Но я подумал может кому пригодится такая программа еще.
>Стоит заметить, что большинство библиотек и приложений в Linux выполнены с использованием функционального подхода.

ПРОЦЕДУРНОГО блин! Функциональный подход это совсем другая стезя!
поправил. Раньше думал что функциональный — использование функций (подпрограмм, возвращающих значение), в отличие от процедур — подпрограмм, которые выполняют некий набор комманд, но не возвращают значений
Sign up to leave a comment.

Articles