Jesse Sightler wrote:
On 9/20/05, Steve Loughran <[EMAIL PROTECTED]> wrote:


You notes about compatibility are well taken. From a product
perspective, Axis 1.1 -> 1.2 was NOT a smooth transition. We waited too
long to release, and changed too many things to make it 'better',
breaking lots of stuff (arrays, soapenc vs. XSD types, etc). Still, I
think that it is the best Java SOAP stack available, particularly if you
need WSDL2Java and Java2WSDL functionality (which CF uses extensively).


Plus Sun went and made "enum" a reserved word, which caused a lot of
pain. But It is hard for the axis team to accept responsibility for sun
making a common word reserved. They should have made all the C/C++
keywords reserved right from the outset, just to leave things open in
future.



It's true... I've never understood the Sun logic when it comes to when to
take reserve words, and when not to. Does anyone understand these three
decisions:

1. goto - Reserved from the start, for all those people who might beg for
it.
2. assert - Not reserved, but reserved in 1.4. Makes sense, mostly.
3. foreach - Won't implement as new keyword... don't want to add a new
reserved word
4. enum - Implemented, because ?!?!?

I think most would not have made those same decisions. :)

and 'generic'.

Basically they had a rough plan of some things they wanted to add, and reserved those words. Then, the plan changed, and the reservations broke.

I've had worse experiences in (um) VB; every version added new words and broke things. Maybe that is the price of any language that is defined by a company, rather than a standards body with user participation.

Think of how, in, C++, vendor specific stuff get __ prefixes.

__declspec(__cdecl) void something() {
}

They have a change policy, albeit one that makes for an ugly language.

Why foreach is out and enum in, i dont know, but suspect it was felt that "in" would have pushed people over the edge

foreach(Char c in string)

As an aside, they got for(:) wrong in a different way, because it only takes an Iterable as a param, not an iterator. I have iterators that implement Iterable just to deal with this design flaw.

-steve

Reply via email to