Re: mixed-sign arithmetic and auto
Walter Bright wrote:
Bo Persson wrote:
My experience porting D code between platforms is it ports easier
than the equivalent C++ code.
Porting is easier if you limit the number of potential platforms.
Sure, but I was comparing porting C++ from platform A to B with
porting D from A to B. The latter was noticeably easier.
It could be because the variation is smaller. There are some platforms
were you cannot easily implement D at all, like IBM zSeries with
EBCDIC character set and non-IEEE floating point. C++ has no problem
with that.
Porting Java is easy too, if your target platform supports it.
Porting Java is hard, if you haven't ported its platform first!
Porting C++ compilers is pretty hard, too. How many programmers do
you know who can write a code generator?
The point was rather that Java is very hard, if the intended platform
doesn't support the spec. It might require adding dedicated hardware:
http://www-03.ibm.com/systems/z/zaap/
We had a discussion just last week with a Java developer on reusing
his web server code on the mainframe.
- "Oh dear! That's just Java 1.5, I need 1.6 generics for my code.
Limiting myself to 1.5 features will cost you a lot more!"
But isn't Java implemented in C? C is more portable and available on
every platform, so he should just recompile it and he's good to go.
Well, IBM believe they should decide what Java version to run on z/OS.
It also needs to access the special Application Assist hardware to do
IEEE floating point. C and C++ doesn't have to do that.
For our inhouse applications portability is no concern, but Java still
insists on using a portable data format. Even if it is more expensive.
A lot more, in this case!
A look through the source of Boost and STL will show that compiler
support for various C++ features is a perennial problem. Source code
portability, when using advanced C++ features, has always been a
serious problem.
IMO, Boost is trying much too hard to support pre-standard compilers.
If they tried to support 1-2 releases of each compiler, instead of
4-5, the number of workarounds needed would be drastically reduced.
How long do you think it will take for all C++
compilers to implement all of C++0x?
A long time, no doubt. :-(
Bo Persson
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]