Not all developers speak English. Dammit.

by Michael S. Kaplan, published on 2010/06/05 07:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2010/06/05/10019465.aspx


There are times I look at Microsoft's approach to the world and am really impressed by the scale and scope and planning.

At those times I am humbled and pleased and proud, to be a part of that. To know that there are not many other places in the world where one could be a part of that.

And then there are other times that I am annoyed by some of the things that are stated and triaged and decided.

At those times I am humbled and embarrassed and ashamed, to be a part of that. To know that it is truly a challenge to be as decisively wrong about an issue.

Somehow I end up feeling humble either way - those who know me will verify that this is not a usual state for me!

Let me guive you an example.

Like the other day.

Well, it started back in October, 2008, with a bug report a colleage pointed me toward:

After installing a German SQLServer 2008, I can change Visual Studio 2008's display language between English and German via Tools->Options->Environment->International Settings.

If I choose German and compile my solution, I get the following error
"Invalid Resx file. Der angeforderte Wert Ctrl konnte nicht gefunden werden. Zeile ..." ( which is in english
"Invalid Resx file. Requested value 'Ctrl' was not found. Line...").
The source of error is the following part in resx-file:
...
<data name="mnuFileNew.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
    <value>Ctrl+N</value>
</data>
...
If I change <value>Ctrl+N</value> into <value>Strg+N</value>, it works with IDE in German language. But if I choose English language again, I get the same error reverted, that means an error
"Invalid Resx file. Requested value 'Strg' was not found. Line..."
on that line.

The notion that the language of the IDE has influence on the ability to compile is just wrong.

If it were only so simple to have everyone realize that.

Now at first no one inside Microsoft could reproduce the problem. They asked for more information after several days.

The next day, they got it -- an easy repro of the problem in the form of a simple project, and for good measure a screenshot of the error obtained thereby.

After a quick "escalating now" message, nothing until March of 2009.

At that point, someone else chimed in, someone external who could also repro the problem:

Hello

I have the same Problem. I have installed Visual Studio on 2 Computers from the English Setup. On one Computer i have additional a English Language Pack on in. So i switched the Language to German.
When i open the Projekt from the English Language Computer on the German Computer. I have this problem too.

In German it is "Strg+B" in English "Ctrl+B"

On both Computers are Windows XP SP2 German languge.

I hope for a Bug Fix ;)
Thank you

Okay, so clearly the repro is now available and folks had it for some time.

Then, a few days later, the verdict:

Thanks for your feedback on the .NET Framework!

Customer feedback is a critical part of a successful, impactful product release. Unfortunately another part is the reality of schedules and the need to get the bits into production. We have evaluated the issue that you reported and it does not meet the criteria to be addressed in this release. This evaluation is carefully done and considers many aspects including fix cost, breaking changes, globalization, performance, etc.

Many customers have found it useful to discuss issues like this in the forums (http://forums.microsoft.com/msdn/default.aspx?siteid=1) where Microsoft and other members of the community can suggest workarounds.

Before we even begin work on the next release of the NET Framework release where we can make changes like this one we will devote time to addressing the top issues/suggestion (in terms of number of votes, lack of workarounds, etc). So please do continue to vote for this item if it is causing issues.

Please keep the feedbacks coming.

Thanks,
UIFx Team

Disappointing.

Now sometimes this does happen. Thinking about the nature of the problem, there is clearly a design flaw here where identifying names in source files are being localized. It is easy to imagine the fix could be expensive and/or risky.

So okay, people should vote on this, let the people who own this design flaw know that this is really ugly.

Not to say there was no disappoint. The response, just two days later:

I'm very disappointed that this heavy bug has been set to "fixed" and will not be solved! That means, you cannot work in an international team where some people work with english and some people work with german VS Version because the code is not compatible.

That's about how I'd feel.

Perhaps my language would be a little stronger. :-)

Then, just a week later, the response from Microsoft:

We understand your pains. There is a relative simple workaround - ask your german colleagues to switch to English. Would you agree that this doesn't cause too many efforts, right? After all, they should be capable of coding in English.

This issue is annoying but it doesn't seem blocking you from doing what you state to do.

Thanks!
UIFx Team

Oh. My. God.

No they didn't.

I would swear right now, even though I have been doing that much less often by explicit choice. But there is a filter on the new blogging platform that blocks me from doing so (though it did seem to let the title through, at least).

I swore in a much more vigorous way when I read the report, I can promise you that. My colleague in the office next to me, she might be used to that occasional outburst by this point.

But seriously?

This is coming from a company whose personnel have development staff who span languages and scripts, who span countries and continents, and who by rights really ought to know better.

Now I know that we are not completely enlightened here; for example, I mean I cannot do a complete build of Windows that compiles all source if my system locale is set to something like Japanese, due to some errant characters in a few random source files that hit the C4819 issue. This could be fixed at any time and until then is truly a little painful for developers in the company who are elsewhere.

But what happens internally is not the same as what we design for customers.

And the Windows thing could be fixed at any time (any time I have been in such a source file changing something else, I have removed the errant bytes as part of my checkin - and I am not the only one). It is just a bug (random bytes in a source file were clearly not intentional).

But designing something with an "easy workaround" of switching to English, when we ought to know that not all of our customers know English?

Thus here I am.

Bemused.

Not amused, but bemused.

Humbled.

Embarrassed.

Ashamed.

You can read the whole report on this bug, in Switching Visual Studio 2008 IDE Language from English to German produces compiler-errors on Resx-file. Feel free to weigh in and vote or whatever if you have appropriate reason to do so.

An apology would make sense. We (Microsoft) may not be better than this; clearly we (Microsoft) aren't, sometimes.

But we (Microsoft) can be. And we (Microsoft) have been.

I'm sorry that we (Microsoft) weren't this time....


John Cowan on 5 Jun 2010 12:12 PM:

Whoever wrote that should be taken in back of the barn and shot.  No, shaken hard.  No, actually, shaken had and *then* taken in back of the barn.

Outrageous.

Michael S. Kaplan on 5 Jun 2010 12:14 PM:

Well, my reaction was not quite so violent. But clearly I am not pleased about it....

fowl on 5 Jun 2010 8:18 PM:

"Would you agree that this doesn't cause too many efforts, right? "

^^ Is that even English?

Michael S. Kaplan on 6 Jun 2010 12:19 AM:

They *are* Englsh words. Though they are using a sentence structure with which I am unfamiliar. This often suggests someone for whom English is not a native language, which would be quite delightfully ironic, right? :-)

Kemp on 6 Jun 2010 4:36 AM:

This is the sort of seemingly uncaring attitude that contributes to giving MS a bad name, though I can see how someone who has never travelled outside of the US and never worked on an international team might not realise what they're saying. On the other hand, I really don't think it falls to you to apologise on behalf of MS. I don't think you could find a single person who reads your blog who would think you would be happy with this situation.

It's very easy to under-localise things, I guess this is a case of things being over-localised. What would the ideal fix (from your point of view) be? Make it always be a particular identifier (Ctrl presumably to break the least existing code)? Make the compiler pick up both Ctrl and Strg (and a thousand others) as valid regardless of language setting? Have Ctrl always being valid, along with an identifier specified by their language setting? I can see how each of these would cause problems, either in implementation or usage.

Michael S. Kaplan on 6 Jun 2010 9:20 AM:

How to fix? Well, in my opinion the easiest fix is also the most compatible one (even if not the ideal "always works" answer): make sure the last "save" language is stored, and then use it to load the keywords. The only case that would be broken is the one whetre you save and then uninstall the language pack used, but that doesn't seem very mainstream in terms of scenario.

So in the cross-lang development scenario, it would occasionally require you to install a language pack, but you would never be required to switch to it, and the error message/kb article could explain this....

Michiel on 7 Jun 2010 12:59 AM:

I'm more surprised that Microsoft even released such a localized product. I'm talking from experience when I say that all _good_ developers understand English. This is no coincidence: to be a good developer, you have to keep up with innovation. That means reading, in English. Any developer who only understands German (or French, or Spanish) will be behind the times.

Alasdair King on 7 Jun 2010 2:42 AM:

"This often suggests someone for whom English is not a native language, which would be quite delightfully ironic, right? :-)"

It also suggests why they'd feel comfortable making that suggestion: they've had to move to English for development themselves, so why shouldn't you?

wva on 15 Jun 2010 5:12 PM:

Re that C4819 issue, the instructions that you or compiler support folks have given me were not too enlightening:) Both have told me to use BOM in UTF-8 source files and ignored my argument that it would fail on any compiler and any platform different from Windows with Visual/C++.

So, I told Japanese folks in our company to switch to English Windows, since Microsoft does not plan to fix that compiler bug, and I did not feel ashamed, humbled, bemused or embarrased while doing it:)

Michael S. Kaplan on 15 Jun 2010 5:37 PM:

Any C or C++ developer worth their salt can add a BOM as a preprocessing step for the build; anyone doing cross-platform work who feels such an effort is beyond their skill level? Hmmmm....

wva on 15 Jun 2010 6:43 PM:

Oh please.. Why should I hack the build system to compensate for C++ compiler bug, that neither affects me nor it affects company compile servers. It just affect some poor people elsewhere who prefer to work on localized Windows. I can keep telling those people to expect surprises on localized Windows versions, one of which is known to be refusing valid C++ source code, if it contains non-ASCII UTF8. I also tell people that I reported compiler bug, and my part is done here, fixing the bug remains compiler vendor's responsibility.

wva on 15 Jun 2010 6:44 PM:

Oh please.. Why should I hack the build system to compensate for C++ compiler bug, that neither affects me nor it affects company compile servers. It just affect some poor people elsewhere who prefer to work on localized Windows. I can keep telling those people to expect surprises on localized Windows versions, one of which is known to be refusing valid C++ source code, if it contains non-ASCII UTF8. I also tell people that I reported compiler bug, and my part is done here, fixing the bug remains compiler vendor's responsibility.

Michael S. Kaplan on 15 Jun 2010 8:03 PM:

If something is designed a particular way, and it works that way, then it is by design. It is only a bug in expectations on the part of someone who expected behavior to change....

The compiler issue affecting the Windows build is a bug in a few source files, which is by no means the same as the bug being discussed here. The only reason it is not fixed us that they consider it out of scope for the project.

Sup on 16 Jun 2010 7:05 AM:

Makes Sense.

German is for faggots.


go to newer or older post, or back to index or month or day