Slashdot Mirror


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."

14 of 270 comments (clear)

  1. Mac user? by petree · · Score: 4, Interesting
    Q: Some corporate users have expressed an interest in using .Net for the front end and Java on the back end. How does that strike you?

    A: It's certainly the case that Microsoft pretty much has an absolute monopoly on the client. Certified and convicted. And so in some sense that makes it sort of easier for them on the client end. I think these folks would be amazed to discover how easy it is to write client software on the PC in Java. That works very well. 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.
    Interesting, I never thought someone who could run sun hardware all he wanted would choose to go with a mac. Especially with them not running the most current JRE (they -just- came out with 1.3.1). That's somewhat amusing. That's like Bill Gates running Windows NT 4.0. Everybody I know now wants a mac, either for OSX (geeks) and for how awesomely designed they are (geeks and non-geeks).
  2. Re:I liked this bit best... by wytcld · · Score: 4, Interesting

    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
  3. "relieved that it wasn't creative" by Dr.+Awktagon · · Score: 3, Interesting

    I don't know what to make of this:

    Q: Did you feel that way when you saw C#?

    A: Yeah. Yeah. I mean, abused and ripped off was also in there just to some extent. Relieved actually was part of it.

    Q: Relieved?

    A: That it wasn't particularly creative.

    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?

    1. Re:"relieved that it wasn't creative" by BWJones · · Score: 4, Interesting

      Why would he be relieved that MS puts out mediocre stuff?

      I think I understand why. It's because Microsoft in the .NET and C# arena are his competitors. For us, it would be like when a competing laboratory publishes a paper in an area we are investigating. If that paper is full of boneheaded conclusions and poorly designed experiments, it is somewhat of a relief that we are still on top of things and are producing the best work. However, I agree with you in that we all want the best products out there and the best science possible. The problem is that in the arena of operating systems and the internet, Microsoft has a monopoly and a LOT of money and resources available. The fact that they do have a monopoly means that there is very little impetus for innovation and truly creative thinking. The reality is however, that the superior Java solution is produced by the underdogs despite the overwhelming odds against them and should be refreshing to us all indicating that there is continued hope for the development of technology and computer science.

      --
      Visit Jonesblog and say hello.
    2. Re:"relieved that it wasn't creative" by tshak · · Score: 3, Interesting

      Well, you obviously didn't get the point of my post. You are giving me your opinions about C#, which quite frankly I don't care about. My point is that they are different languages, not that one was better then the other.

      If it isn't a Java ripoff, then why is everyone comparing it to Java?

      Maybe because Java is it's competitor?

      The fact is that Microsoft never innovated anything

      The fact is that you are so passionate about this personal conviction, that you could care less about any facts. Try to remain objective about this stuff - it's just technology!


      I've included an excerpt from John Gough, someone who's written a Component Pascal compiler for BOTH the JVM and CLR, and has written a book on the CLR (ISBN:013062296-6).

      [The CLR] "... like the JVM, is based on an abstract stack machine. Apart from this superficial level of commonality, the design of the two virtual machines is quite different."

      Of course, he's not in the middle of any debate, he's just giving some introductory history (from the P-Machine to .NET).

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:"relieved that it wasn't creative" by smallpaul · · Score: 3, Interesting

      That is flat out silly. Java provides object wrappers for it's primitive types.

      That doesn't negate his point. After all it would take a monkey fifteen minutes to create those wrapper classes. But you can't add two float wrappers to each other or do a "++" on an integer wrapper can you? So eventually you need to deal with wrapping and unwrapping. That's just plain silly and the only excuse for it is performance. If .NET gets similar performance without the primitive type hack then Java has no excuse.

      If you want to talk about non-OOP features, C# is full of them. Like structs for example. Who came up with that idea?

      There is nothing wrong with a language having features that are not OOP. OOP is not a religion. The problem with non-object primitive types is that you need to deal with wrapping and unwrapping them. Anyhow, there is nothing non-OOP about structs either. OOP *allows* encapsulation, it does not *demand* it all of the time.

      As far as Indexers go (and pretty much all the differences between Java and C#), they are just syntactic sugar that really just makes code confusing to read compared to Java.

      That's weak. Any extra syntax taht C# adds, no matter how simple or readable is "confusing." Look, I think C# and Java are tweedledee and tweeldedum. I hate them both. I have no reason to defend one over the other. But you are so blatantly partisan that you refuse to look at the few, tiny things that C# got right with fresh eyes. That sort of thinking will hurt Java in the long run because it will blind Java's developers and users to good ideas from elsewhere. You should use the things that C# got right to pressure Java's developers to fix their mistakes.

      In particular, Java could use a strong dose of syntactic sugar. C# is a little better, but just a little. For starters, I'd suggest you look at Python handles iterators, indexers, generators, and dictionary and list initializers. There is nothing I hate more than switching from Python to Java and realizing that I could write half as much code and it could be clearer. Even ignoring the static type checking system, Java seems to go out of its way be verbose. That iterator class crap is just unbelievably ugly.

  4. Re:Speaking of .NET... by Anonymous Coward · · Score: 1, Interesting

    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.

  5. .NET by Anonymous Coward · · Score: 1, Interesting

    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.

    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 .NET hype as a chance for the open software community. The web services/components standard does give us a chance to enter this area.

  6. Re:J2EE vs .NET by Anonymous Coward · · Score: 4, Interesting

    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).

    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 .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.

    There are probably better ways to do it but we haven't found it yet.

  7. "imitation" flows in both directions by Jan · · Score: 5, Interesting

    "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

  8. Gosling's and Sun's markting fluff by mmusn · · Score: 4, Interesting
    They could have been more careful about things like the memory model.

    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.

  9. Re:SUNW against the wall, this time for keeps by Derkec · · Score: 3, Interesting
    They are totally admitting that Linux is chewing up their low end. That's why they've decided to get serious about Sun Linux which is a fairly standard linux distro with Sun interop built seriously. They take their big Sun wide initives, for instance N1 and port them into a linux distro. Then they push Sun Linux boxen (probably x86) to cover the datacenter fringe. They can sell these at a bit of a premium because they will work so nicely with the big Sun hardware deep in the datacenter. Sun protects is lower flank with it's own Linux distro while continueing to attack IBM with Solaris and Sparc at the high end.


    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 .Net developers, java would be ahead by leaps and bounds. Meanwhile, MS has recognized that it is hated by recent graduates who are flocking in droves to Java. Server-side Java and J2EE has an install base which makes .Net look like a weak late comer. The MS marketting machine kicks ass, so Sun has a run for it's money, but again it's got allies like IBM, BEA and Oracle. Many of these companies compete with eachother fiercely (IBM has got to be in Sun's top 3 competitors) but can align to try and create a bigger non-Wintel pie. Then they'll fight tooth and nail for pieces of that pie.


    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.

  10. Re:"Hi kettle, my name's pot!" by smallpaul · · Score: 3, Interesting

    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.

  11. Re:SUNW against the wall, this time for keeps by dgroskind · · Score: 3, Interesting

    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.