Tuesday, October 28, 2014

Book! Book! Book!

"You cannot open a book without learning something."
-- Confucius

I have always had a thing for technical books, both printed and, now, electronic editions. EBooks are convenient and searchable, but there's just something about having a physical book that's hard to beat. As it turns out, I'm in luck. There are a surprising number of Delphi books being published right now, each with their own unique perspective and most are (or will be) available in both formats.

Here are some recent examples.

1) Object Pascal Handbook (Marco Cantu)

Marco is the Rad Studio product manager and a well known author in the Delphi community with his Delphi Handbook series and many other titles. This latest book promises to be a comprehensive reference for the Object Pascal language as it exists in Delphi today. It includes thorough explanations of concepts and language constructs along with code examples to help drive the points home. There is plenty of commentary, too. I especially liked the sections on GOTO and WITH.

A draft copy (70% complete?) is available now as part of a current promotion. Once it's completed, a printed version will be published.

One minor quibble - I understand that the product name is Delphi and the language is (and always has been!) Object Pascal, but it wouldn't hurt my feelings to see the word "Delphi" on the cover somewhere. Just sayin'...


2) Coding in Delphi (Nick Hodges)

There is more to software development than just coding. Nick has chosen to write about several modern programming concepts and then how to take advantage of these in Delphi. This feels less like a Delphi reference book and more like one of those deep conversations you might have with a bunch of fellow developers about the cool and interesting things everyone is working with.

Nick's book is available to registered users of XE7 (and maybe earlier?). In fact, it's available to anyone who downloads and registers the XE7 trial. It is also available for sale as either an e-book or hard copy. This book has become a permanent fixture on my desk.


3) Delphi Cookbook (Daniele Teti)

The "cookbook" format is one of my favourites for technical reference books, and Daniele's interpretation is no exception. The book includes 50 useful and non-trivial recipes that guide you through the steps to implement each of them in a way that makes it all look easy. I especially liked the chapter on servers.

I learned about this book by accident while listening to an unrelated webinar shortly before it was released and pre-ordered the electronic and printed versions (now on my desk next to Nick's). I was surprised that I didn't hear about it sooner, but I'm glad I didn't miss it.


4) Delphi Courseware Manuals (Bob Swart)

If you want to take a deep dive into any subject, the best way I can think of is through instructor-led training with someone who knows it inside and out. The next best thing might be the course material written by that same person. In addition to books for previous versions of Delphi, Bob has three manuals for XE7. One has been released, and the other two will be out soon.



The courseware gets refined and added to over time, and the electronic version includes twelve months of updates. I wouldn't mind seeing more of these available in hard copy, though.


Funny story - My brother and a good friend of mine had children born around the same time. I sent them both a printed copy of Delphi XE Development Essentials (an excellent release!) with the note "Baby's first Delphi". My friend was all for it. My brother thinks I'm being a bad influence. :)


Conclusion:

If you find any of these useful or interesting, then consider showing the authors some love and ordering a copy (or three). Even the ones that registered Delphi users get for free.

Writing a book, especially a good book, is hard work and it takes a lot of time. I want to do anything I can to encourage these guys (and anyone else) to write more of them. For my part, I intend to buy a copy of every (English language) Delphi book that is published from here on out. Let me know if I've missed any.

Update: Wait! There's more!


5) Delphi in Depth: ClientDataSets, 2nd Edition (Cary Jensen)

ClientDataSet is my absolute favourite component, even edging out FireDAC's FDMemTable. I use it EVERYWHERE. Cary has talked about ClientDataSet more than anyone I know and then wrote the definitive book on the subject.

I strongly considered including this book in the original list even though it isn't a new publication. And then today (Oct 30), while listening to one of Cary's CodeRage lectures, I learned that he has been working on an update that brings everything up to date with Delphi XE7. It should be ready later this year and will also be available in printed and electronic forms.

Honourable Mention:


Delphi Developer Days Coursebook (Bob Swart & Cary Jensen)

This is the culmination of many years of Delphi Developer Days conferences and contains some information that I haven't seen published anywhere else. The latest version weighs in at over 400 pages and is updated every year to include the latest Delphi features.

However, this book isn't available for sale anywhere. You can only get a copy by attending Delphi Developer Days. Stay tuned to their site for the 2015 dates.



Tuesday, October 7, 2014

Rad Studio XE7 stealth feature - IBLite for desktop!

IBLite is a free, embedded version of Interbase that was released last year. First for iOS and then for Android. The Interbase roadmap hinted that a desktop version was in the works, but if you weren't looking for it, you might have missed that support for Windows and OS X was included with Rad Studio XE7. Stephen Ball goes in to more detail. (Original link seems flaky. Here is a cached copy)

I thought there would be a higher profile announcement. I don't currently use Interbase, and kind of stumbled across this by accident, but it certainly caught my attention.

Some of my applications are stand alone or occasionally connected with their own local database storage. Situations where installing a separate database server would be overkill. When I can, I like using the same database for this everywhere. This means consistent features and SQL syntax, I can share common code and data I don't need separate data administration tools for different applications. Cost is also a consideration. I'm fine to pay for a good database, but I don't like license fees at the best of times, let alone for an embedded database.

There are any number of great solutions for this on Windows, and everyone has their favourites (I'm looking at you ElevateSoft), but there are fewer choices once you throw Mac and mobile into the mix.

Which leaves me with two options - SQLite and now Interbase (IBLite), each with its own advantages.

I have been using SQLite and like it, but IBLite seems to be more robust with support for stored procedures and more complete SQL. I've also been bitten a couple of times by SQLite's dynamic column typing.

Either way, both databases are fully supported in Delphi Professional and higher on every platform that Delphi currently targets - Windows, OS X, iOS and Android.

I like having options.