Anti-FUD below. To add a purely technical suggestion, why not use
wchar16_t everywhere? Since this type does not currently exist, you
could attempt to make a case for adding support to glibc (though, good
luck with that) without breaking the ABI, and then use that on
non-conforming (read: Microsoft) platforms.
Or just use one of the various existing cross-platform libraries, like
other people keep telling you to do.
Dallas Clarke wrote:
Hello Eljay & Andrew
What you are proposing is not C, and is not C++. FSF does not control
ISO 9899 nor ISO 14882. GCC does not drive platform ABI.
The heart of this issue is that GCC is not compatible with MS VC++,
gcc is not compatible with MSVC, no, nor do I expect there is any
intention to make it so, nor do I believe it should be. Similarly, Sun C
is not compatible with gcc, nor with MSVC.
If you refuse to write portable code, that's *your* problem, not ours.
by
defining wchar_t as 4-bytes and not providing any 16-bit Unicode support
- it just going to be too hard to continue porting to Linux.
Maybe we should copy other bad decisions by Microsoft, like
sizeof(void*) != sizeof(long)?
At the end of the day if you want to live in a world where you only
consider yourself - then you can live in that world by yourself.
That's funny, that's exactly how I would describe the Microsoft world.
Like
you said, if I don't like it I can use another language and GCC will
become irrelevant, you can all go your own separate way.
Here's to hoping that MSVC becomes irrelevant :-).
Sure, but you so far have failed to convince anyone that a bad decision
has been made.
I wont bother repeating myself, it not my responsibility to cure your
dogma,
Then I guess it shouldn't be our responsibility to cure yours.
it just the end of me using GCC.
You mean, it's just the end of you trying to support any non-Windows
platform? That's too bad, since you're limiting yourself to an outdated
platform that to all appearances seems to be in decline. (Even Microsoft
is making noises of Windows going away...)
I am sure that many other
developers will run into the same problem and choose the same solution.
I am sure many other developers have bothered to write code that is
actually portable. In fact, the vast majority of software available for
Linux, much of which can be compiled on multiple architectures as well
as multiple OS's, proves that point. It's not gcc that's different from
everyone else, it's Microsoft (and I can say that from personal
experience). Sure, other platforms have their quirks, but for the most
part, there are POSIX platforms including Linux, Solaris, and dozens of
others, and then there is Windows.
The full set of MS Common Controls no longer support the -D _MBCS, this
means I must compile in with -D UNICODE and -D _UNICODE, this makes all
the standard WINAPI to use 16-bit Unicode strings as well.
Wow. I knew Microsoft went out of their way to be incompatible with
everyone else, but I hadn't heard this one before. Can't say I'm
surprised though.
That's what you get for relying on the idiosyncrasies of a platform that
is intentionally as incompatible as possible. You'd be much better off
writing portable code in the first place. (This, incidentally, is a
great way to learn just what a mess Microsoft's API's are, when you
realize that you can write code that runs on any POSIX platform with
minimal effort, but writing code that runs on Windows is a monumental pain.)
Why is MS doing this - probably because they know
your not supporting 16-bit Unicode and that will force people like me to
drop plans to port to Linux/Solaris because it is just too hard.
I'd actually bet money that's exactly why they're doing it. Microsoft is
well known for engineering incompatibility. They're business model is
based on lock-in.
Just in case I haven't repeated myself often enough, if you wrote for
Linux first, you'd quickly discover that porting to Solaris/etc is
trivial by comparison to porting to Microsoft.
And to answer Scott's questions why must we follow the thousand pound
gorilla that is Microsoft? For the same reason that rain falls down,
because that is just how the world is.
Wrong. That's the way the world *was*. The world is changing (for the
better)... :-)
What do you plan to do in a few years when Microsoft stops supporting
everything that is not .NET?
--
Matthew
Person A: It's an ISO standard.
Person B: ...And that means what?
--mal (http://theangryadmin.blogspot.com/2008/04/future.html)