Hi,
bewing wrote:Yes, if I ever create an internationalized version (which I probably won't), it will certainly have a much more generalized, slower, uglier, more bloated keyboard driver written by some wageslave computer science grad, with all the features you speak of, and more. I simply think it is a mistake to design internationalization into an OS as a primary goal, unless your primary market is going to be the EU.
There may be a fundamental flaw in the way you approach OS design, and it's a flaw that (IMHO) other OS developers might share.
When designing an OS, you should/must try to take into account *everything*. If you don't you'll either end up with "hack on a hack on a hack" or "rewrite after rewrite after rewrite" as you try to add things you didn't originally consider.
For example, imagine you design your OS for "ASCII only" where the keyboard driver sends 8-bit characters. Then (eventually) want to add unicode and internationalization and need to change the interface between the keyboard driver and the rest of the system to handle 32-bit characters. Because you've changed the interface, you need to update everything that uses the interface - the kernel, the GUI and all applications. It can add up to years of rewriting to do it properly (especially if there's many applications, etc).
Of course in this case you could just write a hack. For e.g. you could make applications default to "ASCII mode" and allow newer applications to enable "Unicode mode", where no-one can remember which applications support internationalization and which don't, and where your applications programmers start thinking about writing thier own OS because your interfaces aren't "clean" (e.g. a messy collection of crud for backwards compatability purposes).
Please note: I'm not talking about implementation, I'm talking about design. Just because your OS (API/s, protocols, interfaces, etc) are designed to handle unicode and internationalization, doesn't mean that your initial implementation actually needs to support unicode and internationalization.
If your only going to support one language then it'd make the most sense to support Mandarin. Here's a table showing the percentage of the world's population that use each language as their primary language (in order from largest to smallest, not necessarily accurate):
- 32% Mandarin
11% Hindi/Urdu
11% Spanish
11% English
6% Bengali
6% Arabic
6% Portuguese
6% Russian
4% Japanese
3% German
2% French
Now, see if you can answer these questions:
- what happened on the 9th of November in 2001 (9/11/2001)?
- how is "colour" spelt?
- is 1.501 slightly more than one and a half, or slightly more than fifteen hundred?
- did Microsoft release DOS about 20 years before the year 2000, a few thousand years after the year 2000, or several hundred years before the year 2000?
- is 14:00 before or after midday?
- when does daylight savings start?
- if both of our computers send a fax to the same fax machine in Italy, would both computers dial the same phone number?
- if you lend me $1000 and I repay a quarter each week for 5 weeks, would you make a profit or a loss?
Cheers,
Brendan