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."
A: Imitation is the sincerest form of flattery.
Q: But isn't imitation also the sincerest form of mockery?
___
"with their freedom lost all virtue lose" - Milton
I don't know what to make of this:
Why would he be relieved that MS puts out mediocre stuff? I hate that the world is forced to use boring, insecure, ugly, embraced-and-extended software from MS. I want them to be creative.
Personally, I think .NET is pretty good, technologically. I like C# + CLR a lot more than Java, and infinitely more than C++.
But what troubles me is that it's got a Microsoft copyright on it, which is pretty much a guaranteed poison pill in my view, but that's another issue.
On the whole, we should hope for Microsoft to be "creative", that's the whole point, the whole reason we don't like them. As Steve Jobs said, "they have no taste".
Then again, I shouldn't expect unbaised answers from Gosling, eh?
The CLI and C# implementation are nice, but they don't allow you to use them for any commercial activity. Thus, it is a nice amusement if you want to waste your time.
The multiple languages engine of the .NET does not sound very delightful since it will only work well in MS environment. I don't know if there will be a port, but it won't be as good as the MS one anyway. On the front end side, the people who use .NET will be those VB, VC++, ASP developers. Of course, many programs will be migrated to web-based also. Other than the cross platform ability, I don't think many of us will consider the features of Java VM as critical. This should be the same for .NET.
.NET hype as a chance for the open software community. The web services/components standard does give us a chance to enter this area.
For the back end side, there are things like SOAP, UDDI. Everybody can work on these. I think the open source community will be happy with these, since we finally have something which can compete with the MS DCOM/COM+ stuff(cobra is not popular in the business apps area). The people worry about it are the Java guys/gals. However, even the J2EE or EJB stuff does not domainate the market, Java, as a computer language, still have its way to go.
I see the
You hit the nail on the head. Having just completed a .NET project and am now working on a J2EE project, the development environment for our J2EE product is like working with stone tablets and chisels in comparison. There is greater flexibility with the J2EE environment but there is tons of redundant work that we must do that the .NET environment takes care of for you. I would estimate that it takes about 3X the effort to write/deploy our J2EE product as it would if we implemented it in .NET (that is how I estimate the work for our schedule and so far it has been very close to that).
.jar file into two different places (JBoss and Tomcat) is a logistical nightmare. Add to this the fact that depending on which container you use, you have to have different XML files specific to that container to tell it what to do with itself. Even the smallest change can require quite a bit of work.
Simply getting several 'products' from different groups (JBoss, Catalina/Tomcat, etc.) to work together as well as dealing with a seperate edit/compile environment (JBuilder6 - no choice here), AND having to modify no fewer than 4 files (two Java source files and two XML files) by hand to simply add one field to an EJB (in ADDITION to the code you have to write to support it), AND having to deploy the
There are probably better ways to do it but we haven't found it yet.
"Imitation is the sincerest form of flattery"
While I have great respect for Mr. Gosling's prolific contributions, clearly this imitation goes both ways. For example:
Microsoft Transaction Server 1.0, shipped 12/96
* automatic transactions for objects, including Java objects
* ObjectContexts for automatic services on behalf of objects
* declarative transaction requirements e.g. Transaction Requires New
* declarative, automatic role-based security, and IObjectContext::IsCallerInRole()
* etc.
Enterprise Java Beans, 1.0 final spec shipped 1Q98(?)
* automatic transactions for Java objects
* SessionContexts for automatic services on behalf of objects
* declarative transaction requirements e.g. TX_REQUIRES_NEW
* declarative, automatic role-based security, and EJBContext.isCallerInRole()
* etc.
The provenance of the ideas behind EJB/J2EE, arguably Sun's most commercially important Java technology, would seem to be revealed in its choice of identifier names.
-- an ex-Microsoft software developer
There is nothing wrong with the C#/CLR "memory model". By default, it is safe, just as in Java. If you write an unsafe model, the memory model is unsafe, just like it is in Java. Oh, you say, Java doesn't have unsafe modules. But it does. They are called "JNI". The only difference to C#'s unsafe modules is that JNI is less efficient and harder to program. (Both Java's and C#'s security models label unsafe code as such.)
I guess one of my pet areas is scientific computation. They might have done something creative to make that easier.
This is adding insult to injury. C# has value classes, operators, multidimensional arrays, and easy and efficient interfaces to native code. Sun and Gosling have been promising some of those features for years and failed to deliver on even the simplest of them. The best we are getting is a cumbersome proposal from IBM for multidimensional arrays that most implementations will probably not even bother to optimize.
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].
Well, gee, what a coincidence. Microsoft thought Java was a great idea, but they wanted to have their own libraries. Sun sues them. So, they did the next best thing: they cloned Java as much as they could, fixed a bunch of small things Sun has been promising to fix for years, and called it C#. What does Gosling expect Microsoft to do? Just roll over and die? 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. Who's going to get sued next? What can open source developers do with Java before Sun is going to try and sue them?
I am no friend of Microsoft, and I won't use a Microsoft-only platform. But I am really getting tired of the marketing fluff coming out of Sun. When Java originally came out, Sun was promising a well-defined, open, standardized, and efficient platform. Today, it's a huge system with incompletely specified APIs, lousy support for high-performance computations, and no independent third party implementations (all compliant Java2 implementations depend to a large degree on Sun's source code). Sun has dropped out of every standardization process around, and they have been threatening others with lawsuits left and right.
I don't want to be tied to either a litigious Sun Java monopoly nor to a bundling Microsoft .NET monopoly. If Sun doesn't clean up its act quickly, after seven years of lobbying for Java and using it for lots of software, I'm dropping it. And I suspect others are getting similarly annoyed with Sun.
Furthermore, I think your assumption that MS will bring Win2K up to Solaris quality at the very high end is probably optimistic. Sun has breathed big server OSes for years, MS has failed miserably with datacenter approaches. They might pull it off, but this is an issue Sun has a long time to deal with. The other question is what box are you going to put MS on in the datacenter? Itanium? That's flopped so far, but it will be interesting to see if it improves.
While Sun may be outmarketted by MS, they have an odd ally. IBM is also a Java fan and does have the budget to go head to head with Wintel. While their R&D budget might be relatively small, they can focus on building a scaleable kick butt architecture while Intel has to try and build big servers and compete with AMD in the $600 computer market. With the Alpha engineers Sun swiped from a disarrayed HP-paq, they should be able to make it interesting.
I don't think they are really playing too much of catch up on the mindshare front either. I would imagine if you counted the number of Java developers and the number or
Yeah, Sun is in a tough spot, but historically that's when it has done its best work. I've become a big sun fan of late, and am really interested to see where they will go. The company needs to reinvent itself somewhat (mostly to kick butt in software and storage) but it has done that often enough before. It should be fun. Sun's an aggressive enough company that it won't go down without a fight, so again, it'll be fun to watch.
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.
The Java object model is a lot closer to the Simula object model which is much older and simpler than C++'s. I mean garbage collection is a pretty big part of the object model and Java has it and C++ doesn't. C++ has templates and Java doesn't.
The fall of Microsoft will be truly spectacular...
First, people have been making this statement for years for all the reason you gave and more. In all those years, people who continued to invest in Microsoft made money on the stock. In the stock market there's no skill in simply predicting a stock will fall. The trick is predicting when. There's no reason why Microsoft won't continue to defy the fundamentals for years.
Second, you seem to be equating the value of the stock with the stability of the company. Microsoft is a profitable company with a solid customer base. It in no way resembles Enron.
In fact, M$ would have _lost_ money in all of the past several years if they'd had to expense their stock option grants to employees!
So what? If the accounting rules had been different, presumably Microsoft wouldn't have used this loophole as a way to compensate its employees. Using tax laws and regulations effectively is a sign of good management, not bad management.