On Tue, Sep 16, 2014 at 03:16:26PM +0100, Emmanuele Bassi wrote:
> it's also very much C-centered, whereas we want more people to use C
> only for core library components.

A good practice for writing an application is to write the backend as an
internal library, so it can easily be used later by other applications.
And keeping the backend separated from the frontend is also a good idea.

If you write all your application in JavaScript or Python, one day
you'll maybe want to make your code reusable for other projects, and
it'll be more complicated, a rewrite of the backend in C is necessary.

If you write all your code in C, but if it's not 100% reusable, some
code refactoring is needed, but hopefully not a complete rewrite. You
can write the backend in C and the front-end in Vala if you want. But in
my personal opinion, using a static-typed language like C or Vala, with
a very good toolchain like for C, your code will be more maintainable,
refactoring is far more easier and safer (compilation errors will tell
you where a function was not renamed correctly for example). With a
dynamic language like Python or JavaScript, a lot of unit tests are
needed to at least have some errors if there is a typo in a function
name. (Unit tests are also written for C code.) For the UI code, unit
tests are almost never written, and it's not a high priority for an
application IMHO (dogfooding is sufficient).

> > - Improving the developer experience. Christian Hergert is working on
> >   Builder and he will soon start a fundraising campaign. This is an
> > actionable item.
> >
> > - Writing a book, another actionable item.
> 
> great; can you own the last part?

I've written a small document, with lots of links:
https://wiki.gnome.org/S%C3%A9bastienWilmet/DevGettingStarted

GObject has already some sections in the API documentation that could be
improved and integrated in a book: the sections Concepts, Tutorial and
Related Tools. Since it is integarted in the glib git repository,
hopefully it is updated when needed.

But first a tutorial for GLib could be written and integrated into the
git repo, and the same for the important GIO classes. GTK+ has already a
tutorial.

Then a book can glue the chapters together, with an introduction,
conclusion, further reading, how to organize the source tree, Autotools,
etc. The book would be available on gnome.org under a free license, and
every few years a printed version could be available.

Of course the GLib introduction should target beginners.

But I'm not the right person to write on more advanced topics like
writing a custom widget, with GDK, Cairo, etc. I don't have lots of
experience in these areas.

I'll think about it, and talk with Christian Hergert. He is interested
to write integrated tutorials in Builder, with an accompanying book (it
was discussed on engagement-list), but Christian is already busy working
on Builder.

> that's, I guess, why there's only one book about Python, or one book
> about, MySQL, or one book about C++, or one book about *any*
> technology.

:-) Having one good and recent book on GLib/GTK+ would be better than 0
though. If there are 10 good C++ books, it's a sign that there is a
large community. And having 3 good GTK+ books would also be better than
0.

> now, I'm not overly sold on the entire issue, here; people use Stack
> Overflow, and people can use Google. whenever developers have a
> problem, they'll use everything they can to solve it, wherever it is.

Google returns outdated and not-so-good random tutorials found on the
web.

--
Sébastien
_______________________________________________
foundation-list mailing list
foundation-list@gnome.org
https://mail.gnome.org/mailman/listinfo/foundation-list

Reply via email to