Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×
Sun Microsystems

James Gosling On .NET And The Anti-Trust Trial 270

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."
This discussion has been archived. No new comments can be posted.

James Gosling On .NET And The Anti-Trust Trial

Comments Filter:
  • J2EE vs .NET (Score:5, Informative)

    by Hemos (editor) ( 569506 ) on Friday March 29, 2002 @10:41PM (#3251401) Homepage
    I read this comparison [onjava.com] last November. The author, Dean Wampler, Ph.D., concludes the following:

    "The experimental flaws of the Microsoft tests render the performance comparisons unusable. All tests must be run on the same test bed and a more suitable application must be chosen. J2EE and .NET are most appropriate for large-scale, high availability applications. The documented tests say little about how well these frameworks support those applications.

    The .NET and Java Pet Stores support the same features, but they implement different "nonfunctional" requirements. The .NET version assumes a single hardware/OS/database combination and makes performance paramount. The Java version supports multiple hardware/OS/database combinations and ranks performance as less important. In fact, both frameworks can support either emphasis. Hence, comparing the two code bases is misleading.

    For developers who are comfortable with limited choices, .NET is a well-designed framework with good tools. J2EE provides greater freedom, but the J2EE community can't ignore the need for tools that create powerful and efficient applications in a timely manner."

    The Ultimate Linux Bookmark [monolinux.com]
    • On the money.
    • Re:J2EE vs .NET (Score:2, Redundant)

      by aminorex ( 141494 )
      Good post! Most serious readers will find Wampler's
      comparison more illuminating than Gosling's
      off-the-cuff boosterism, referenced by this
      slashdot topic. Whether I agree or disagree with
      Gosling's opinions in the interview -- in fact,
      I mostly agree -- they remain just that, almost
      pure op ed, rather than substantive comment.
      That's not a criticism of Gosling's (presumed)
      honest expression of his opinions, just a comment
      on the practical usefulness of the article.
    • ". . .the J2EE community can't ignore the need for tools that create powerful and efficient applications in a timely manner."

      Indeed. Perhaps that tool could be (to Mr. Gosling's dissapointment) Eclipse [eclipse.org] or one of the IBM Websphere Studio products based on it, like WS Application Developer.
    • Re:J2EE vs .NET (Score:4, Interesting)

      by Anonymous Coward on Saturday March 30, 2002 @12:18AM (#3251708)
      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.
      • First, you are comparing freely available tools with a several-thousand dollar product from Microsoft. The product will do more hand holding, which will be convenient until you need to do something outside of the paradigm of the product. A fairer comparison would be with the latest versions of WebSphere or BEA's app server.

        Second, does your application need to be a web service, or will some other IPC do? If it doesn't need to be a web service, you are going to a lot of extra trouble in the Java implementation.
      • Re:J2EE vs .NET (Score:2, Informative)

        by md17 ( 68506 )
        This is just FUD!!! If you are a Java Developer this stuff is trivial...
        1) Use Forte / Eclipse / Netbeans to build your app.
        2) Download JBoss 2.4.4 with Tomcat.
        3) type something like tar -zxvf jboss.tar.gz
        4) type somthing like jboss/startup.sh
        5) copy your .ear to the jboss/deploy dir
        6) Browse to localhost/myapp

        It really isn't that hard. Come on people. Please quit bashing J2EE speading FUD about how difficult it is. It really isn't.
      • Okay, I'll bite. (Score:5, Informative)

        by Stu Charlton ( 1311 ) on Saturday March 30, 2002 @12:00PM (#3253807) Homepage
        - You're using J2EE. That implies you probably should be using JBuilder 6 Enterprise which has numerous J2EE features for automating configuration of EJB's. If you're not using the enterprise edition, then your comparison is lacking in credibility, as Visual Studio .NET enterprise edition is approximately the same price.
        - You have to edit four files to add a field to an EJB? Let me assume for a minute that you're using container managed persistence, which is the only scenario that would require such changes. Most tools will allow you to define the new field in your local interface, and will then propagate that field to your implementation class and your ejb-jar XML file. The second XML file, I will assume, is a custom deployment descriptor. Again, I would hope you're using a vendor's tool to manage this thing. But even if not, I find your indignaton towards all of this "work" somewhat amusing.

        To put this tremendous amount of work in context, how much work does it take to add a field to a regular database table wtih a SQL call in JDBC, or for that matter, ADO.NET? That would require:
        - doing a DML statement on the table to add the column at easiest. In some environments this may require several DML statements to create the new table, re-populate it with old data, populate it with the new column's data, then drop the old table and rename the new one.
        - changing 1-2 method call signatures to take in extra parameters for inserts and updates.
        - changing the JDBC code for reading, updating, and inserting to take the new field into account
        - possibly adding the field to a data object that holds the data in memory.

        Phew! I'm glad there's alternatives to EJB, it's so much easier without it.

        Now, on to the next cow:
        Deploying a JAR to two different places (jBoss and Tomcat). Firstly, I question what the problem is. You would deploy an EJB JAR to a jBoss instance and a WAR to tomcat, or you could just put it into one big EAR file and fo'gettaboutit. If you have two servers, then the ant optional tasks package could very easily do this work for you with approximately 3 lines of XML configuration.

        The best part about your post is that "there probably are better ways". Yes, there are. Hire a consultant for 3 or 4 hours to help you out, it will probably be worth the $1000+. If you're missing GUI tools for jBoss, that would be because it doesn't really have any. Use a commercial server if you're not willing to hand-craft your config & deployment.

  • Mac user? (Score:4, Interesting)

    by petree ( 16551 ) on Friday March 29, 2002 @10:42PM (#3251403) Journal
    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).
    • Gosling doesn't run *release* JDKs, silly goose.
      He runs alphas. There's always an alpha inside sun.
    • Re:Mac user? (Score:2, Informative)

      by blukens ( 27693 )
      If you're refering to this arcticle [slashdot.org], it's worth noting (yet again) that 1.3.1 has been out for OS X for nearly six months now. That was just a bug fix update, and therefore it was hardly -just- released. Which isn't to say that Apple isn't at all behind the Java curve, but it's not as bad as some make out. It has also been stated [apple.com] that Apple will preview 1.4 in May at the WWDC, and that they hope to be in sync with Sun by the release of 1.5.
    • Re:Mac user? (Score:2, Insightful)

      by roseanne ( 541833 )
      Sun has a poor record in using its own products. Sure, McNealy uses a Sun Ray, but most of the Sun sales folk seem to be very attached to their Windows 2000 laptops, MS Office (though Sun internally supports only Star Office) and IE (which is a shame -- Mozilla's mature enough, I think).

      Who knows, maybe Apple could convince Sun to turn into a major customer now :-)

  • Speaking of .NET... (Score:5, Informative)

    by Flarners ( 458839 ) on Friday March 29, 2002 @10:42PM (#3251404) Journal
    Microsoft released their shared-source CLI and C# implementation [microsoft.com] a couple days ago. I've been playing with it on my FreeBSD box, and while it's hardly the Java killer Microsoft's making it out to be, it's an interesting piece of work. If you've got a spare FreeBSD or Windows XP box lying around, download the source, compile it and play around with it some; it's always nice to know something about the platform before you start bashing it mercilessly :-)
  • by Anonymous Coward on Friday March 29, 2002 @10:45PM (#3251426)
    "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.
    • 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.

      • There are garbage collection implementations for C++ -- several actually. Or did you mean a standard garbage collection method?

        And Java does have templates. Check out JSR014 and the work done by the authors of Pizza [avayalabs.com]

  • Java on OSX (Score:5, Insightful)

    by BWJones ( 18351 ) on Friday March 29, 2002 @11:01PM (#3251497) Homepage Journal
    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.

    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 :-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.
    • What's happening to Slashdot!?! Just after seeming to recover from rabid Linux activism, it's been invaded by people who'll plug the Mac at any opportunity! You don't seem to mention that other platforms often support Java pretty well too.

      I'm beginning to find all this Mac activism annoying. I mean it was annoying with Linux, but at least I could understand that as it has an advertising budget of next to zero, so it relies purely on word of mouth to spread. But Apple spend so much on marketing that I can't walk down the street or turn on my TV without being told to think different.

      Please - feel free to promote the Mac, but at least in stories that have some relevance. I don't care what the java support on MacOS X is, if you use Sun's VM it's good on Windows, and ditto for Linux. So what?

      • What's happening to Slashdot!?! Just after seeming to recover from rabid Linux activism,

        Dude, deal with it. One of the reasons Slashdot is here in the first place is for Linux activism and promotion.

        it's been invaded by people who'll plug the Mac at any opportunity!

        Once you try OSX, you may never go back. It's a pretty sweet experience. :-)

        I'm beginning to find all this Mac activism annoying. I mean it was annoying with Linux,

        Then why are you here?

        Please - feel free to promote the Mac, but at least in stories that have some relevance. I don't care what the java support on MacOS X is, if you use Sun's VM it's good on Windows, and ditto for Linux. So what?

        This does have relevance in that Microsoft has long since stopped supporting true Java in favor of a bastardized version that only works with Windows. The true beauty of the Java concept was that it is cross-platform. This means that we can use Java on Windows, Linux, Irix, Solaris and the Macintosh. If Microsoft has their way, Java in its true form will cease to exist and we will be stuck with C# that only works within the Windows paradigm thus handicapping many potential features and leaving innovation in the trash can.

  • Interesting, how? (Score:5, Insightful)

    by szcx ( 81006 ) on Friday March 29, 2002 @11:02PM (#3251501)
    Some interesting perspectives from the founder of Java
    Oh yes, very interesting. The founder of Java doesn't think competing technology is as good as his technology.

    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.

  • by Dr. Awktagon ( 233360 ) on Friday March 29, 2002 @11:04PM (#3251507) Homepage

    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?

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

      Two words: "Stock options".

      Here's another, perhaps less mercenary, but also
      less rational, explanation:

      Many anarchists vote for the worst candidate, on
      the theory that when gov't becomes bad enough, it
      will be eliminated.

    • by BWJones ( 18351 ) on Friday March 29, 2002 @11:23PM (#3251561) Homepage Journal
      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.

    • by tshak ( 173364 ) on Friday March 29, 2002 @11:52PM (#3251656) Homepage
      Yeah. Yeah. I mean, abused and ripped off was also in there just to some extent.

      I do find it obvious that there are some things in C# that are like Java. However, it seems to me that this is generally moot considering both languages where heavily inspired from C++. When you do your homework, you find that C# is actually quite different the Java:

      + C# is completely OO - even an Int32 is an Object. Java uses primitive types.
      + C# uses Delegates for Event Handling (think function pointers, but different).
      + C# supports the use of Properties instead of Getter and Setter methods.
      + C# supports Indexers which allow objects to be treated as Arrays.
      + C# forces explicit Method Overriding (via the virtual/override or new keywords).
      + C# supports namespaces. Unlike Java's packages, namespaces do not rely on a file/folder structure.
      + The C# Abstract or "Virtual Machine" (CLR) is not designed for C#, rather for language neutrality (to an extent). Java and the JVM, however, are closely tied.

      I could go on. Whethor or not you think that these differences are Good Things(tm), the point is, they are definitely different langauges. Although there may have been some inspiration from Java, I'd be hard pressed to call it a "Java Ripoff".
      • + C# is completely OO - even an Int32 is an Object. Java uses primitive types.

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

        If you want to talk about non-OOP features, C# is full of them. Like structs for example. Who came up with that idea? And how about pointers? WTF? 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.

        The C# Abstract or "Virtual Machine" (CLR) is not designed for C#, rather for language neutrality (to an extent). Java and the JVM, however, are closely tied.

        That's a hoot! The fact is that CLR doesn't support anything that can't be accessed from C#. That's why implementations of other languages have had to drop features like multiple inheritance before CLR implementations. All CLR does is provide a Procrustian cot for other languages to lie on. Head over the top? Lop it off!

        There are many programming languages available for the JavaVM, including Lisp, Scheme, JavaScript, JPython, Prolog, and Eiffel. The fact is that the JVN is very little, if at all more language centric than is the CLR.

        Although there may have been some inspiration from Java, I'd be hard pressed to call it a "Java Ripoff".

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

        The fact is that Microsoft never innovated anything - and C# is just another Microsoft clone of somebody else's real innovation, plus marketing spin.

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


            Oh baloney. The FACT is that C# and Java are closer than any other two languages I have ever seen, in fact C# is closer to Java than versions of the SAME language in many cases (say FORTRAN 77 and FORTRAN 90 for example).

            The FACT is also that if you take a close, hard look at Microsoft products, you are going to have a HELL of a time finding any single product feature that wasn't done somewhere else first.

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

            And the point of this is exactly what? The author of this statement is biased? How can you can possibly state the fact that underlying structure of both the JVM and CLR is an abstract state machine 'superficial'? This is in fact the most FUNDAMENTAL commonality that you could possibly have in such implementations. How can you not realize that?

            • OK, since apparently Java is great and C# is not because it is not innovative. Tell me, oh wise one, what features are in Java that were not done "somewhere else first"? (Be sure to look very hard)

              Does this lack make Java bad (no)
              Does this lack make Java non-innovative (nope)
              Does this make C#/.net innovative (I don't know, I have not decided yet)

              In software, innovation comes from the combination of known things, not something completely new (software patents bad, copyright good). Java was innovative because it combined a lot of features into a well-conceived whole. Even though Java started off as C++, it was developed into something much more interesting.

              C# steals most heavily from Java, Delphi, C++, big deal. Java stole most heavily from C++, big deal. Everything OO steals from SmallTalk, Simula. All of these stole from Algol and FORTRAN.

              For Gosling, C# is crufty because it allows you to break the rules (pointers, defeat the default garbage collection). For me C# is good because GC is the default, and you have to declare your intention to break the normal rules. Great poets break the rules of good English, but they learned the rules first, and then decided to break them for effect.

              For me, I've broken the rules when standard techniques don't work well. If you are a good programmer (a reasonable assumption) then you have probably broken the rules too. Elegance is often sacrificed on the alter of necessity.

              Seems to me that I recall Java allowing you to make calls to native code (JNI), mostly for the same reasons (flexibility & legacy code). I believe Gosling was being just a touch biased. I believe we are both smart enough to see that. And I'm certain we are both smart enough to see bias when one of the MS minions says something.

              AFAIK, there is something innovative in C#, feel free to correct me, I'm probably wrong. In that C# gives you the declaritive ability for unsafe coding techniques. Sounds wierd when I say it, but this seems innovative to me. I don't have to switch from Java to C (2nd language, somewhat clunky) in order to break the rules, yet I don't have a language (C/C++) where unsafe coding is in abundance.

              You might even note bias in what I have said. I prefer to think of myself as biased towards the truth -- an objective observer. You may perceive me to be a sycophant for MS.

              Really, it's OK by me. My self-perception does depend on your viewpoint. But, as we try to develop our own self-perception, it generally makes sense to listen to the viewpoints of others. Occasionally, someone else is right. Maybe even Microsoft -- even if so, good software does not imply righteous company.
        • by Carnage4Life ( 106069 ) on Saturday March 30, 2002 @02:42AM (#3252260) Homepage Journal
          That is flat out silly. Java provides object wrappers for it's primitive types.

          Object wrappers for primitives is not the same as the primitives themselves being treated as objects. Anyone whose used a true OO language like Smalltalk cringes and the inconsistency in Java between primitives and objects. Even C++ tries to make them as interchangeable as possible especially with templates.

          For instance in Java there's no way to pass just a primitive like "5" or 2.6 to a method that takes an object while in C# and Smalltalk you can.

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

          The above comments how that you've somehow confused object oriented with Java which unfortunately are not the same thing. An object oriented system has 3 main qualities i) encapsulation or information hiding ii) inheritance and iii) polymporhism. All three of which can be done with C# structs (or value types). Secondl, I am immensely confused what the existence of an explicit pointer type has to do with whether a language is OO or not.

          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.

          Really? So
          Math.Add(myList.getObjectAtIndex(0), myList.getObjectAtIndex(1));
          is easier to read than
          Math.Add(myList[0], myList[1])
          On what planet?

          That's a hoot! The fact is that CLR doesn't support anything that can't be accessed from C#. That's why implementations of other languages have had to drop features like multiple inheritance before CLR implementations. All CLR does is provide a Procrustian cot for other languages to lie on. Head over the top? Lop it off!

          The Java VM was designed to run Java while the CLR was designed to be language agnostic. The fact that C++ can run on the CLR is a testament to this fact.
          • The Java VM was designed to run Java while the CLR was designed to be language agnostic. The fact that C++ can run on the CLR is a testament to this fact.

            The CLR is *syntax* agnostic. Not really the same thing.
        • 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.

      • + The C# Abstract or "Virtual Machine" (CLR) is not designed for C#, rather for language neutrality (to an extent). Java and the JVM, however, are closely tied.

        It will be years before we know whether non-Java-like languages actually run better on the .NET runtime than on the C# one. Don't believe Microsoft's PR.

        • It will be years before we know whether non-Java-like languages actually run better on the .NET runtime than on the C# one. Don't believe Microsoft's PR.


          Hmmm...given that only "managed*" code will run in the CLR, I don't think that non-Java like languages will ever run in .NET.

          *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#.
    • Where do you get the dea that Microsoft has a "copyright" on .Net? They do own soe patents on the way the technologies work, but that is nowhere near a copyright. .Net has been submitted to the ECMA, and if M$ has it copyrighted projects like Mono, which already has a working C# compiler, wouldn't be able to exist. [go-mono.com]

      • Where do you get the dea that Microsoft has a "copyright" on .Net? They do own some patents on the way the technologies work, but that is nowhere near a copyright. .Net has been submitted to the ECMA, and if M$ has it copyrighted projects like Mono, which already has a working C# compiler, wouldn't be able to exist.

        You can only copyright an implementation. The copyright is automatically granted by law on someone's work, so MS has the copyright on their implementation of .NET. All the .NET-api's have not been submitted to the ECMA, only the C#-stuff. So there is no open standard that you can use to implement .NET on various platforms. If Mono wants to support the apps that run on .NET it will have to reverse engineer like Wine. .NET is just as proprietary as COM or Java.
  • by igrek ( 127205 ) on Friday March 29, 2002 @11:16PM (#3251541)
    What a disappointing interview... Could you expect something as boring as this from, say, Larry Wall? Never. Or when Stroustrup criticizes Java, he has some valid (and interesting) arguments. But I have not found any insights in this Gosling interview. Microsoft sucks and J2EE rules. How interesting.

    The funny thing is that he says
    1) They copied everything from Java
    2) They could add clever things to their language, but they didn't

    Well, at least, he's honest about Java ;)
    • Yeah, I think Gosling doesn't understand how to use
      the press. You don't talk *to* an interviewer, on
      their (how low can you go?) level. You talk
      *through* them, use them as a bully pulpit to reach
      your target audience.

      (Or perhaps he's a Kantian, and is obligated to
      treat all moral patients as ends rather than as
      means.)

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

    • Disappointing is definitely the word.

      I saw James Gosling speak here in Madrid not too long ago and I can say that I was completely disappointed. His answers to questions were blunt, uninteresting and usually condescending - sometimes even just repeating the question as an answer or just blowing it off entirely.

      From what he himself said, he seems to have not paid much attention to what's going on with the Java language since helping create it... That is to say, he put all his eggs in the Jini basket, and when that tech failed to catch on, he was lost. J2EE, web services and J2ME? Nada. It was obvious from his speech and answers to questions that he doesn't have a clue.

      The worst part was that he didn't seem very technical any more. He's into management and evangelism and all that and avoided specifics whenever possible. Thus, from now on I feel I can safely discount anything I read in the press from him because I know he's just bullshitting (which is obvious from this article too...)

      -Russ

  • by Ars-Fartsica ( 166957 ) on Friday March 29, 2002 @11:28PM (#3251576)
    Gosling and McNealy need to tone down the vitriol - Sun is in major trouble. Not just a bad quarter (although they've had many of those), but key aspects of Sun's market position and future directions.

    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.

    • Actually, Dave Winer beat them to the punch by two
      years.

      According to analyst reports, 40% of web services
      will be microsoft-owned over the next 5 years,
      40% will be Java-backed SOAP/XML-RPC, and 20% will
      be also-ran.

      As regards Sun's stock values, while there is a
      correlation with server market share, it's really
      surprisingly low. Sun can save it's butt one of
      two (and probably by a mix of both) ways:
      The burgeoning embedded Java business, and putting
      out really butt-kicking CPUs and interconnects for
      their large SMP and NUMA boxes. The volumes on
      the first of those are huge, and the margins on
      the second of those are similarly huge.

      Sun looks bad right now because they were a
      primary bubble stock. In fact, their P/E ratios
      and prospectus are quite sane and robust now.

      Vitriol gets press. Vitriol directed at microsoft
      is also a moral imperative. Why tone it down?
      But it doesn't deserve a slashdot story, that's
      for sure.
    • 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.

      I guess you missed the part where Sun announced that they'll be shipping Linux and supporting Linux sometime midyear. I'd say that amounts to "admitting it straight out".

      Once Microsoft gets Win2k up to par in every respect with Solaris (it will happen)

      By the time Win2k reaches Solaris 8/9 levels, Solaris will have moved on. They haven't caught Solaris yet; the only chance they have is if Sun just goes out of business.

      • I guess you missed the part where Sun announced that they'll be shipping Linux and supporting Linux sometime midyear.

        Then they just committed suicide. There is absolutely no compelling reason to use Sun hardware for linux. At the low end you can get better price performance. At the high end you can pop linux on an IBM mainframe and get not only the top end of hardware but a superior services force.

        Thats the crux of the issue for Sun - they're damned if they don't support linux, but doubly damned if they do - they're more or less endorsing commodity solutions, which will ultimately lead to commodity hardware.

        • At the high end you can pop linux on an IBM mainframe and get not only the top end of hardware but a superior services force.

          Right. You work for IBM and I work for Sun. Either that, or you've been doing some really heavy koolaid drinking.

          I do work for Sun. I have supported customers who went to Sun for database servers after IBM failed repeatedly to provide the "high end" solution they needed. I have had these same (very demanding) customers tell me that the reason they like Sun is that the field support organization blows the doors off of IBM's capabilities.

          I've also supported customers whose primary admin workforce were IBM Global Services people. With a few exceptions where IBMGS hired on staff that already worked at the site, IBMGS was difficult to work with, and frequently not very organized. I've seen cases where the customer specifically asked for something to be fixed and IBMGS stood directly in the way, insisting that it wouldn't work (it did in the end) or that since it violated some policy the fix just wasn't acceptable (let's see...fix a critical problem, or adhere to the letter of some bureaucratic policy created without this situation in mind?)

          Then there's this "linux on a mainframe" concept, which really doesn't make much sense. You've got Linus saying he doesn't care to make the kernel scale past 4 procs. Which isn't to say it never will, or that no one is working on it, but it sure doesn't speak well for the priority of making Linux well on big iron, no matter who the hardware vendor is. A dozen tiny little 1 - 4 CPU instances just aren't the right answer for a lot of classes of problems.

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

  • by TheFlu ( 213162 ) on Friday March 29, 2002 @11:39PM (#3251608) Homepage
    Here is an interesting article [com.com], describing how Microsoft is trying to get Java developers to write J# (java) code for the .NET platform. Unfortunately .NET only runs on the Windows platform, which has Sun a bit upset.
  • by evilpaul13 ( 181626 ) on Saturday March 30, 2002 @12:00AM (#3251689)
    And it basically just sounded a lot like a very smart guy bashing Microsoft.

    I personally doubt .Net could completely lack any real redeeming qualities or there wouldn't be projects like Mono attempting to provide a *NIX platform compatible Common Runtime.

    In the same way that if Java was horrible no one would have made third-party JVMs, like Kaffee (sp?).

    But, that's just me I could be wrong (and wouldn't that be tragic?)
  • by Jan ( 7105 ) on Saturday March 30, 2002 @12:58AM (#3251831)
    "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
    • 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.

      And just like the folks pointing out that similarities between the languages are likely due to their common heritage (C++), it's probably worth pointing out that the similarities here have to do with the attempt to solve the same problems. Yee haw. Ain't this fun?

    • Unfortunately, MTS was based on COM, which was a fundamentally broken technology for the creation of business objects--the biggest flaws being that it was single platform, stored the object metadata in that registry abomination, and was unable to propagate exceptions across object boundaries. COM pretty much only worked as a native interface layer for VB.

      After five years, Java's inroads in business application development finally persuaded Microsoft to abandon COM. They didn't want to become just another Java vendor, so they cloned Java and gave their version some marketing spin to try to lure people back to a single vendor solution.

    • J2EE is not EJB, and the ideas behind J2EE model really have nothing to do with MTS.

      On the EJB hand, you're quite right, they borrowed heavily from MTS. But I would claim that MTS was beta-quality software until at least 2.0, and didn't support object pooling until COM+'s release. EJB 1.0 servers were doing that around the same time, and while many were crappy, there were production quality ones out by late 1998 (WL 4.5, Gemstone, Persistence, etc).

      In the story of MTS vs. EJB, it really was a story of execution. MTS and COM+ were slow to mature, and didn't take off at all. Which is one of the driving factors behind .NET.
    • Maybe, but a lot of similar stuff was in the CORBA Transaction and CORBA Security specs, particularly the JTA and JAAS-level interfaces and the on-the-wire representation of transaction and security contexts.

      JDBC vs. ODBC would probably be a better example of J2EE borrowing vs. 'research' (i.e. borrowing from more than one source).

      Despite the resemblances, I still don't think that MS deserves much credit as an innovator. To take a current example, MS is borrowing from object/relational mapping products to create a Dotnet addition called ObjectSpaces - an extraordinarily conservative approach when you consider that MS owns both the database it is mapping to and the development language and environment it is mapping from. It's almost as though Redmond wants to be the EPCOT Center version of the larger software world outside, obliged to reproduce in detail all its variety and arbitrariness internally.

      However, I will give them some credit if they manage to get 'Longhorn' out - the OS with SQL Server as the file system - but last I heard, things weren't looking that positive.
  • This article (Score:4, Insightful)

    by the eric conspiracy ( 20178 ) on Saturday March 30, 2002 @01:00AM (#3251838)
    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.

    • As the submitter of the story, let me defend it a little. I think one of the major reasons it is intersting are the reasons you think it is weak. The fact that Gosling and Sun are beng so defensive about J2EE/NET tells us how much they fear it. They clearly see .NET as a serious competitor to J2EE. As a long-time Java programmer and enthusiast, I think it is useful to know this and somewhat worrying.

      There are many reasons why an article can be "news for nerds" and/or "stuff that matters". It can be as much for what isn't said as for what is.
  • by Entropy_ah ( 19070 ) on Saturday March 30, 2002 @02:46AM (#3252275) Homepage Journal
    One of my friends and I were at a microsoft user group (i'm not a member, i was just there for my free copy of windows xp :) meeting a few months ago, and he is a java fanatic, and there were showing some C# source code. My friend is a really smart guy, and he looks at it for a second, and says, "that would probably compile under java." and a few seconds later he said, "Hey, wait a second, that actually would compile under java." Needless to say, i laughed for a while about that one.
  • by mmusn ( 567069 ) on Saturday March 30, 2002 @04:14AM (#3252541)
    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.

    • I guess one of my pet areas is scientific computation. They might have done something creative to make that easier.

      Gosling is fat. Also, Java has serious issues itself when it comes to scientific computing.

      Please see this paper [berkeley.edu] for further information.

      Funny he should mention that as one of .Net's shortcomings.... Also he feels "ripped off"? Sure, C# is an awful lot like Java, but then Java was an awful lot like C++. Borrowing good features from past languages isn't robbery, its just smart.

      In short, shut up fatty!

      • My interpretation is that Gosling mentioned scientific computing because he saw that Java hadn't covered that area well, just like it doesn't cover logic/query programming, transparent persistence, workflow, continuations, program-as-data and dozens of other useful ideas from the last 40 years.

        However, this is much more of an indictment of C# than Java - Java's innovation was in the VM, not the syntax, which was deliberately conservative. Despite a huge R&D program, MS has not managed even to synthesise ideas from even two significantly different languages/VMs, let alone attempt to bring together best practice from industry and academia. Gosling's 'rip-off' charge looks pretty solid to me.
    • 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?

    • "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?"

      Apple doesn't have a monopoly, Microsoft does. Apple allowing you to code native applications for the Mac in Java doesn't hurt Java in the same way that Microsoft was trying to change Java.
    • C# has value classes, operators, multidimensional arrays, and easy and efficient interfaces to native code.

      JDK 1.5 is going to include autoboxing of primitives. Operators aren't going to happen, by design. Multi-dim arrays, not really important to those outside of high-performance computation. Easy trap-doors to native code is a plus for C#, yes.

      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

      You're ignoring some proven facts here, such as smoking gun memo's from Microsoft executives ordering the "pollution of Java". Adding keywords & extensions were not violations of the contract -- breaking RMI and JNI, and not supporting JFC/Swing were violations. Apple didn't break compatibility; Microsoft did.

      What can open source developers do with Java before Sun is going to try and sue them?

      What can Slashdot readers do when someone who's on a rant starts spouting FUD? Drop the drama, please.

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

      How are the API's incompletely specified?
      How is high performance computation support "lousy" when most studies to this effect show that it's getting better every JDK release?
      And IBM's JDK is *not* dependent on any Sun code.

      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.

      It's one thing to be objectively critical of Sun's complex behavior. It's another to be venting frustration unobjectively. Guess which of the two you're doing.
  • MS Stuff (Score:2, Insightful)

    by Anonymous Coward
    A few things here:

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

    #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!
    • 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.

      Sure, you are not going to see this issue listed on a web page. But it is a big issue when people choose how they are going to implement a project. Some of the corporations I deal with are rejecting C# right now because, and this is a direct quote, "C# is just Java except it's not portable and it's not secure".

      : 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?

      A lot of the corporations I deal with won't let Active X controls through their firewalls.

      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!

      Two months ago I installed a mail filter for one of my clients that bounces any email with an attached Word macro.

      The fact is this is a real issue, and it is going to become more important over time.

    • #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!

      I'm afraid you're mixing some stuff up. In this context, safe vs unsafe is referring to memory management, not security.

      Safe means that the code cannot access memory directly, instead it must do it via references that are automatically updated by the memory management system/garbage collector. Unsafe means you get direct pointers, that are not tied to the memory manager.

      Java does not allow unsafe code (unless you go via the JNI) but .NET/C# allow both types to be mixed freely with a few caveats. The pros/cons of this decision are something I won't go into here, but there is are a couple of interesting articles on MSDN about safe vs unsafe.

People who go to conferences are the ones who shouldn't.

Working...