![]() | ![]() | ![]() |
| Main | |
Why Michael Kaplan is the Ideal Dev Blogger
Microsoft bloggers have a new star in their midst with Michael Kaplan who began his prolific blog over a year ago. Praised by Joel Spolsky, Michael is a natural blogger since he was always active in the newsgroups and wrote a highly regarded book some time ago too. I don't know if it is a good thing to shamelessly heap more praise on him, but it shouldn't do much harm because no one will know about it: I have at most 2 or 3 people reading my blog (and one of them is me)! Anyway, Michael is hands down my favorite blogger of 2005.
The theme of his blog, Sorting It All Out, is internationalization with some straying into adventures at conferences and travels and there is a supporting cast of regulars commenting, most noteably Mihai Nita, an Internationalization MVP who is a great contributor. It might strike one at first as very Windows-centric and technical, but actually his subject area looks outward to the cultures of the world as well as the Unicode Consortium, so he escapes the Microsoft-only and techy pigeon holes too.
I follow a few other Microsoft bloggers. Raymond Chen is a great technical insider who likes to explain Windows inner and outer workings such as when he said the reason you click the Start button to shut down is the same reason you turn the ignition key to shut off your car. Larry Osterman capitalizes on his oldtimer status by telling stories from the old days at Microsoft like in 1989 when he happened to have David Weise show him some of the early Windows 3.0 stuff that ended up blowing away the competition and making Microsoft what it is today. The best known Microsoft blogger Robert Scoble is a master of hype but his big mouth gets tiresome. I've watched Dare Obasanjo active in XML-related discussion groups for a long time, but his blog's running commentary on the latest industry hype and delicate jabs at his employer are not his strength (for good criticism of Microsoft, not to mention industry commentary, I prefer a former employee like Joel Spolsky, see Microsoft Goes Bonkers).
In a new age of company insider bloggers, Michael brings a great balance being critical of specific Microsoft APIs and documentation while rejecting any outright condemnation of Microsoft. He is a voice of reason in the face of those zealous critics of Microsoft, and he doesn't toy much with commentary on the overall direction of his company. It is a sign of a writer who has a knack for talking about what he knows rather than trying to talk about what one might think should be talked about just to give his 2 cents. I think this is what makes him a valuable dev (as in developer) blogger.
Michael's primary field is called "internationalization" which in software development refers to the process of making programs capable across multiple languages and cultures of the world. In one sense it is making the world of computers more homogeneous by allowing programs to work in more locales, but in another it is allowing different places to use computers in more unique and culturally sensitive ways.
How important is internationalization in software? We all have implemented or used a sorted list of names in a program such as a list of contacts in an e-mail address book. Look at the following 2 ways of sorting the same group of words from Michael's post What's a secondary distinction?
|
|
The simplest concept of comparing strings is to set up the underlying values of each letter so that a sorts before ā which sorts before b right? Not so fast! The problem is that a word starting with ā can sort before a word starting with a depending on the remainder of the word! The algorithm producing the list on the left is much more useful to someone scanning by eye than the one on the right, but it is harder to implement.
Well, this issue already existed in English with sorting uppercase A together with lowercase a. These are letters that behave as if they are the same unless all the others being compared are the same too. If you convert all strings to the same case and then sort, you still need to go back to the original case and re-compare when the same-case versions are identical. With European text you add Ā and ā (and many more) to this same process.
And here's another problem. Different locales have different sorting practices. In the Swedish system, Å and Ö are both considered to be separate letters that sort after Z, rather than being treated as an A and an O with accessories (diacritics). What the Microsoft operating system is now beginning to facilitate is the ability to sort the list based on a computer's locale configuration so that the same list might be displayed in a culturally appropriate order based on where it is viewed.
But this is nothing so far! Michael also gets into some pretty obscure stuff like the fact that in French the diacritics are evaluated from right to left (French collation: When diacritical becomes diabolical) and I haven't even mentioned things like pronunciation sorting in Asian languages.
- cote (dimension)
- côte (coast)
- coté (with dimensions)
- côté (side)
Internationalization is a huge looming area of software development that has not yet quite found its place in the hearts and minds of average engineers, or in operating systems and databases for that matter. But I don't care about that. I am not going to urge companies to internationalize their software because it is "the right thing to do", or because "it will be better in the long run". That sentiment reminds me too much of the Y2K craze which I believe was way over-hyped.
But what impresses me about internationalization is that people like Michael Kaplan are building an amazing depth of language and culture functionality into the Windows platform that users will inevitably come to depend upon and expect. And what is still being worked out is which parts of all this can be built into the operating system and which parts will be the responsibility of the client software developers. Unicode capability and compliance with regional settings will eventually be expected by users and the marketplace will be the driving force to promote these features in software.
Internationalization support may end up being the biggest differentiator of all between Windows and other operating systems because of the complexity of implementing the evolving Unicode standard with its text that mixes left to right with right to left scripts and its rules for rendering of fonts and combining diacritical marks, together with sorting and regional settings like numbers and dates. So riding this new wave, and by exposing these developments right down in the nitty gritty details like in thoughts about the Indic keyboard layouts, Michael is providing a valuable service to developers in or out of the Microsoft camp.
It is ominous to realize that due to Windows dominance the developers at Microsoft are making choices every day that will impact the very languages and cultural practices their platform is interfacing with.
Keyboard layouts, word processing, calendars, fonts, and text sorting affect social practices with respect to text layout and appearance, scheduling appointments, listing names, shortforms used, makeshift spellings (can you imagine having to use a lowercase i without a dot? The equivalent of this is common in other languages that have to work around platform shortfalls), as well as naming and differentiation of languages and dialects (e.g. Urdu vs. Arabic). Here is a thought provoking question from Sometimes, tech companies cannot take sides:
How easy would it be to claim that your opinion on Taiwan, or Macedonia, or Kashmir, or Pakistan was the right opinion, and cite as one of the many proofs that Windows does things a particular way that establishes the point?
I find it reassuring that Michael has become a key player because I think he'll have a level-headed influence. His blog brings the Microsoft inside track together with a knack for blogging and a balanced practical attitude on an important subject area. 'Nuff said!
| Main | |


