Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesThink Multiplatform


June 1994 / Commentary / Think Multiplatform

Portable code and flexibility are key to successful software development

Raymond GA Cote

It is exceedingly easy to develop a narrow world view focused on a specialized segment of technology. Almost every potential client seems to want a specialist with a minimum of 10 years experience--Mac Toolbox, Windows API, Novell, telecommunications, IPC, RPC, the list goes on. My favorite is a request for an experienced Newton MessagePad developer, which appeared on AppleLink about two months after the Newton's release. There must have been all of two or three in the world at the time.

The problem with being a specialist is that you're locked into a smaller world; it's easy to lose sight of the fact that there are few homogeneous computing environments out there. I believe that flexibility is the long-term key to surv ival as a consultant.

I keep reading that Windows is ubiquitous and the Mac is--once again--doomed. Never mind those poor, isolated souls running OS/2 or Unix. Just design your applications to run on Windows and you can conquer the world. My company's experience with real-world clients offers proof to the contrary. During the last several years, the bulk of our contracts have involved porting applications from one platform to another. And the majority of our porting work has required moving applications from Windows to the Mac.

At first this was a surprise, even though I dearly love the Mac and think everybody should have one. The basic issue behind this move from Windows to the Mac is not that the customer's applications are not doing well under Windows, but that the Mac continues to appear throughout corporations in growing numbers.

Last year, IDC did a survey of computer use in small, medium, and large corporations. It found that 60 percent of the companies surveyed had Macs installed, which is a significant market presence.

Although I've focused my discussion on Mac versus PC, many forces are at work in the marketplace. Windows NT wants to become the corporate server of choice and looks like it will be driving the move to standardized multiprocessor platforms. The PowerPC may add new life to Unix on the desktop, and OS/2 sales are increasing. According to an article in the Wall Street Journal, OS/2 sales are small compared to those for Windows, but sales have been increasing since the release of Windows NT. Is there a platform you can afford not to support?

Exciting changes are taking place off the desktop, as well. Corporate reengineering is in full swing, with the result that more and more desktop machines need to talk to central corporate platforms--VAX, AS/400, and the like. You know the world is changing when IBM runs ads showing how flawlessly the Mac connects to its AS/400 systems. Users have also become mobile, with laptops, hand-held computers, and PDAs (personal di gital assistants) becoming much more prominent.

But what does this mean from the point of view of a software engineer? You must be ready to take your code anywhere with minimal notice. The need to write programs that run within multiple operating systems and hardware platforms is becoming the norm, not the exception. To cope with this, your design and development efforts must be based on the premise that the code will operate in multiple environments.

Simply put, design and develop portable code. There's nothing magic about writing portable code. Design short, modular functions. Separate the user interface from the computationally intensive internals. Isolate your platform-specific calls under generic wrappers.

When you're debugging, use every available tool to provide automated code checking. Have other people comment on your code. Learn to accept and give constructive criticism. It is difficult to know everything, particularly when you are fielding applications on multiple platforms. La st, but by no means least, document, document, document.

I know there's nothing new in this advice. However, I am continually amazed at the amount of code my company inherits that cannot even make it through a moderate warning-level check from the compiler or that ties pieces of the user interface into all levels of the code.

Of course, some products should not be designed for multiplatform operation. But for the majority of new applications, if you plan their move to multiplatform support from the start, you'll have a flexible product that's better able to take advantage of the shifting market realities.


Raymond GA Cote is a BYTE consulting editor and vice president of product development at Appropriate Solutions, Inc. (Peterborough, NH). He can be contacted on the Internet at rgacote@world.st.com or on BIX c/o "editors."

Up to the Commentary section contentsSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network