From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,29fe9a340e0d180d X-Google-Attributes: gid103376,public From: hbaker@netcom.com (Henry Baker) Subject: Re: Depending on passing mechanism Date: 1997/10/22 Message-ID: #1/1 X-Deja-AN: 284906086 Sender: hbaker@netcom4.netcom.com References: Organization: nil Newsgroups: comp.lang.ada Date: 1997-10-22T00:00:00+00:00 List-Id: In article , bobduff@world.std.com (Robert A Duff) wrote: > I'm surprised you still lurk here. ;-) 'lurk' is probably an appropriate word ;-) > Then there's Java, which is about as deterministic as you can get -- > namely, the core language allows nondeterminism only for concurrent > threads (btw Ada does better here). But the libraries do whatever > who-knows-who's windowing library likes, and of course some sort of > "nondeterminism" is introduced by the fact that various Java compilers > don't obey the Java standard (often deliberately). But at least the > semantics of plain old integer arithmetic and similar mundane operations > are nailed down. > > But Java pays an efficiency price for avoiding non-determinism. The problem with standards is that there are too many of them. (I don't know who said this first, but I agree with him/her wholeheartedly.) The major problem with 'loose' standards is that they serve the goals of the implementors (compiler vendors A,B,C,etc.) instead of the goals of the users. Compiler vendors want to make it _seem_ like there is a standard so that purchasing agents can do their check-box things, but compiler vendors want to be enough different so that they can a) grab the customer in the first place with some special feature, and then b) keep the customer through more-or-less gratuitous incompatibilities that would cost a fortune to track down, root out, and recertify. Java started out as a user's dream -- software that runs anywhere/everywhere without recompilation. But then every Java implementor starts jockeying for position, and M$ starts to either steal the show, or at least torpedo the progress by adding gratuitous incompatibilities of their own. Marketeers can't _stand_ highly flexible, retargetable, portable, scalable products, because they can't charge different customers different prices for the same thing. So they make restricted, non-portable products which are tightly constrained to live in a tiny box, so they can keep the customer similarly constrained. I never thought I would live to see the day when computer software -- the ultimate in scalable, emulable, portable stuff (thanks to Turing's Thesis) -- could be bottled, de-natured and emasculated the way it has recently been done by M$. Turing-capable 'shell languages', which could be used to make up for a lot of crappy user interfaces, have now been replaced with GUI's that can't be programmed at all, and repeated commands must now be physically given with a user's hands. No wonder we're all getting carpal tunnel syndrome! No wonder the Commerce Dept can't find any evidence that computer 'investments' produce any economic return! (Sorry about the free-association, but it is important to understand that technical issues are now completely irrelevant in the choice of computer languages or their features.)