Random people Random location Random misc

Writing really rad GTK and GNOME applications ... in C, Python, or Java!

How to write GTK/GNOME applications in C, Python, or Java!

GNOME is the best desktop on the planet, so everyone wants to write applications for it!

Writing GTK programs to work on Linux and other Unix operating systems is actually much easier than common perception would have you believe. The basic concepts involved are fairly straight forward, but the GNOME universe is an extensive one and figuring out where to start can be a bit daunting.

Actually what's involved is:

* Having a development environment and getting all the necessary prerequisite pieces installed
* Knowing how GUI programs work
* Figuring out a way to build the code you've written
* Learning how to test and debug your software

So we'll go through all this with our audience. Somewhat unexpectedly, we will cover *three* different programming environments. We will show how its done in C because that's what so many of the existing GNOME programs are written in. The whole problem with C, however is that GNOME programs written in it are verbose and arcane, and without prior Glib/GTK/GNOME programming experience very difficult to debug. The good news is you don't have to work in C if you don't want to. So as a contrast, we'll also present GTK in two other languages: Python and Java.

People justifiably laud Python for the ability to rapidly prototype and implement programs. The same extends into writing GUI programs. Once they understand the underlying GTK concepts, anyone with a basic understanding of Python can quickly have a GUI interface to their script or application.

At the other end of the spectrum is Java. Until now the free desktop world hasn't had too much to do with Java, but huge numbers of computer professionals have experience in Java and they too can do rapid application development of GTK and GNOME applications if they wish. There are powerful tools for writing and debugging applications available; even hard nosed experienced hackers will be surprised to see the impressive level of productivity that can arise when these are brought to bear - and the result are fast, tight applications that are "native" GNOME programs, not some lookalike.

GNOME is about more than just writing software. It's about writing _rocking_ software that is:

* highly intuitive and has a well thought out interface focused on usabilty,
* follows a consistent style so it meshes well with other GNOME applications,
* is able to be translated so that people all over the world can use it, and most importantly,
* has that irresistible bling factor that makes all your friends jealous.

Without overwhelming our audience, we'll give a basic overview of what's involved in each of these. We'll quickly run through the landscape of GNOME libraries (just so we can get people focused on the few that will be immediately important), Finally, throughout the tutorial we'll demo lots of examples and to plenty of hands on coding right there.

The tutorial will also be of interest for those who attended last year; while we will certainly be covering the same basics, we will also discuss examples of how to work with the more powerful GNOME libraries that enable desktop integration and the rich user experience that has come to define the modern free desktop.

This tutorial will _not_ try to cover everything, but rather *will* give people a solid head start down the road of making their own amazing contributions to GNOME.

This will be a tutorial given *jointly* by Andrew Cowie and Davyd Madeley.

Project: GTK and GNOME 


Andrew Cowie

Somewhat unusually for a free software hacker, Andrew Cowie was an infantry officer in the Canadian army, having graduated from Royal Military College with a degree in engineering physics. He saw service across North America and a peacekeeping tour in Bosnia. He later ran operations for an new media company in Manhattan and was a part of recovering the firm after the Sept 11 attacks. Now based in Sydney, Andrew runs Operational Dynamics, a consultancy works with clients worldwide in crisis resolution, change management, robust architectures, and leveraging open source to achieve these ends.On the technical side, Andrew has extensive experience as a Unix/Linux sysadmin, Java developer, and has long been an Open Source advocate. Most recently, he has been contributing to the GNOME project by authoring the java-gnome bindings allowing you to write GTK programs from Java.

Andrew Cowie

Somewhat unusually for a free software hacker, Andrew Cowie was an infantry officer in the Canadian army, having graduated from Royal Military College with a degree in engineering physics. He saw service across North America and a peacekeeping tour in Bosnia. He later ran operations for an new media company in Manhattan and was a part of recovering the firm after the Sept 11 attacks. Now based in Sydney, Andrew runs Operational Dynamics, a consultancy works with clients worldwide in crisis resolution, change management, robust architectures, and leveraging open source to achieve these ends.On the technical side, Andrew has extensive experience as a Unix/Linux sysadmin, Java developer, and has long been an Open Source advocate. Most recently, he has been contributing to the GNOME project by authoring the java-gnome bindings allowing you to write GTK programs from Java.

Davyd Madeley

Davyd has been involved with the GNOME project for many years. Quite a few of those years as the maintainer of GNOME Applets, the little widgets that sit on your panel. Davyd graduated from the University of Western Australia with bachelors degrees in electronic engineering and computer science. He now works for Fugro Seismic Imaging, a geoscientific consulting company based in Perth, writing GTK+ applications on top of the GNOME Desktop for seismic processing. Davyd has presented a number of GTK+ development primers and written several articles on developing software using GTK+ for GNOME Journal. Besides GNOME, Davyd's interests include electronics, machine learning, sustainable engineering, jazz and playing the tenor saxophone.

Davyd Madeley

Davyd has been involved with the GNOME project for many years. Quite a few of those years as the maintainer of GNOME Applets, the little widgets that sit on your panel. Davyd graduated from the University of Western Australia with bachelors degrees in electronic engineering and computer science. He now works for Fugro Seismic Imaging, a geoscientific consulting company based in Perth, writing GTK+ applications on top of the GNOME Desktop for seismic processing. Davyd has presented a number of GTK+ development primers and written several articles on developing software using GTK+ for GNOME Journal. Besides GNOME, Davyd's interests include electronics, machine learning, sustainable engineering, jazz and playing the tenor saxophone.

© 2007 MEL8OURNE LCA2008 and Linux Australia | Linux is a registered trademark of Linus Torvalds | Site map | Valid XHTML 1.0

rja