Re: [gnome-love] Absolute Gnome beginner



On Sat, May 19, 2012 at 10:00 AM, Anthony Scaife
<sideshowanthony googlemail com> wrote:
Gnome
Just what is it? Libraries for the desktop, rendering windows, buttons,
dialogs?
Is Gnome a current, and upcoming thing?

Gnome is nothing short of the best desktop environment around!

Development community
I don't really understand how Linux software gets developed within a
disparate community.

Typically we use mailing lists to communicate our work with each
other, and to discuss bugs and request features.

C++
Is Gnome a library of compiled code (eg a file open dialog) that I can
'hook' into using C++.
Is C++ a preferred language? I might look into Python too.

I'm not sure if anybody can claim that one language is 'preferred'
over another, however I personally prefer Python quite a bit. It's a
very simple language that lets you get work done quickly with a
minimum of fuss.

Gnome is natively written in C, so if you want to hack on Gnome
without using any language bindings, then C could be called the
'preferred' language. However the new gobject-introspection technology
really levels the playing field with respect to the quality of the
language bindings. It makes all languages "first class" and there's
really vanishingly little you can't accomplish in any language for
which introspection exists.

I've also heard a lot of good things about Vala, which is supposed to
be very C-like in it's syntax, but without all that messy, low level
memory management stuff, so that could be a nice middle ground where
you get to have nice high-level language features like Python, but not
have to learn much new syntax from what you'd be used to with C++.

Here is a list of programming languages that have
gobject-introspection bindings, which theoretically means that any of
them could be used to write excellent GNOME apps:

https://live.gnome.org/GObjectIntrospection/Users

Where can I get started
Where can I see a 'Hello World' example, and the remaining docs.

Well, the documentation is kind of weak right now, because the vast
majority of it hasn't been updated to the new language bindings. You
really have to be careful not to accidentally start copying examples
from an outdated tutorial that is showing you the old way of doing
things. If you're following a tutorial and it mentions 'pygtk', or you
see the tutorial doing something like 'import gtk', just stop reading
right there, it's only going to waste your time. If you choose to use
Python, make sure all the documentation you read starts with 'from
gi.repository import Gtk' and then refers to Gtk with a capital G, and
that's how you'll know you're reading up-to-date information.

I can't think of any simple tutorials off the top of my head, and a
lot of the time I find myself referring to the C documentation and
then just translating it into Python in my head. If you really want to
dive into rapid application development though, you should research
Glade. This is a tool that will allow you to graphically construct
what your application looks like, and then once you've done that, it's
quite straightforward to hook into it from your language of choice and
bring it to life.

I might modestly recommend you skim the source code of my own
application, which is a smallish-to-medium sized desktop application
for GNOME, written in Python, that tries really hard to use all the
latest technologies and follow best practices:

https://github.com/robru/gottengeography

-- 
http://exolucere.ca



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]