Slashdot Mirror


Java vs .NET

CHaN_316 writes "Yahoo is running a story called 'Is Java Finished?' It provides a brief overview of the strengths and weaknesses of J2EE and contrasts them with .NET. Classic arguments are brought up like Java being great for portability while .NET ties you down to Microsoft products, etc. It's interesting that they bring up the Java Community Process, and how it is a rather slow moving procedure that is causing Java to become stagnant."

17 of 686 comments (clear)

  1. Java's not exactly pining for the fields just now by Mr.+Darl+McBride · · Score: 5, Insightful
    The Software Development Times ran an article which mentioned many of the perceived advantages of .NET, and Kuro5hin ran a story which did just the opposite. :)

    Dot Net doesn't look like a developer panacea just yet. If Sun keeps the enhancements coming and works to bring the development environment up to Visual Studio's standards (Yes, VS has its problems, but it has a lot of unique tools, like compile-and-continue, which save hours!), Java may well survive.

    Dot Net is also anything but small. It's possible to create ROMmable Java applications in just a couple megs of flash memory. On the other hand, there's no such thing as embedded dot Net just yet. And if they continue with the execution model they've currently got, any piece of code is going to net a ROM many times larger than what's possible with Java. Either way, I'll want $699 for my fp, beeyotch.

  2. Java vs. .Net by Anonymous Coward · · Score: 5, Insightful

    The ".Net only works on Microsoft" is more than just a classic arguement. In fact, I think it's the most important factor to take into account.

    If I want to make some simple embedded device, if I have to option to use Java instead of having to license Windows CE for my product, why would I ever choose MS over Java? .Net will never take off. After all, it hasn't during the 3 years its been out.

    1. Re:Java vs. .Net by bladernr · · Score: 5, Interesting
      I wouldn't say that .Net will never take off. Microsoft has access to senior executives in large corporations; I know that shouldn't make a difference, but it does. I am consulting at a major communications company now, and I just got a call from a VP an hour ago saying "Take a look at Microsoft for the stuff you are doing." It seems MS paid him a visit, and they are pitching lots of .Net/XP stuff against our existing HP SuperDome environments.

      Think of this another way: What if .Net was designed by a single person in their garage, would it get the attention it does? Of course not. Dot Net is a real threat to Java simply because it comes from Microsoft (a mega-corp with plenty of access).

      You may not like it (I know I don't), but that is the nature of things.

      --
      Sarcasm and hyperbole are the final refuges for weak minds
  3. Lies, statistics, and analysts by Sanity · · Score: 5, Insightful
    This John Rymer guy, around whom this entire article is based, is talking out of his arse. When will journalists learn that if you want to know something about software engineering, ask a software engineer? Only PHBs, clueless journalists, and other analysts listen to analysts.
    Java and .NET take vastly different approaches to development, said John Rymer, a vice president with Forrester Research. Java's philosophy of development is to expose low-level system interfaces to give developers greater control. Microsoft simplifies the development process; the developer has less control -- but the tools are easier to use.
    If anything, the opposite is true - the Java API is certainly higher-level when it comes to GUI stuff, and everything else is pretty analogous between the Java and .NET APIs.
    "Before, Microsoft was basically shut out of these projects," Rymer said. .NETs ease of use and lower licensing costs also will be a draw.
    Lower licensing costs than free? I would love to see that.

    Having worked with both Java and .NET, I would say that things like C#'s foreach statement make for easier and cleaner code, but Java 1.5 will leapfrog C# when it introduces generics along with its own version of foreach, and other timesaving features. Java's big failing, IMHO, is Swing. It is too big and too clunky, Java is crying out for a stripped down GUI library that is part of the API spec that will be as easy to work wit

  4. Red Queen race by iangoldby · · Score: 5, Interesting

    causing Java to become stagnant

    Why would we not want a language to be stagnant? I wonder how much time is wasted just trying to keep up with changes to languages and development environments?

  5. Come on ... by OMG · · Score: 5, Insightful

    .NET ? Blowing J2EE out of the water ?
    Are you serious ? Then:

    Where is the appserver that runs .NET ?

    Can you cluster that appserver like J2EE-appservers ?

  6. Industry Newspeak by Stiletto · · Score: 5, Insightful


    You would think that a language or API that doesn't change every day would be praised with words such as "standardized" "stable" and "established".

    But in Bizarro World (where we all are apparently living), we criticize it as "stagnant" and "slow moving".

    Compare with the OpenGL/Direct3D discussions.

    Carpenters don't buy from hammer companies that change their hammers every "release".

    1. Re:Industry Newspeak by stratjakt · · Score: 5, Interesting

      Carpenters don't buy from hammer companies that change their hammers every "release".

      Sure they do, there's been a lot of innovation going into hammers lately. They release new versions of hammers constantly, and other woodworking tools - to many oldtimers dismay, who will swear up and down the hand plane they used in 1952 was an order of magnitude better than todays.

      Stanleys Anti-vibe series of hammers, for instance, they have whats basically a tuning fork built into the handle. The fork vibrates and takes the energy away from your hand. Spend a day ramming nails in with a wooden handled hammer, then a day with one of the newer models, and you definately feel the difference.

      They're also constantly adjusting the weights and balances, tweaking the shape and makeup of the heads/claws.

      Go look at the tool section at home depot and get an idea about hammers.

      --
      I don't need no instructions to know how to rock!!!!
  7. Is $TECHNOLOGY dead? by cubicledrone · · Score: 5, Insightful

    Any article that asks that question is automatically crap. Period. End of discussion.

    --
    Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
  8. Re:J2EE by Cramer · · Score: 5, Funny

    The same wayyou capitalize '.'

  9. Isn't that pining for the fjords? Anyway... by podperson · · Score: 5, Funny

    ...the best comment from Kuro5hin was that the only thing he likes about .NET is that VB's backwards compatibility is broken so maybe folks will learn a real language...

  10. Interview with Anders Hejlsberg by hackrobat · · Score: 5, Interesting
    Earlier this week, artima.com published an interview with Anders Hejlsberg, lead architect of the C# programming language. Hejlsberg, interviewed by Bruce Eckel and Bill Venners, talks about the C# design process, the trouble with checked exceptions, and his idea of simplexity .

    C# is one programming language I've stayed away from--and for no particular reason. I had picked up the C# specification [PDF] in 2000, but never really got down to the canonical "hello world" program. Today in 2003, as I look back, I guess I haven't missed much.

    Let's go back to August 2000 and revisit Hejlsberg's famous O'Reilly interview by Josh Osborn.

    Why are there no enums in Java, for example? I mean, what's the rationale for cutting those?

    And Java has enums now, just like they come in C#.

    one of our key design goals was to make the C# language component-oriented

    I think this was really nice, and fitted in well with Microsoft's COM framework. I remember COM enthusiasts mentioning how every C# object would automatically be a COM object, thereby eliminating all that old school drudgery.

    C# is the first language to incorporate XML comment tags that can be used by the compiler to generate readable documentation directly from source code.

    Python and Java have docstrings (or javadoc) as part of the language.

    Developers are building software components these days. They're not building monolithic applications or monolithic class libraries.

    Developers are building all sorts of stuff, and not just "components". I think that statement is overrated.

    Boxing allows the value of any value type to be converted to an object, while unboxing allows the value of an object to be converted to a simple value type.

    Thanks, now Java has it too!

    Unsafe code allows you to write inline C code with pointers, to do unsafe casts, and to pin down memory so it won't accidentally be garbage-collected. [...] The real difference is that it's still running within the managed space. The methods you write still have descriptive tables that tell you which objects are live, so you don't have to go across a marshalling boundary whenever you go into this code. Otherwise, when you go out to undescriptive, unmanaged code (like through the Java Native Interface, for example), you have to set a watermark or erect a barrier on the stack.

    Honestly, I didn't understand the stuff about "unsafe code", the implementation of IL, and the implementation of generics. Just for comparison sake, Python also has a scheme for inlining C and C++ code.

    Let's face it, some people like to program in COBOL, some people like to program in Basic, some like C++, and some will like C#, I hope. But we're not trying to tell you to forget everything you ever did.

    I've raised this point to Java bigots on several occasions. It's just too difficult (and sometimes impossible) to interface Java with other languages. (In this context,

  11. Re:Shoehorn by Fnord · · Score: 5, Interesting

    I'll agree with client side stuff, but I've been in a situation in the past where we developed a server size web app (in J2EE) on a single nt4 server (purely for ease of access). Then when we went gold, capacity grew and it moved to a cluster of linux servers. Then when the business picked up and capacity grew in large amounts we moved to a couple Sun E6500s. .NET wouldn't have allowed us to migrate like this.

  12. Re:VS sucks by alext · · Score: 5, Insightful

    As someone has mysteriously marked the parent as "interesting" it might be worthwhile to provoke a genuinely interesting debate below it so that readers are not too disappointed.

    The parent insists that no Java IDE "can touch" VS for "any single thing you could possibly want to do", but a moment later admits that "VS.NET doesn't have as robust a feature set as some Java IDEs".

    Features like refactoring, perhaps, as found on the free Eclipse IDE, or the modestly priced IDEA?

    Or, looking a bit further afield, we could ask how one might develop a complete workflow system in VS, as you can in WebLogic Workshop?

    My clients do these things all the time, but VS has a long way to go to offer a competitive alternative to the Java tools available now.

  13. Java vs. .NET by dist_morph · · Score: 5, Informative
    I would like to point out that there are now several solutions that allow the integration of Java into .NET, so it does not have to be an either/or decision. I have run into many shops that love using Java on the server side and also love using truly native GUIs on the Windows desktops. Using the right tools, you can easily do that.

    My favorite tool for the integration is JuggerNET, which transparently starts up a JVM in the CLR process and the developer simply codes against generated .NET classes. I am affiliated with Codemesh, so I'm somewhat biased (take a look at Stu Halloway's great website for alternatives) but working with both platforms for a living, I just can't get excited about controversial this or that is dying statements. Both platforms have their strong and their weak points.

    I love the platform portability of Java, but I think Java is too closed in terns of language integration. Doing JNI by hand is an abomination, and most people at Sun admit it.

    I love the language portability of .NET (it's not perfect, but then, neither is Java's platform portability) but I hate the exception model.

    So, there you have it. Neither will kill each other, they will just coexist uncomfortably until they both get replaced with something new.

  14. Re:Java's not exactly pining for the fields just n by aagha · · Score: 5, Informative

    #1) Java was NOT originally developed for embedded systems.

    I think you might be mistaken here.

    Before the language was called 'Java', it was called 'Oak'. It was a language for building embedded applications on smart consumer electronics. However, Oak was way ahead of its time in terms of product targeting.

  15. Re:VS sucks by mrtrumbe · · Score: 5, Insightful
    How in the blue heck do regions make refactoring unnecessary? Do you know what refactoring is??

    Let's say I have a class in package A and I want to move it to package B (in dotNet parlance, packages are namespaces). In dotNet, I'd have to personally touch every piece of code accessing that class and redo the import statements (dotNet: using statements) to reflect the change. Same goes for method name changes, public member changes, method signatures (parameter order, adding parameters, etc.), etc.

    Also, the good refactoring IDEs provide a lot of extras like generation of getters/setters (dotNet: properties) (also referred to as encapsulation), extracting interfaces and/or superclasses, replace inheritance with delegation, replace constructor with factory method, make method static, etc., etc., etc.

    Note that most of the above refactorings not only change the class in question, but also all accessing classes and methods. This sometimes means you can make a significant change to a heavily used method or class and do NO WORK to the rest of you classes.

    If you are interested in the power of IDE refactoring, check out the IDEA refactoring page. Here is a screenshot of the refactoring menu.

    In short, refactoring is REALLY powerful and very, very useful. If you are saying otherwise, you probably haven't used it. Also, it should be noted that several companies are making refactoring plug-ins for Visual Studio. Obviously SOME people don't think that Visual Studio's features render refactoring "unnecessary" or a "waste of time." Myself included. (I'm a Java junky programming in a dotNet environment.)

    Taft