on January 21, 2002
There are an infinite number of ways to skin any given cat, and when covering a new RAD environment, which one you use depends almost entirely on who your target audience is. Jon Shemitz has written his book for the experienced programmer coming to Kylix from other RAD environments on platforms other than Linux/X. This, I feel, is the source of Kylix's user base: Not the casehardened command-line Unix-lifer gcc guys, but people who have been using Delphi, Visual Basic, or Visual C++ under Windows.
For people like that, it's a natural. Jon begins with a "Hello Kylix!" project to let people get their bearings within the Kylix idea, and then systematically explores the programming language (object Pascal), the environment and toolset (Kylix itself) and finally the underlying platform (Linux, Qt, and X.) People who already have their Unix scar tissue can skip the Linux section, but Windows expatriates will be glad it's there. The coverage of Object Pascal skims the simple stuff and emphasizes the subtleties that most books gloss over: inheritance, properties, class references, and the rest of the OOP machinery that far fewer people understand than claim to. (For that part of it, I recommend this book even to people who are sticking with Delphi under Windows!) The Kylix coverage, again, goes for depth: The section on threads is clearer than anything else I've read on that topic. The Unix material is well-chosen, and I learned far more about Qt from this book than I did from the Qt doc.
The overall quality of the book is very high. The writing is superb, and the screen shots are well-chosen and clearly reproduced. Scattered throughout the text are "Kylix is not Delphi!" tips, which people coming to Kylix from Delphi had better read. The text is set in smaller type than many "fat books" on programming, so I would guess this 950-page book represents about 1100 pages using conventional layouts. No fluff, good example code, fine index. Finally, APress has at last dropped the CD stuck into the back page. The example code may be downloaded in tarball form from the publisher Web site.
My recommendation? No matter how many Kylix books you end up buying, buy this one first. Then go for the specialty texts like Eric Harmon's Delphi/Kylix Database Development.
on October 8, 2002
When I received this book, I was impressed by the fact that it contained 943 pages on Kylix - without covering any database or internet development. Now that I finished the book, I'm even more impressed. Not by what's not in the book, but by what's actually covered in the book.
Somehow, the book reminds me of the years I spent at the University of Amsterdam (back in 1983), and first learned to work with UNIX and Minix.
I'm not sure why. Maybe the fonts, maybe the quality. But one thing is for sure, like the cover said: this is not a Delphi book 'ported' to Kylix. This
is a true Kylix/Linux Development book, and as such, I'm sure every Delphi developer can learn something from it.
The book consists of four sections, and a number of appendices. The first section contains about 250 pages about Object Pascal. But before we
start the first section, there's chapter 0: Hello Kylix, in which the author explains why Kylix is great, and what this book will offer (and what not -
so you'll know right away). It also explains where to download the sample code, and then continues with a first hands-on getting started tour in
The first real section of the book consists of four chapters (252 pages) and is about Object Pascal. From data types and datastructures to program
syntax and structure. As a Delphi developer, it was the 'least interesting' section of the book to read, although I would still recommend browsing
through the pages, since there are numerous tips or footnotes that are worthwhile to read (as the back cover says: "even long-time Delphi
programmers will find some surprising details here", such as the part on libraries and dynamic linking). In fact, it reminded me of the excellent Pascal
textbooks I read during my study (mentioned before), and I can recommended it to anyone who wants to learn Object Pascal.
The second section of the book extends the 'simple' Object Pascal languages and moves on to Kylix - the RAD Development environment on Linux.
In five chapters, we'll learn how to use Kylix (the IDE, designing, debugging), and the components that can be used with Kylix. When I say
components, the author has split them in a few different chapters. First, we get the Visual Objects (VisualCLX components on top of Qt), followed
by a chapter about Foundation Objects (the non-visual components and support classes such as collections and streams, as well as threads), and
finally library routines (only the most important ones, like Strings, Dates, Maths, etc.), and component building in Kylix. Although - like I mentioned
before - this is not a Kylix 'port' of a Delphi book, the author does place 'cautions' and notes in the chapter to highlight some of the differences
between Delphi and Kylix that are important to Delphi developers. The repeated reminder in the border that keeps telling us that "Kylix is not Delphi"
grows a bit tiresome after a while, but the notes themselves are good points.
The third section of the book is about Linux - for Windows developers, and using Kylix. It covers Linux and Linux programming from a Windows
programmer's perspective, explaining the differences, and showing what to do (and how to do it differently) under Linux. Subsections include files,
memory, processes, regular expressions and scripts (this brought back some fond memories when I first used UNIX almost two decades ago). The
final chapter in this section introduces X and Qt (we've seen Qt before in the previous section). It's only a short chapter, which is good, since I
consider this only background information (to give an architectural overview of X and Qt). VisualCLX is build on top of Qt (and X) and in theory you
should seldom have to sink down to the API level.
The fourth section of the book is about entire projects, and contains two chapters: one about a visual find utility (imitating Windows' Find Files),
and a chapter on Mandelbrot 4 (I wasn't too interested in this, but the results look very nice).
Fortunately, the book wasn't finished after this last chapter, since we still have a number of interesting appendices. Covering topics such as "Kylix
for Visual Basic programmers" (there may be more than you think), "Kylix for Delphi programmers" (a bit late if you read the entire book already, but
it gives a short summary of the most important changes and gotchas, including references to chapters that cover these in more detail). So Delphi
developers may want to start reading the book with Appendix II. Other appendices cover topics like Optimization and a BASM quick reference,
although these two are too short to be of real use I'm afraid. Appendix V on Deployment is a whole lot better, especially since this is indeed an ever
returning Kylix developer's FAQ. Well written, and helpful for deployment on systems that don't have Kylix installed.
Apart from the regular text, the book contains numerous little "notes" that contain tips, background information or just useful techniques worthy to
highlight. The index seems complete, but could use a smaller font to get a better overview. Syntax highlighting is used in source code listings,
which I always consider to be very helpful. Unfortunately, on a few places it was missing or inconsistent (just as I sometimes didn't agree with the
source code indentation and layout, but these are personal feelings of course).
Back in the beginning of the book, in Chapter 0, the author explains that he wants to write a 'classic' book. The book that a bookstore would carry
if it had only one Kylix book. I'm not sure if this book is the classic Kylix book (not without database or internet coverage), but it sure is a great
book to learn Kylix as well as Linux - for everybody!
And when it comes to the missing sections (on database and internet): I can also recommend Delphi/Kylix Database Development by Eric Harmon, as well as the Kylix Developer's Guide (for which I wrote the web development chapters).
on June 12, 2002
Well done, Jon Shemitz. Two things jump out from this book: first, lots of text and virtually no screen shots. That means a LOT of very erudite content. Second, brilliant organisation. It's not a feature of many Delphi/Kylix books, even the worthy ones, and it is manna when it droppeth.
The book touts itself as "a comprehensive guide for developers wishing to make quick inroads into developing native applications for the Linux platform". Comprehensive it is, but this is no quickie how-to. This author goes the extra yards and provides good, lucid explanations for why a certain thing is as it is. It reflects excellent research, meticulous QA and the trait of the true teacher, to share what he knows. As a result, I'm finding topics in this this book that have eluded me for years of Delphi work - being absent from the popular titles, the Borland help and the Borland knowledgebase.
When (not if!) you buy this book, pay attention to the Notes panels and the footnotes. Shemitz (or his editor) has been very tight about delivering the story. His post-its and those vital snippets of experiential background are not buried in the main story but are distilled out expertly and consistently into these two reader aid devices. The plot stays right on target and those tricky bits are just where you want them, without having to dive off to a cross-reference.
Because I live in a remote area, I have to buy books "sight unseen". Hence, my tech library is a "lucky dip" of useful titles and doorstoppers. With this one, I really lucked in. I think it was a gutbuster to write and consider it worth every drop of blood, sweat and tears.
on June 27, 2002
This book is a whopping 1000 pages and never did I get the feeling that _any_ of it was fluff. Not only does it give you a thorough exposition on writing programs in Kylix, it also delivers vital information on writing and running programs under Linux. Many programming books come with source code as does this one, but I almost always never use such code because of poor quality or a lack of relevance to my project. Within 10 minutes of starting this book I had found critical uses for several of the modules Shemitz provides, and I see a lot more that I'll be using in the future.
There's a wonderful chapter on Kylix that existing Delphi programmers will find absolutely invaluable. In addition, programmers coming from the Windows environment like me, will find some terrific chapters on the Linux knowledge you need to get up to speed fast, saving you from torturous safaris through the Internet. Without question, a terrific book.