Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - International Programming for Microsoft Windows

Books  
HOME 
SEMINARS 
TALKS 
ARTICLES 

BOOKS

  OVERVIEW
  REVIEWS

  BIBLIOGRAPHY    
    J2SE
    J2EE
    CORE C++
    STL
    TEMPLATES
    IOSTREAMS
    CONCURRENCY
    I18N
    PATTERNS
    OOA/OOD
    TESTING
    MANAGEMENT
 

LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Book Review - International Programming for Microsoft Windows
   
  Book Review of the week
 
 
 
International Programming for Microsoft Windows 
By David A. Schmitt
Redmond,WA:Microsoft Press 
ISBN 1572319569
470 pages
Includes CD-ROM
Price: $44.99
(Reviewed 7/28/00) 
 
 
In-depth Information for Implementing Internationalized C/C++ Programs Under Windows
Excels at being deep and broad at the same time; valuable for novices and pros
 
F or reasons of profitability, modern computer programs must be useful and attractive to users all over the world. Naturally, people in different countries prefer to interact with their computers in their respective native languages. Ideally, computer programs should be adaptable to all conceivable local languages and cultural conventions. As developers of products that aim for high international acceptance, we must build into our programs the ability to adapt to local conventions. This design issue is known as the internationalization of computer software. International Programming for Microsoft Windows explains how programmers can use various APIs to internationalize C and C++ programs that must run on Microsoft Windows platforms. 

David A. Schmitt's book begins by describing the need and reasons for internationalizing computer programs. Experience with international programming is not required. Schmitt takes a broad look at cultural differences in general and how they impinge on software development in particular. This includes a brilliant, brief history of character sets: how they evolved from EBCDIC on mainframes and 7-bit-ASCII codes over ANSI encodings to Unicode, which is today's standard on Win32. After this introduction to the topic, he delves deeply into the details of international programming in C and C++. 

As can be expected from a book with this title, it is predominantly geared towards Windows programmers. Schmitt covers all C and C++ programming interfaces that are available for internationalization on the Windows platform?including Windows-specific APIs, such as locales in Win32, and international standards such as the ANSI C locales and the standard C++ locales, which support development of portable internationalized programs. Thanks to this coverage of standardized APIs, International Programming for Microsoft Windows is also valuable to developers who aim to provide portable programs for several platforms, Windows being just one of the target platforms. The author is aware of portability issues and clearly points out where you can leave the portability platform guaranteed by a standard and resort to system-specific, non-portable functionality. 

Three chapters are devoted to the various standard and non-standard locales that address roughly the same problem area?namely, text-processing issues such as formatting of monetary, date, and time values; language-dependent sorting order, etc. However, international programs must also solve problems such as selection of code pages and fonts or handling of different keyboard layouts. Solutions to these problems typically require support by operating system services. For this reason, the C and C++ standard standards deliberately stay silent about these system-dependent issues. Because this is a book specifically for Windows programmers, Schmitt naturally includes a discussion of system-dependent APIs such as the Windows support for multilingual input and output. 

All APIs relevant to international programming are explained in detail and their use is demonstrated by means of instructive sample programs, which are available on the CD-ROM in the book. The author even addresses very practical issues, such as the fact that Visual C++ 6.0 does not provide a standard-compliant implementation of the C++ standard locales, how you can find workarounds, and where you can obtain a standard-compliant implementation. 

International Programming for Microsoft Windows excels at being deep and broad at the same time. Despite the fact that it provides an abundance of technical details, it's very readable?not just for programmers who have not yet been exposed to international programming, but also pros who look for details regarding the internationalization APIs available for Windows programming. 

Naturally, you can find alternative titles that are devoted to one particular aspect out of the numerous topics that Schmitt covers in his book. For instance, there is Nadine Kano's Developing International Software for Windows 95 and NT ( Microsoft Press, 1995 ; now apparently out of print), which provides extensive details for those who want to know more about the system-specific international aspects of Windows. Although it has not been updated since 1995, most of the content is still valid. For more details on the standard C++ locales there is our own book, Standard C++ IOStreams and Locales ( Addison-Wesley, 2000 ). The ultimate information about Unicode, however, is available in the Unicode Standard published by the Unicode Consortium. The best coverage of multibyte character handling that we've come across so far is in Ken Lunde's Understanding Japanese Information Processing ( O'Reilly, 1993 ; now out of print). And so on, and so forth... Schmitt's bibliography is very helpful and points you to alternative and further reading. 

These other books notwithstanding, International Programming for Microsoft Windows gives you an excellent introduction to the problem of international programming and a lucid overview of all relevant APIs. Not only does it provide sufficient detail, but it's up-do-date as well. 

Angelika Langer develops and teaches classes on advanced C++, STL, multithreading, internationalization, and Java. She served on the ANSI/ISO C++ Committee from 1993 to 1998. Klaus Kreft is a software architect and consultant with 15+ years of experience in industrial software development. He works for Siemens Business Services in Germany. Langer and Kreft are authors of "Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference" (Addison-Wesley, 1999) and are columnists for C++ Report magazine. 

 

 
© Copyright 1995-2007 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/Reviews/Schmitt/review.htm  last update: 10 Aug 2007