The folk at Packt Publishing sent me an e-copy of GNOME 3 Application Development Beginners Guide a month or so ago.
I’ve been putting off this review because I don’t think this is an very good book and it’s hard to write bad reviews.
The book does not seem to use GTK+ best practice, like using
Gtk.Application and not using
c_new constructor. It is full of things like use of Vala’s
[CCode] pragma, but I don’t see why. I felt important and powerful facilities in GLib like properties were not properly explained, especially property binding. There was also a lack of understanding, for example, referring to Timeout objects, which don’t exist (the structure you’re looking for is a Source).
I do like that it uses Anjuta. It’s a shame that it requires unexplained hacks to get things building.
The Clutter section was very poor. Comparing Clutter to GTK+ is simply not reasonable. Clutter is a scene graph API, which doesn’t really have a comparison in the GTK+ stack, which goes from drawing layer to widget layer with no intermediate layer. I immediately noticed the Clutter examples hardcoded layout instead of using a layout manager.
The multimedia section had the user installing non-free codecs. Then it uses
alsasink and not
auto*sink. It spends a lot of time setting up GStreamer pipelines, rather than using
playbin, maybe this improves understanding, but I think it mostly will lead to the creation of very rigid apps.
I stopped reading and started skimming at this point. I did again notice weird things like creating JSON using
append methods and not the handy JSON-GLib. The examples of HTML5 applications with WebKit perhaps would explain why Seed, except the wrapper is written in Vala, so there’s no problem of conflicting JS engines (I think it works fine anyway, right?). Similarly the application accesses applications by looking in
/usr/share/applications rather than libgnome-menus. Again, this will lead to very rigid apps that don’t work very well and doesn’t teach beginners the best practice for GNOME development.
There’s stuff that’s just weird, the system requirements are significantly more powerful than my last computer, on which I was doing GNOME development just fine. There is discussion of how to switch to GNOME Shell, as if it’s required, whereas you can develop GNOME apps in Unity and XFCE just fine.
The typesetting of the book is poor. The source code is weirdly indented and I feel like it lacked readability (there’s great syntax highlighting available for printed text). There are grammatical mistakes that really should have been picked up in editing. The screenshots are blurry in the PDF (looks like some kind of busted bilinear filtering?). Also I can see the resize indicator on the mouse. Generally these serve to make the book look unprofessional.
Finally I don’t think the book really leads the new developer into the community as the best source to get help, which they will undoubtedly need. Of course, the community has already produced some excellent tutorials, which I think new developers would be much better off with.
All up I’m giving it 1 star.
GNOME 3 Application Development: Beginner’s Guide: ★☆☆☆☆
9 thoughts on “Review: GNOME 3 Application Development: Beginner’s Guide”
Danielle, the screenshots were also blurry in my print copy.
@mdhill: super disappointing!
Contrary to your opening remark, I think you wrote this review very well. It was short, informative and to the point. On top of this you gave specific examples of what was wrong. Thanks for posting!
I am sad to read your review, Danielle. I was asked by Packt to act as a technical reviewer in an early stage of the book editing, to which I enthusiastically agreed. After reviewing only one chapter, my disappointment was such that I suggested Packt that the book needed major work to reach publishing quality and that, since I didn’t see that happening considering the tight schedules, I decided to quit the review process altogether.
I was somehow expecting the publishers to take my feedback into account and that together with the authors they would work in improving the book considerably before publishing, but apparently this was not the case. What really saddens me is that this was lost opportunity to have a great book on GNOME 3 development, something that would have been awesome for the community.
I was one of the reviewers of the book and I alerted for many of the problems you have mentioned in your review. I even asked to be given a final draft of the book before they associated my name with it and in the end they didn’t respect my request. I haven’t received yet a copy of the book but I believe your review because, as I mentioned, I found those problems from the beginning.
I will write a post on my blog soon to explain why I have my name in the book…
@Joaquim: I was surprised to see your name attached. Sounds like a rush to market lead to them ignoring technical review.
It looks like your review has confirmed my suspicions. Aside from scrounging up information from various GTK documentation, do you know of any alternative ‘beginner’s guides’ that would give someone a comprehensive view of GNOME development? I think this kind of literature is very scarce, especially considering libgd and GTK are in flux, lately. I just don’t feel very confident with my ability to get involved when there’s no clear way to get started.
I haven’t read the book. I don’t condone what the publisher did. I am in no way associated with the publisher.
I think we need to be positive about the fact that there is a GNOME3 development book out there, published. It may be bad, but I’d take a bad book of documentation over no documentation, any day of the week.
I guess it is sad that it feel short, however.
Just my two cents.
Comments are closed.