{"id":20522,"date":"2023-02-02T04:10:44","date_gmt":"2023-02-02T04:10:44","guid":{"rendered":"https:\/\/www.booksofall.com\/pl\/?post_type=product&#038;p=20522"},"modified":"2023-02-03T08:24:31","modified_gmt":"2023-02-03T08:24:31","slug":"the-glib-gtk-development-platform","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/","title":{"rendered":"The GLib\/ GTK Development Platform"},"content":{"rendered":"<h2><b>1.2.1 About Rust<\/b><\/h2>\n<p>Some people recommend <a href=\"https:\/\/www.rust-lang.org\/\">Rust<\/a> for new projects.<\/p>\n<p>But there is a lot of existing <a href=\"https:\/\/en.wikibooks.org\/wiki\/C_Programming\/GObject\">C\/GObject code<\/a>, and it\u2019s not feasible to rewrite everything. So, some people still need to work and learn C\/GObject. And, even for a full rewrite, reading and understanding C\/GObject code is needed to avoid repeating history and past mistakes.<\/p>\n<h2><b>1.3 What is GLib and GTK?\u00a0<\/b><\/h2>\n<p>Roughly speaking, <a href=\"https:\/\/wiki.gnome.org\/Projects\/GLib\">GLib<\/a> is a set of libraries: GLib core, GObject and GIO. Those three libraries are developed in the same Git repository called\u00a0<i>glib<\/i>, so when referring to \u201cGLib\u201d, it can either mean \u201cGLib core\u201d or the broader set including also GObject and GIO.<\/p>\n<p>GLib core provides data structure handling for C (linked lists, trees, hash tables, . . . ), portability wrappers, an event loop, threads, dynamic loading of modules and lots of utility functions.<\/p>\n<p>GObject \u2013 which depends on GLib core \u2013 simplifies the object-oriented pro- gramming and event-driven programming paradigms in C. Event-driven pro- gramming is not only useful for graphical user interfaces (with user events such as key presses and mouse clicks), but also for daemons that respond to hardware changes (a USB stick inserted, a second monitor connected, a printer low on paper), or software that listen to network connections or messages from other processes, and so on.<\/p>\n<p>GIO \u2013 which depends on GLib core and GObject \u2013 provides high-level APIs for input\/output: reading a local file, a remote file, a network stream, inter-process communication with D-Bus, and many more.<\/p>\n<p>The GLib libraries can be used to write operating system services, libraries, command line utilities and such. GLib offers higher-level APIs than the <a href=\"http:\/\/get.posixcertified.ieee.org\/\">POSIX<\/a> standard; it is therefore more comfortable to write a C program with GLib.<\/p>\n<p>GTK is a widget toolkit based on GLib that can be used to develop applications with a <a href=\"https:\/\/docs.worldviz.com\/vizard\/latest\/GUI_elements.htm\">graphical user interface (GUI)<\/a>. A \u201cwidget\u201d is a GUI element, for example a button, some text, a menu, etc. And there are some special kinds of widgets that are called \u201ccontainers\u201d, which can contain other widgets, to assemble the elements in a window. <a href=\"https:\/\/www.gtk.org\/\">GTK<\/a> provides a broad range of widgets and containers.<\/p>\n<p>The first version of GTK, or the GIMP Tool Kit5, was mainly written by Peter Mattis in 1996 for the <a href=\"https:\/\/www.gimp.org\/\">GIMP<\/a> (GNU Image Manipulation Program), but has quickly become a general-purpose library. The \u201c+\u201d has been added later to distinguish between the original version and a new version that added object oriented features. GLib started as part of GTK, but is now a standalone library.<\/p>\n<p>The GLib and GTK APIs are documented with GTK-Doc. Special comments are written in the source code, and GTK-Doc extracts those comments to generate HTML pages.<\/p>\n<p>Although GLib and GTK are written in C, language bindings are available for JavaScript, Python, Perl and many other programming languages. At the beginning, manual bindings were created, which needed to be updated each time the API of the library changed. Nowadays the language bindings are generic and are thus automatically updated when, for example, new functions are added. This is thanks to GObject Introspection. Special annotations are added to the GTK-Doc comments, to expose more information than what the C syntax can provide, for example about ownership transfer of dynamically-allocated content6. Any C library with GObject Introspection support is thus available from many programming languages. In addition, the annotations are also useful to the C programmer because it\u2019s a good and succint way to document certain recurrent API aspects.<\/p>\n<p>GLib and GTK are part of the GNU Project, whose overall goal is developing a free operating system (named GNU) plus applications to go with it. GNU stands for \u201cGNU\u2019s Not Unix\u201d, a humorous way of saying that the GNU operating system is Unix-compatible. You can learn more about GNU at <a href=\"https:\/\/www.gnu.org.\">https:\/\/www.gnu.org.<\/a><\/p>\n<p>The GLib\/GTK web site is: <a href=\"http:\/\/www.gtk.org\">http:\/\/www.gtk.org<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe style=\"width: 100%; height: 750px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/the-glib--gtk-development-platform-18scu57fve?p=1\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"featured_media":20525,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!"},"product_brand":[],"product_cat":[298,258],"product_tag":[],"class_list":{"0":"post-20522","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-graphical-user-interfaces","7":"product_cat-subjects","9":"first","10":"instock","11":"shipping-taxable","12":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The GLib\/ GTK Development Platform - BooksOfAll Polish<\/title>\n<meta name=\"description\" content=\"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The GLib\/ GTK Development Platform - BooksOfAll Polish\" \/>\n<meta property=\"og:description\" content=\"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll Polish\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-03T08:24:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/\",\"url\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/\",\"name\":\"The GLib\/ GTK Development Platform - BooksOfAll Polish\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg\",\"datePublished\":\"2023-02-02T04:10:44+00:00\",\"dateModified\":\"2023-02-03T08:24:31+00:00\",\"description\":\"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg\",\"width\":\"827\",\"height\":\"1169\",\"caption\":\"The GLib\/ GTK Development Platform\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/pl\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The GLib\/ GTK Development Platform\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#website\",\"url\":\"https:\/\/www.booksofall.com\/pl\/\",\"name\":\"BooksOfAll Polish\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#organization\",\"name\":\"BooksOfAll Polish\",\"url\":\"https:\/\/www.booksofall.com\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll Polish\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The GLib\/ GTK Development Platform - BooksOfAll Polish","description":"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/","og_locale":"pl_PL","og_type":"article","og_title":"The GLib\/ GTK Development Platform - BooksOfAll Polish","og_description":"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!","og_url":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/","og_site_name":"BooksOfAll Polish","article_modified_time":"2023-02-03T08:24:31+00:00","og_image":[{"url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg","twitter_misc":{"Szacowany czas czytania":"3 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/","url":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/","name":"The GLib\/ GTK Development Platform - BooksOfAll Polish","isPartOf":{"@id":"https:\/\/www.booksofall.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg","datePublished":"2023-02-02T04:10:44+00:00","dateModified":"2023-02-03T08:24:31+00:00","description":"Do you know what C\/GObject codes are? Learning them can help us to have better work when developing codes. Find out now in this guide!","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#primaryimage","url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg","contentUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/02\/The-GLib-GTK-Development-Platform.jpg","width":"827","height":"1169","caption":"The GLib\/ GTK Development Platform"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/pl\/the-glib-gtk-development-platform\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/pl\/categories\/"},{"@type":"ListItem","position":3,"name":"The GLib\/ GTK Development Platform"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/pl\/#website","url":"https:\/\/www.booksofall.com\/pl\/","name":"BooksOfAll Polish","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/pl\/#organization","name":"BooksOfAll Polish","url":"https:\/\/www.booksofall.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll Polish"},"image":{"@id":"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product\/20522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/media\/20525"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/media?parent=20522"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_brand?post=20522"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_cat?post=20522"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_tag?post=20522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}