Introduction from Brian Hook

Welcome to the official Web site for Write Portable Code! Portable software development is a hot topic today because of the sheer number of different computer platforms that software can support. There are countless operating systems, hardware platforms, and tools to choose from and support, and migrating from one to the other can be a strenuous and frustrating task if you're unfamiliar with the process.

I wrote Write Portable Code as a personal project. So many programmers today have learned many of the patterns, principles, and philosophies of cross-platform development through trial and error that when a friend asked me about a good book on portable software development I was startled to find none. I wrote this book to fill that gap, and hopefully my readers will benefit from my efforts -- if not, please write to me and let me know how I could have done a better job!

While Write Portable Code targets intermediate-to-advanced level programmers looking to extend their skill sets, it is also of value to beginning coders who can learn important cross-platform principles before picking up any potential "single-platform" bad habits.

Downloads

Write Portable Code references two key libraries. The first is the Portable Open Source Header (POSH), which is a cross-platform abstraction header file that provides limited platform introspection features. You can read more about this and download the source code from here. In addition a sample cross-platform library, the Simple Audio Library (SAL), is used as a source of examples in the book. You can download SAL here.

Purchase

You can find Write Portable Code at your local major bookseller. However you may also order it on-line from most popular book Web sites, including:

Reviews

  • Duffbert's Random Musings - "With the ongoing battle between Windows and open source environments, the ability to cater to both might be the difference between life and death in your business. Write Portable Code might be a really good investment in your survival..."

Errata

p.198: The first formula for clock cycles is incorrect, the correct formula is "T = C * (N^2) / 2F. Identified by reader Bill Dimm!

p. 224: POSH_64BIT_POINTER is incorrectly described as "Set to 1 if target supports 64-bit integers", it should be "pointers", not "integers". Identified by reader Bill Dimm!

About the Author

I am a professional software developer and author who has worked primarily in the gaming and entertainment industries. My experience developing cross-platform software at companies such as id software, 3Dfx Interactive, and Pyrogon has given me a unique view into the process of cross-platform software development. I provide contract programming and off-shore development services through my company Hooka Tooka, and can also be reached at brianhook@gmail.com.

Press Release

FOR IMMEDIATE RELEASE

Media contact: 
Patricia Witkin
patricia@nostarch.com
415.863.9900 x303

"WRITE PORTABLE CODE" HELPS PROGRAMMERS DEVELOP CROSS-PLATFORM SOFTWARE

New book shows programmers how best to bring their code to a wider audience

June 29, 2005, San Francisco--Portable software development entails writing software that runs on a broad range of systems (a combination of hardware and operating system like Windows/x86, Macintosh/PPC, Linux/x86), rather than only one. Typically, programmers acquire cross-platform development skills through sheer trial and error. But now, they have a helpful resource--Write Portable Code: An Introduction to Developing Software for Multiple Platforms (No Starch Press, July '05) by Brian Hook.

The development of cross-platform software has been a long-standing challenge for programmers because each system has its own requirements and peculiarities, such as different ways of networking, managing files and handling floating point math. And today's users expect the software they use to run on their Mac at home and their Windows box in the office. But if the software isn't written from scratch with portability in mind, the process of porting it can be incredibly time- and labor-intensive, since doing so may require rewriting the software from ground up. That means unhappy users and lost income if the programmer can't expand the availability of his/her software to a broader market. And it really gets in the way of world domination.

"Write Great Code" shows programmers who typically write their programs to run on only one operating system how to extend the market for their work and speed the adoption of their programs by bringing them to multiple platforms.

"Write Portable Code" is a concise volume that's filled with code and practical, real-world applications for cross-platform development. Author Brian Hook is a gaming industry veteran who has put his portable programming skills to use at such leading companies as id software (Doom and Quake), and 3Dfx Interactive. His experience porting computer games (among the most demanding and complex programs to develop) informs his discussion, and readers of "Write Great Code" can leverage Hook's considerable expertise to facilitate their own cross-platform projects.

"Write Portable Code" shows intermediate- to advanced-level programmers how to:

  • Avoid common portability mistakes when starting out a new project
  • Reformat existing, non-portable code so that it can be easily    transplanted to new platforms
  • Greatly expand the target market for their products
  • Find bugs masked by platform specific behaviors
  • Retain flexibility by not becoming married to a specific development    environment or target platform

Bill Pollock, founder of No Starch Press, notes that "there seems to be more new software floating around today than ever before. Some of it is cross-platform; much of it is software that users on other platforms covet but can't get because they use Windows and the software they want runs on a Mac. We're publishing this book to actually show programmers how to write their programs with multiple systems in mind."

ABOUT THE AUTHOR: Brian Hook is a professional software developer and author who has worked primarily in the gaming and entertainment industries. His experience developing cross-platform software at companies such as id software, 3Dfx Interactive, and Pyrogon gives him a unique view into the process of cross-platform software development.

Write Portable Code: An Introduction to Developing Software for Multiple Platforms by Brian Hook.
July 2005, 272 pp., $39.95, ISBN 1-593270-56-9
Available at fine bookstores everywhere, from www.oreilly.com/nostarch, or directly from No Starch Press (www.nostarch.com, orders@nostarch.com, 800.420.7240).

ABOUT NO STARCH PRESS: Founded in 1994, No Starch Press is one of the few remaining independent computer book publishers. We publish the finest in geek entertainment - unique books on technology, with a focus on Open Source, security, hacking, programming, and alternative operating systems. Our titles have personality, our authors are passionate, and our books tackle topics that people care about. See www.nostarch.com for more. (And by the way, most No Starch Press books use RepKover, a lay-flat binding that won't snap shut. Hungry geeks love it.)