Anyone employing Object Pascal to code for Windows that is worthy of the title, “Programmer”, cannot possibly have reached such a level of accomplishment without knowing and appreciating the fine educational efforts of Bob Swart, aka Dr. Bob. In the last two decades he has endowed those of us using Turbo Pascal, Delphi, and now Delphi Prism, with a lifetime of programming knowledge and experience through e-mail lists and forums, his own web site, seminars, courseware, and books. And for the most part, he has provided us with his expertise simply for the asking, and only to further the acceptance and use of the language and tools we have all come to love!
Those of us who have chosen Delphi as our primary development system, know even better than the rest the real value of Bob’s efforts. Ever since Borland introduced the first version of Delphi back in 1995, and even before that with Turbo Pascal, he has been there…championing the Pascal/Delphi communities…and providing us with both technical and philosophical insights that have made all ‘Delphinians’ better programmers. And whether still using an older version of Delphi, or upgrading to the most recent…now being offered by CodeGear and Embarcadero…one can find a wealth of information, examples, and other educational material pertinent to our needs on his web site at: http://www.drbob42.com/Delphi/
Many of us however, and especially those from the ‘old school’, prefer sitting down with a real book when looking for answers to sticky programming questions or just boning up on new technologies and the tools that go with them. Finding information on the web may be expedient, but it’s certainly not the same as sitting back in one’s favorite armchair and actually turning the pages of a real book! And Dr. Bob hasn’t forgotten about us or the difference between reading and research. He has taken full advantage of the new methods for self-publication now available and how they can better provide for his readers, while at the same time saving them even more of their US or Euro dollars! Besides offering courseware manuals pertinent to particular aspects of Delphi programming at: http://www.eBob42.com/courseware. He also lists and sells all his programming books at: http://stores.lulu.com/drbob42
His latest offering entitled, “Delphi 2009 Development Essentials” was written, as its name implies, to bring all Delphinians no matter their level of expertise, up to speed with the latest version of Delphi…its IDE, VCL, Compiler, and of the greatest interest and need, the many changes it has brought to the Object Pascal itself.
Personally, I cannot remember any previous version of Delphi to have made such an impact on the base Pascal language as does this one. To be sure, important and innovative changes to Pascal have come to be in nearly every new release, if not all of them. But never before have the alterations made such an impact on how we actually write code, or on the new possibilities these changes allow! And at the same time, never before have such new language features required us to not only re-educate ourselves, but to alter the very way we design our programs! In fact, if you browse the many forums dedicated to Delphi, or even just Pascal itself, you’ll note that more words have been traded on this particular aspect of Delphi 2009 than any other for a very long time!
As important as the new language features are, Bob knows that upon installing and then starting Delphi 2009 for the first time, there are quite a few IDE changes that one must become familiar with before even considering them. So he has carefully structured this book to take the reader step by step through all Delphi’s changes and important new abilities just as the average programmer will encounter and need to understand them. And in doing so he hasn’t forgotten about the many Delphi newbies or those who may be upgrading from versions already a couple years old…providing information ignored by other writers about some of the less noticeable features Delphi offers. For example, in the very first chapter entitled “Delphi 2009 IDE”, Bob talks about the “Welcome Page” we all see upon starting Delphi up. Not only does he mention the information available from this screen, but how to make better use of it by expanding and customizing its capabilities to better serve you!
Bob then takes the reader on a grand tour of all the IDE’s features including general Options, the Tool Palette, Type Library Options, Code Insight, Project Options, Build Configurations, changing how Errors and Warnings may be handled, the new Project Options dialog, the Class Explorer, managing VCL Components, new Editor abilities, and even Remote Debugging! Now some may consider spending as much time on what they consider to be redundant issues that every manual and textbook on Delphi covers to be wasteful. But I think you’ll be surprised once you start reading. I’ve been working with Delphi for quite a long time, and after I read this chapter and realized how much I learned, I went right back and read it again…just in case I missed something!
In Chapter Two, “Language Enhancements”, Bob’s expertise and his ability to share that expertise with the rest of us in a clear and concise manner without making us feel like the village idiot really shows itself. Starting with the compiler defines and directives, Bob quickly moves on to a brief introduction of Unicode Strings which as you will see, he tackles in much greater detail later on. Insuring those of us who tend to worry a lot that Delphi still allows the String types we’re used to! He then explains the new Exit command and why he doesn’t make use of it himself.
Next comes Generic types and Methods…including some great example code to get you started…Anonymous Methods, and even more examples showing how they can be combined in extremely useful ways! Finally, Bob finishes this important chapter with a description of all the new language enhancements one by one, providing useful examples when ever and where ever necessary. I won’t repeat the list of these enhancements as that can be found in the books table of contents, but I will mention the last of these that he talks about…Operator Overloading…only because of its importance and value, and because Bob’s treatment of the topic is one of the best I’ve yet come across. You’ll not want to skip over the pages he allots to this topic!
Chapter Three is dedicated to all the new “RTL and VCL enhancements”, of which there are quite a few! Bob does a great job bringing all these into focus, not only listing them like so many ducks in a row, but showing us why they are, then how and when they are useful!
As I’ve noticed in other texts over the years that claim to provide all the information one needs to get up to speed with new VCL components, they often forget to talk about enhancements to older ones! Bob has not forgotten this important topic either, providing an entire section of this chapter on such important considerations. I only wish this chapter could have been a lot longer, including more real-world examples for us to study. Perhaps Bob will write more about this topic on his web site in the future!
“COM and Active X” enhancements are given a good evaluation in Chapter Four, and includes a detailed explanation of the new RIDL file extension Delphi 2009 uses. Plenty of excellent demonstrations to get one started are also included.
Database programmers will find a lot to interest them in Chapter Five where “DBX4 and DataSnap” changes are covered in Chapter Five. And Bob also introduces the new BlackFish SQL which being fully managed, makes a good choice when both Win32 and .NET need to be serviced! Novice programmers should be aware however, that being as complete as Bob’s coverage is on these topics, it is meant for those already experienced in database design. If you are a beginner with Delphi databases, or just want to bone up on this important topic, you may wish to pick up Bob’s book, “Delphi VCL Database Development”, which covers database design, normalization, and data access. It too is available at both:
Back when Delphi 2009 was first discussed and information about the changes it would bring along with it were made public, the main questions on everyone’s mind was in reference to “Unicode”, and how its integration within Delphi would effect us. Chapter Six endeavors to answer all these questions both past and present by providing a good introduction to the Unicode Standards and Transformation formats. And even though important information on Globalization, Localization, and the Translation Manager itself is provided afterwards, these topics are listed as an Appendix. Chapter Six is actually the last chapter…and for many of us, the most important!
Here Bob starts, as mentioned above, by explaining in detail everything we might want to know about Unicode, and perhaps a little more! From there he moves right along into a section explaining the Transformation formats and how they relate to each other and Delphi itself. This includes their relationship to the BOM, Encoding methods, TStrings and TCharacter, Support Routines, and even Explicit Unicode Conversions. Finally, Unicode migration is considered, and includes the many routines that make Unicode easier to understand and make use of from SizeOf to Move, and from TStream methods to the API.
This is a complicated subject, especially for those like myself who never had any need to come to terms with Unicode in the past. So you may have to work through this chapter more than once before you start feeling comfortable with the topic. But Bob’s treatment is again written so that it is easy to put into perspective and used as and when actually needed. I’m sure I, as well as many others, will be using it as a reference for the next couple of years!
In closing let me just say that of those primers on Delphi 2009 I’ve come across so far, “Delphi 2009 Essentials by Bob Swart”, is the very best of the bunch for providing the Delphi programmer with the most complete and concise reference to the many new and altered considerations necessary to the use of Delphi’s latest version. As we’ve come to expect, Bob Swart not only knows his subject well, but is blessed with that rare ability that enables one to explain difficult areas of the subject. Not only imparting necessary information, but doing so in a way that makes this sometimes arduous subject pleasant and easy to read! And being independent of any relationship to CodeGear and/or Embarcadero, Bob is able to voice his own opinions about the products he endorses and makes use of…telling you from a professional’s viewpoint what he likes or dislikes about such products and the changes they offer within each new incarnation.
If you’ve not read any of Dr. Bob’s work before, you’re in for a treat. If you have, then you know what to expect, and that you’ll get exactly what this title says you’ll get! And when it comes to subjects of a technical nature like this, that’s the very best endorsement anyone can expect!
Disclaimer: The information and opinions provided are mine alone and have not been endorsed by Bob Swart or Embarcadero.