topical media & game development
Platform dependencies form an important category
of architectural constraints.
In particular, the opportunities offered by
one platform may prohibit the deployment of software
on other platforms.
Nowadays, there are a number of (flavors of) competing
platforms, as there are the Unix flavors (of which Linux is
becoming a strong contender) and the Windows family,
including 3.1 (almost extinct), Windows 95, NT, 98
and (in beta release) Windows 2000.
Unix (for example Sun Solaris and SGI IRIX) has by tradition
a strong position in the server market.
However, Windows NT is growing rapidly in importance.
The Windows family, clearly, dominates the (client) desktop market.
Unix vs NT
- open toolkits and standards -- OMG CORBA
- AT&T U/WIN -- Posix for 95/NT
- Cygnus -- GNU-win32
- NuTCracker/MKS -- porting Unix applications to Windows
- Wind/U, Mainwin -- porting Windows applications to Unix
- Tributary -- developing Unix applications from Windows IDE
slide: Cross-platform development
Nevertheless, the need to support a variety of platforms
will exist at least for some time,
and consequently questions with regard to portability
and cross-platform development may be important
Considering the opportunities for platform-independent
or cross-platform development, we may distinguish between
As we have discussed previously,
many of the open standards, such as OMG CORBA,
and proprietary standards such as Sun Java,
aim at platform independence.
Also, there are numerous GUI toolkits
available that offer platform-independent support.
A possible disadvantage of this approach is that the
platform specific technology can usually not be profited from.
- deploying platform-independent toolkits
- porting applications from Unix to Windows
- porting applications from Windows to Unix
When it comes to porting applications from Unix to
we may look at AT&T U/WIN, which provides a POSIX
extension for Win32, or Cygnus GNU-win32 support,
which offers many of the GNU utilities and libraries
for the Windows platform.
Similar functionality, as well as support for Motif/X11
GUI capabilities, is offered by the (commercial)
(A detailed discussion of the technical merits of the
various offerings is beyond the scope of this book.
However, the interested reader may find more information in the online
version of this book.)
The Windows platform is not only popular with end-users
but also with many developers,
who enjoy using the Microsoft Visual Studio suite of tools
and (object-oriented) frameworks such as MFC.
Recently, toolkits have entered the market
that allow for porting Microsoft technologies
(including Visual Basic, ActiveX and MFC applications)
to the Unix platform,
in particular Wind/U from bristol.com
and Mainwin from mainsoft.com.
As a word of warning, these toolkits are still terribly
Yet for more information, consult the online version of this book.
For those who wish to develop directly on the Unix platform,
but using Microsoft Visual Studio, there is Tributary,
which offers a Unix-server and client-extensions to
From an architectural perspective, it should not matter what platform is used for the actual development,
nor for what target platform the software is being developed.
In practice, however, given the preferences of
the developers, the particularities of
the platforms, and the instability of the (beta) software
running on these platforms,
the actual choice may make a big difference.
As an admittedly weak advice,
tune your strategy to your needs and experience!
(And your budget.)
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.