James Gosling On .NET And The Anti-Trust Trial
gwernol writes: "There's a short but interesting interview with James Gosling over on ComputerWorld. He talks about the differences between J2EE and .NET and also about the Microsoft anti-trust trial. Some interesting perspectives from the founder of Java."
"They certainly could have been more creative about the language."
This coming from someone who tries to pretend he was inspired by smalltalk (since its more OO pure) even though its plainly obvious to anyone who knows jack shit about languages that the Java object model is a strict subset of C++'s. I mean, in smalltalk, things like reflection and introspection fall out of the way the object model works. In Java, its a bag on the side, because Bjarne didn't design it into the C++ object model, which Gosling stole wholesale.
Then lying about it and criticising others... This man is obviously incapable of feeling shame.
The worst part of it is that there are millions of "developers" out there who only know Java (or more often: switched to Java from Visual Basic) who simply accept Sun's marketing as fact.
From this comment in the article: And from a personal point of view, I personally actually read the [Windows] XP license and decided I couldn't sign it. So I've been shifting over to Mac.
:-P) and there is even a movement to create a Trusted Darwin http://www.stosdarwin.org/ . This could be a real opportunity for university CS departments to adopt a platform that really does support Java instead of the Win boxes that so many universities seem to be purchasing for their CS programs.
This is very interesting and parallels what we and others have been experiencing. There is this slow but dramatic sea-change taking place in the community of scientific computation and programming communities. Folks that never before would even look at a Mac are moving to the platform for a variety of reasons including its UNIX core and ease of use. Additionaly it seems that Apple is actually listening to their users these days. They include features requested and the open source Darwin allows for significant development from the community (assuming you are old enough to sign the agreement
Visit Jonesblog and say hello.
This is Sun propaganda pure and simple. I can't wait for a headline on the front page telling us that Coca-Cola says new Pepsi is disappointing. When Microsoft have made less-than-favorable remarks about Java in the past it has instantly been flagged as FUD.
I suggest folks take Sun PR and Gosling's remarks with a grain of salt. Evaluate the technologies for yourselves and decide accordingly.
Linux is totally chewing up their low end. They don't want to admit it straight out - they have been playing nice with open source folks while quietly taking Cobalt off of the market and making it a bit player.
Meanwhile IBM is taking it apart at the high end with a proposition that focuses as much on services as hardware and software..because IBM knows billable hours are where the real renewable revenue is.
On the architecture side, Sun is pitting itself against an entire enconomy - Intel and Microsoft. Sun simply can't outresearch, outspend or outmarket either of these companies, let alone both of them and their attendent co-competitors (Dell, AMD, HP, etc). Once Microsoft gets Win2k up to par in every respect with Solaris (it will happen), they will start peeling high-price clients off of Sun with little contest (meanwhile linux will chew up Sun's low end more and more).
On top of all of this, they're playing mindshare catch-up with the half-hearted JavaOne. Sorry James, MS beat you to the punch on webservices by a year.
I just hope Java can't be opened up enough that it doesn't evaporate along with its owner.
wish i could look... what will happen if i start working on a GNU project and the code accidentally looks like something from microsoft? i don't want to find out. =)
bah. start over
It just comes down to this: which would you rather have happen?
- the Bad Guy sees the error of his ways, and turns to Good.
- the Bad Guy suffers his deserved damnable fate, and his victims are avenged.
The second one makes the best pop fiction and is the most emotionally satisfying. The first one is good in a morality play and is the most attractive to a cold objective intellect who just wants to make the world better.But before you choose the first option, consider this: the real world is complicated, and there are shades of gray. The Bad Guy will never fully convert; he'll just do enough to get off the hook.
It's not realistic that a Creative Microsoft would create good software and make computers stop sucking. It's a lot more plausible that they would come up with something that most people consider "good enough", and there is little that can damage progress more than that. The secretary in my office has trouble with MS Explorer (the desktop .. well .. actually the web browser too, but not as much) and the boss has trouble formatting stuff in MS Word -- but they never give up and decide to try something else. Maybe if MS products were 1% worse, everyone would be using something 300% better.
I'm glad MS products are so unusually poor instead of merely being average in the face of great alternatives, and I sometimes just can't help snicker with satisfaction when people struggle with that crap. Sure, some of it is due childish pettiness and bitterness on my part, but it's also due to the hope in my heart that the user's pain will be so great that he will finally wake up from the nightmare. Nothing would thrill me more than to hear someone suddenly scream, "I'm mad as hell and I'm not going to take it anymore!" So keep sucking, MS, because the more you suck, the sooner, louder, and more glorious the chorus of screams will be.
Who knows, maybe Apple could convince Sun to turn into a major customer now :-)
Indeed. There is no doubt that Gosling is a very bright guy, and has a track record of interesting technologies. But all this interview proved is that even smart people can have blind spots and be stupid.
I mean, he can't find ANYTHING positive to say about the technology? How about the multi-language support? And most of even the strident critics of Microsoft who are honest have to admit that there are some interesting ideas in C#.
They might have done something creative around ... integrating business logic into the language ...
Business logic in the language??? Hey Gosling -- that's the advantage of MULTI LANGUAGE SUPPORT. There's this language called COBOL. Maybe you've heard of it. It has PILES of business logic built into the language.
And, I mean, the fact that the syntax [of C#] is so much -- is like exactly the same, or just about exactly the same [as that of Java].
That's such bullshit. Yeah, and I could also say that "... the syntax [of Java] is [...] just about exactly the same as that of C++". Their both C++ derived languages. Of course they're going to look similar.
The difference is that C# has fixed some of Java's brain damage, one of which is the lack of an unsigned data type which is just unforgivable.
All that proved to me is that Sun is really, really frightened about the potential of .NET. Java is an interesting platform, and an interesting language. But there's a huge opportunity for someone to come in with better solutions, and Sun knows it.
Sometimes it's best to just let stupid people be stupid.
While I am certainly biased against anything Microsoft tries to cram down my throat, I don't think this article is any better than the crap we usually see from Microsoft flacks.
Slashdot should really try to find some better quality articles if they want to have a content rich site.
The answer was too obvious, but too often ignored and the question, if not met with an informed response soon enough would have painted us into a corner. We have to support users on a variety of platfroms, hence Java, or simple HTML forms with asp or servlets on a server will accomplish our goals. Writing client apps in .net means we can only support that portion of our customers who use a current enough OS to support .net Yeah, looks pretty until you start looking at the fact there's a few million legacy computers and macs in the world you won't be able to do squat with. No thanks. .net is dead and buried for now and I mean to keep it that way.
Microsoft's damnable marketing buzz is dangerous, because too many people hear it and just leap at it, because it sounds like a great solution. Too few stop to think things through, often those who know too little about their whole market and end users.
Now this isn't necessarily a Java good, .net bad, thing, it's more of a 'don't jump on the latest bandwagon' thing. For my 2, though I'd be happy with J2EE because it's established, which .net is far from and risky because of it.
A feeling of having made the same mistake before: Deja Foobar
You've got to be kidding!
C++: Multiple inheritance is allowed, and there is no singly-rooted hierarchy.
Java: Classes can inherit from only one base class but can implement an unlimited number of "interfaces". The language imposes a singly-rooted hierarchy. The root class is java.lang.Object, whose instance methods include equals, hashCode, and toString.
C#: Classes can inherit from only one base class but can implement an unlimited number of "interfaces". The language imposes a singly-rooted hierarchy. The root class is System.Object, whose instance methods include Equals, GetHashCode, and ToString.
Sure, Java and C++ have some syntactic similarities between them, but nowhere near as many as Java and C#.
A few things here:
.NET in general is just another in the cycle of forced upgrades. Before you used VB, now you use VB.net. In another 4 years you'll use something else. Of course, all the good ol MS apps will still be written in C++ all along. The primary reason to use MS products is always the same: "everyone else will." Which of course is self-fullfilling prophecy.Everyone believes that so everyone jumps on board.
#1: To the person talking about financials and MS being a "pyramid scheme." In a way this is true, but this is common practice today. If you look at a company like Cisco, if you count stock options they lose huge amounts of money, but if you don't count them they make money. Stock options are very easy to abuse from a financial reporting standpoint. The key is, when people cash in those options the company has to either buy them back at the market price, or must simply have the options on hand, when they could have sold the shares for much more. Paying someone in options is like paying Hershey's employees in candy bars - in the end it's still money spent.
#2: What Gosling was saying about C# being a rip-off is true. Java may not have done anything new but it at least combined some syntax and pieces in a new way. C# is a straight port of Java for the most part. Java is NOT a copy of C++, it is a copy of a hodgepodge of things. Whereas C# really is just a copy of Java.
#3: Safe vs. unsafe code. People are being very naive about this. How many web pages do you go to that give you the warning "this page blah blah unsafe..." Yet you still enter that credit card number. Marking code as "safe" or "unsafe" is irrelevant. This is what will happen: people will write unsafe code, and it will be common enough so that end users will have to use it. The same thing happens with ActiveX controls. How many people honesty won't run an unsafe ActiveX control? Or a program that uses unsafe Word macros? The other day I had to change my security level in word so I could use a documentation tool - and I went right ahead and did it, and so will everyone else!
The fact is, if it's easy to write unsafe code, people will write it, and then users will have to run it if they want to use that product or service. Marking it safe or unsafe makes no difference at all, the typical user will run unsafe code.
#4: Sun really does need to get it's act together. Good god there are so many Sun products, so many APIs and old APIs and new APIs and different "initiatives" it's impossible to tell what's what. For example JavaOne, how many people can figure out what actually is in there and what it does?
#5:
#6: MS has been found guilty of anti-trust violations multiple times. And they still get worse even as the trials go on! If I were a judge I would say "stop mocking these proceedings or I'll throw your ass in jail!" Most people who are for another weak settlement are people who just make vague arguments against the entire notion of anti-trust, something like "they're just trying to do what every company wants to do and be the leader. Stop whining!" Well, we *have* antitrust laws! And we have them for a reason. And if they apply to ANYONE, they apply to MS. MS protests that a harsh penalty could destroy the company? Well, when you get arrested for murder and put in jail for life that pretty much destroys whatever you had going at the time. It's called "punishment." That's the point! If you can't stand the punishment, don't commit the crime, not once, but twice even! That logic is akin to saying "I can't go to jail because jail is a nasty place." MS was found guilty, they didn't stop, in fact they got worse. A breakup to me is the only logical thing to do, they've shown they can't play by the rules. Yeah, that's "harsh." But, there is a simple way to avoid penalty: don't break the law! Yes Virginia, it really is that easy!
Hmmm...given that only "managed*" code will run in the CLR, I don't think that non-Java like languages will ever run in
*NOTE: I use the term "managed" here to refer to the fact that Microsoft has invented skinable languages. All CLR code must conform to certain rules before it will compile. This includes the single parent & no pointers stuff that keeps C/C++ from being used. This is also the reason that VB.Net is totally new and only looks like traditional VB. Basically, VB.Net is a skinned version of C#.
KangarooBox - We make IT simple!
And Sun really has a double standard there: when Apple exposes all their native platform APIs to Java, that's fine. It's just not fine when Microsoft does it.
Uff, how many times must this be explained - it's ok to expose any API to Java code - it's not ok to put that API in the java.* libraries fooling developers into thinking their code is pure Java when it isn't.
Imagine someone adding their own functions to the C standard library and advertising them as standard, portable C. How would you feel then?