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

78 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
    2. Re:Java vs. .Net by metallicagoaltender · · Score: 3, Interesting

      Saying .NET will never take off, just because it hasn't yet isn't entirely fair.

      I'm certainly a Java proponent, but I know full well .NET has the entire Microsoft Machine behind it, and considering they usually do a good job of getting product acceptance regardless of whether or not its the 'better' product, I wouldn't count it out.

      Between the friendliness and name-value that Visual Studio has, and the fact that when a manager is making a choice about a product platorm for project, they don't always factor in the developer's best interest (if ever ;-) ), I'd actually be quite nervous about .NET gaining ground.

    3. Re:Java vs. .Net by Anonymous Coward · · Score: 3, Informative

      >>>".Net only works on Microsoft"

      Somewhat incorrect. The MS.NET runtime is Microsoft's implementation of the CLR/CLI specification which is owned by ECMA. The Mono project is an example of a development effort to put together another implementation of the CLR specifically targeted at *nix OS's.

      Now that doesn't mean that ANYONE at all (other than MS) is going to actually build and deploy an implementation of the spec.

    4. Re:Java vs. .Net by jimfrost · · Score: 4, Interesting
      After all, it hasn't during the 3 years its been out.

      Technically .NET wasn't released until a year ago last spring. It's only been out about 18 months. Last fall it was clear that people using .NET were very early adopters, but uptake seems very strong.

      To be honest, Java on embedded devices doesn't seem like that big a win to me at the moment, no matter how many cellphones they're trying to ship with it. Most Java in use is on the server side. And that is a big differentiator between Java and .NET: Java runs on pretty much any hardware you care to throw at it, which means you can scale your server from that itty-bitty Pentium box up to the biggest stuff Sun sells. With Windows you've got midrange Intel boxes and ... midrange Intel boxes. Little per-box scalability, and that means that large systems are going to be a pain to manage - particularly given how hard it is to manage Windows servers in bulk.

      I can see .NET being useful for small servers that need to be put together quickly and cheaply; VS.NET is great for that. But it's not really there yet for big systems, both in terms of framework maturity and OS scalability and stability.

      Mostly I think we'll see .NET be used in building GUI applications in the near term. Let there be no mistake, it is phenomenal at that.

      --
      jim frost
      jimf@frostbytes.com
    5. Re:Java vs. .Net by JustAnotherReader · · Score: 4, Insightful
      The cross platform ability of Java is more than just marketing hype. I work for a large California Bank and our on-line banking software is written using Java servlets, Java Server Pages, and Enterprise Java Beans. We connect to an Oracle database via JDBC. As you can see we're very Java-centric

      The thing that really helps us is that we can develop code using WSAD (WebSphere Studio) on our Windows 2000 boxes on our desktop. We then deploy to a development sandbox made up of several Linux boxes (Same code, no recompile). Once we test it there we port it to our Development Test box which runs on IBM's AIX operating system (as do the test, stress test, and production servers).

      Could we pass our code around to multiple machines with 3 different operating systems using .NET? No way. Could we toss a WebSphere server on a cheap Linux box and have a test bed up and running in an afternoon? Absolutly, Could we do the same thing with a Windows 2000 server? Not if we want to expect the same level of performance (both speed and stability) out of the same hardware. And that doesn't begin to worry about the licensing cost of building that quick and dirty test bed with Linux and Java as opposed to Windows 2000 and .NET

      Nope, it's a bit too early to start reporting that Java is dead and .NET is the murderer. I think that in 5 more years I'll still be writing Java code and .NET will be sitting in a cardboard box of formerly used software in the closet along side COM, DCOM, and Active X.

  3. random thought of the day by carpe_noctem · · Score: 4, Funny

    Java vs .NET

    Hrm, reminds me of when two fat ugly chicks in my high school started a cat fight in the hallway.

    --
    "Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
  4. 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

    1. Re:Lies, statistics, and analysts by eap · · Score: 4, Insightful

      Analysts are nothing more than journalists whom other journalists call for information. It is somehow believed that if one reads enough of the complimentary trade magazines that every IT profesional gets, one somehow becomes an expert.

      I have noticed Slashdot seems to be posting a lot of these clueless journalist articles lately. I don't seek advice about my car from English majors, so why should I listen to them about computers? Let's have more articles from sources qualified to speak on their subjects.

    2. Re:Lies, statistics, and analysts by mpcarl · · Score: 3, Informative

      Check out SWT for a better Java GUI option.
      SWT

      Fast, easy to understand if you already understand AWT or Swing. Not perfect, but what is?

    3. Re:Lies, statistics, and analysts by throbbingbrain.com · · Score: 3, Insightful
      Java's big failing, IMHO, is Swing. It is too big and too clunky
      I used to think that as well, before I was forced into a large .NET project. Swing clunky? Perhaps, but it's VERY powerful. Example: Building a custom text UI component with the Swing Text Package may be insanely complex, but trying to accomplish anything similar in .NET is not possible. User wants more than textboxes and buttons? Forget it.

      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
      AWT.
    4. Re:Lies, statistics, and analysts by alext · · Score: 4, Insightful

      Because it's not championed by one megacorp, but by a whole array of commercial and non-commercial interests, including IBM, BEA, Nokia among a cast of thousands?

      If you feel this represents the same kind of vendor lock-in as Dotnet then your commercial antennae are in need of adjustment.

  5. It's obvious by El · · Score: 3, Funny

    One of them is controlled by an evil monopoly that refuses to turn control over to an international standards organization, while the other is a Microsoft product!

    --

    "Freedom means freedom for everybody" -- Dick Cheney

    1. Re:It's obvious by molarmass192 · · Score: 4, Interesting

      Sun's not a monopoly and don't make it sound like MS gave the entire .NET framework to the ECMA. Nope, just the C# langauge and the CLI, this would be like Sun turning over javac and java to the ECMA but keeping a grip on anything beyond Java primitives, it's a bullshit token PR jesture. The JCP is a far more public process for directing Java than anything we'll ever see from MS for .NET.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
  6. 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?

    1. Re:Red Queen race by bladernr · · Score: 3, Insightful
      There is a difference between stable and stagnant. C is stable. It has all the features most people need, so there is no need to change.

      People that argue that Java is stagnant mean that there are things the language needs, but it is taking too long to get them.

      --
      Sarcasm and hyperbole are the final refuges for weak minds
  7. Dotnet == Java by Nick+of+NSTime · · Score: 4, Funny

    Begun, the Clone() war has.

  8. An important thing to point out: by cygnus · · Score: 4, Insightful
    Java != J2EE. there are lots of great ways to write a Web application without using EJBs, for example, or writing a single line of JSP. check out the variety of projects at The Apache Jakarta Project for some examples.

    .NET vs. J2EE might be a more valid comparison than .NET vs. Java.

    --
    Just raise the taxes on crack.
  9. The prophet sayeth by Hayzeus · · Score: 4, Funny

    Whilst Java and .NET struggle for supremacy, APL shall return from the tomb of history triumphant once more. And there shall be much wailing and gnashing of teeth among the Javites and the unwashed .NET.ITES, but they will all perish as the light of a new Golden Age dawns, and the thousand year reign of APL begins anew.

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

  11. Stagnant? How about stable and secure. by greg_barton · · Score: 4, Insightful

    From the article:
    The slowness of the JCP holds up the creation of additional standards and services, he pointed out. In addition, standards proposals aimed at portability -- Java's strong suit -- are also stagnant.... "In the meantime, people want faster, easier development."

    Golly, I like slow, careful, and secure development of my enterprise backbone software. People may want faster inclusion of features, but they need stability and security.

    The latest flashy feature doesn't do shit if your enterprise backbone is crashing or being hacked into oblivion.

  12. 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!!!!
  13. 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.
  14. Java, success, failure by penguin7of9 · · Score: 3, Insightful

    Java originally promised to become a small, universal client-side platform for the delivery of applications to clients over the web. Java has almost completely failed in that mission: Flash is far more widely used, no browsers ship with the latest version of Java, and even if you stick to Java 1.1, there are numerous compatibility problems.

    What Java has become instead is a semi-open server-side platform. It's quite successful at that, but it is only one of many platforms in that space. PHP, Perl, Python, and .NET will continue to exist in that space as well and probably take away market share. And because Sun's restrictive licenses on both the implementation and the specification of Java, I suspect Java has seen its best days in the open source world.

    Now, about .NET, .NET is simply more of what Microsoft has always given us: a proprietary platform completely controlled by Microsoft. It's not primarily an alternative to Java, it's simply what Microsoft programmers will move to from MFC and Win32. Thankfully, it's at least a lot cleaner than Microsoft's previous APIs and systems.

    So, Java has failed to become what it originally promised to become, but it is a fairly successful platform that won't disappear overnight. But Sun's dreams of industry domination are pipe dreams. Java could have become much bigger and more important than it has become, but Sun screwed up (and is continuing to screw up).

  15. J2EE by cloudless.net · · Score: 4, Funny

    J2EE is written in all caps too.

    1. Re:J2EE by Xerithane · · Score: 3, Funny

      How do you type a capital-two?

      --
      Dacels Jewelers can't be trusted.
    2. Re:J2EE by Cramer · · Score: 5, Funny

      The same wayyou capitalize '.'

  16. Re:Java's not exactly pining for the fields just n by Directrix1 · · Score: 3, Insightful

    No Java has already been shoehorned in a long time ago. You just weren't paying attention. Also, just because the JCP goes slow, doesn't mean Java is stagnant. It means the JCP is slow. Trying look at jakarta.apache.org, and then tell me all this bs about stagnation and ill-suited purpose.

    --
    Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  17. Java is dying, news at 11 by FeloniousPunk · · Score: 4, Interesting

    Sounds like more MS FUD to me. So how many times has Java been declared dead/ dying now?
    Where I work (for a DoD agency) we are developing J2EE solutions with open source tools in part to get away from vendor lock in, something that MS is particularly bad with. Once MS ratchets up the lock in with the introduction of DRM in Office file formats, I think MS solutions as a whole are going to become less attractive, and this will be a strong disincentive to adopt .NET.

    --
    I know this because Tyler knows this.
  18. Answer by r_j_prahad · · Score: 4, Funny

    Is Java finished?

    Of course it is... and this late in the day it's time to switch over to beer anyway.

  19. Re:Direction for Java by Irishman · · Score: 4, Informative
    Here are some links for Java Generics:
  20. What about Java on other platforms..... by smd4985 · · Score: 4, Interesting

    such as cell phones (J2ME) and Linux? From what I understand MS has no presence on cell phones (and there are a lot more cell phones than desktops) and they'll do their best to avoid needing to have a presence on Linux (i.e. bribe a down-and-out company to try and take out Linux in the courts).

    I think Sun has done a great job promoting Java on a variety of platforms, so I think McNealy isn't concerned about .NOT.

    --
    smd4985
  21. Re:VS sucks by dasmegabyte · · Score: 4, Interesting

    What the fuck are you smoking?

    There are some good Java IDEs, no doubt, but none of them can touch Visual Studio for, well, any single thing you could possibly want to do with an IDE. From designing interfaces, to writing code, to generating code, to debugging code, to remote debugging, it's just awesome and completely customizable.

    Maybe you just picked it up, said "Oh Microsoft, must be junk." You were wrong to do so; it's way better than VS 6. Maybe you saw the animated docking and said "Too pretty, must be junk." You're wrong again...that's the first thing I take out, but by and large it's not a whistles and bells IDE. Maybe you saw all the icons and thought, "Too visual, must be junk." You'd be wrong...everything you want to do in Studio.Net can be done without ever touching the designer, and in fact I don't have a single icon bar turned on in my IDE.

    Compared to Sun's IDE, the awesome in its own right open source Netbeans, VS is much faster for compilation, has more accurate and immediate response from controls and object generation is more reliable. The tools are for the most part simpler while at the same time being more complete. They are easier to use and you can mess with the generated code without destroying the associated resources (for the most part). VS.NET doesn't have as robust a feature set as some Java IDEs, but it's got plenty and it all works.

    --
    Hey freaks: now you're ju
  22. Re:Is Java finished? by egomaniac · · Score: 4, Informative

    I know you're trolling but, How is java related open sourced? I can not get the javac.exe source code.

    Please follow along carefully:

    1) Go to http://java.sun.com.
    2) Click the button labelled "J2SE - Core Java Software". It's the big blue button in the middle.
    3) On the next page, click "Source Licensing". It's in the links on the left-hand side of the page.
    4) On the Source Licensing page, click "Download".
    5) Follow the directions to download the entire J2SDK source code.

    Now, what was that about the source code not being available?

    --
    ZFS: because love is never having to say fsck
  23. 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...

    1. Re:Isn't that pining for the fjords? Anyway... by ADRA · · Score: 4, Interesting

      Just to clearify, I am a low level hacker with C on the brains. I am not a bread and butter VB guy. If I wanted to make a quick and dirty GUI though, I could use VB 6 because my company owns it but more importantly, there was no complexity at all. Almost half the things I did were in the realm setting property X to value Y. Simple, quick, done.

      VB is not as much a programming language that became a GUI, but a prototyping tool that became a programming language. The move to VB.NET has taken away all the language simplicity making it a fully fledged language, but made it difficult enough to negate its benefits over other products that fall within its same niche. I do my quick and dirty GUI's in Jbuilder now. If I have to use a fully fledged language, I would rather use a portable one.

      --
      Bye!
  24. Re:Java's not exactly pining for the fields just n by ReallyBigNumber · · Score: 3, Funny
    It would be "pining for the fjords" - considering the Dead Parrot was in fact a Norwegian Blue (remarkable bird, beautiful plumage). Except the shop owner was implying the bird was still alive when he said " 'es pining for the fjords". So your title should be one of:
    • "Java's not exactly deceased."
    • "Java's not exactly no more."
    • "Java's not exactly ceased to be."
    • "Java's not exactly expired and gone to meet its maker."
    • "Java's not exactly a stiff."
    • "Java's not exactly bereft of life."
    • "Java's doesn't exactly rest in peace."
    • "Java's not exactly pushing up the daisies."
    • "Java's not exactly run down the curtain and joined the choir invisible."
    • "Java's not exactly and ex-dev-platform."
    You know, just for correctness sake.
  25. Java is finished for most open source work by penguin7of9 · · Score: 3, Interesting
    I don't believe Java (by which I mean the entire Java 2 platform, not just the language) is "finished" as a commercial platform, but I think it is finished as an open source platform unless Sun makes some radical changes. Why?
    • Maintaining WORA and interoperability among implementations is the stated goal of Java, and Sun has put teeth into their licenses to try and enforce that. That is, even the Java specification is covered by a license that prohibits you from releasing your own non-conforming version. While that may or may not be a laudable goal, it is in conflict with the fundamental principles of open source that you can take stuff, improve it, and release the improved version. And I think it actually is harming the technical development of Java.

      Another way of looking at it is that Java is too encumbered by intellectual property--copyrights, patents, and licenses--held in part by Sun and in part by an industry consortium (JCP). Anybody that builds applications on top of Java becomes as dependent on Sun as people who write Windows software become dependent on Microsoft. While there are plenty of open source projects for both Java and Windows, ultimately, that is not a good state of affairs for open source developers.

    • WORA brings with it a lot of costs but few benefits for Linux developers. When I write a Linux desktop application, I want it to work well on Linux, I don't care about whether it runs on Windows. But if I use Java, there are all sorts of Linux desktop and Linux kernel features I can't access. And the entire design of Swing and Java2D is based on a Windows/Mac-like local display model, something that simply does not work well with X11.

      WORA made sense for Java's original purpose in life, that of a thin, universal client platform. WORA makes no sense for Linux developers trying to develop high-quality Linux applications. (And, frankly, I think Windows programmers are saying the same about Java on Windows, which is why .NET will probably be more popular with Windows developers).

    • Java is just not a very convenient language to program in. For most needs, something like Python, Perl, PHP, or Ruby is simpler. And when those are not powerful enough, people just drop into C/C++ anyway.

    Java held a lot of promise for open source development at one point, but I think that's over now. The Java platform will continue to be used widely in many commercial (and some free) server-side applications. Subsets of Java will be used in teaching and research. And you will see more and more partial clones of Java appearaing. Open source will probably continue with a mix of languages. gcj+SWT, which implements the Java language but not the Sun APIs, may achieve modest popularity. Mono+Gtk# may become fairly popular (but the .NET clone that is part of Mono probably won't--both for legal and technical reasons).

    1. Re:Java is finished for most open source work by Abcd1234 · · Score: 3, Insightful

      Yeah, except that some people actually just, *gasp*, *like* to program in Java. It provides a nice, strongly typed, compiled, object oriented language (a niche none of those scripting languages fill) that's available almost anywhere while being FAR nicer to develop in than either C (too low-level and error-prone) or C++ (to damned friggin' ugly).

      Moreover, Java provides a massive class library which makes it easy to write new applications without having to reinvent the wheel every time (and yes, I know about the STL, but it's still not entirely standard, it creates bloody HUGE application binaries, it takes FOREVER to compile, it's *impossible* to debug compile errors, and it isn't even as extensive as the Java APIs!)

      Now, I would agree that Java is pretty well toast on the desktop, barring a toolkit revolution. I certainly wouldn't write an app using Swing. However, for other types of applications (like, say, Freenet), it can do an excellent job. And if you go with SWT, you can write some pretty damn nice GUI apps (just look at Eclipse, which is written entirely in Java).

      But to dismiss Java out of hand because it doesn't mesh with your and some other zealots ideals is pretty narrow minded. Personally, I don't care if my app is somehow "tied" to Sun. As long as I can release my source code, who gives a damn if it runs on a proprietary substrate. That certainly didn't bother the KDE guys (or their users) back when Qt was non-free. Sure, there were people who complained, but there were also plenty of people who didn't give a damn (myself included).

    2. Re:Java is finished for most open source work by Abcd1234 · · Score: 3, Insightful

      Well, I suggest you actually read the licenses you agree to when you download Java and the Java specification from Sun. Both the language and its implementations are tightly controled, in a way that practically no other language or platform is.

      In that you can't create an implementation and call it "Java" without Sun giving you the okay. BFD. I can understand why Sun would do this... look what happened with Microsoft and their "implementation" of Java. That doesn't stop anyone from creating their own, compatible language, VM, etc, and calling it Espresso or something. Again, gcj, GNU classpath, etc, proves this to be the case.

      People can't. Read the licenses.

      Tell that to the FSF... not to mention IBM.

      You are damned right it's hard. But it's not technically hard, it's "hard" in the same sense that a Windows clone like Wine is hard: Java is a platform controled by a consortium, driven in such a way that people can't successfully create third party implementations.

      No, WINE is hard because the APIs are a moving target and most of them are undocumented. Moreover, WINE is hard because the Win32 APIs are NOT controlled by a consortium! They're controlled by a single entity, and hence are subject to change, revision, addition, etc, without anyone knowing about it, making it even harder to write a compatible version.

      Java, OTOH, is highly stable and moves slowly (as has been noted by many others in the comments for this article) which in fact makes it *easier* to create competing versions, since you don't have a rapidly changing platform to remain compatible with.

      What planet are you from? Maybe there is some form of "JVM" on their machines, but it's completely unpredictable what version it is (1.1? Microsoft? 1.3? 1.4?). I used to be able to use Java applets on my site (for SSH and other services), but that's become pretty much pointless these days.

      Okay, let me revise my statement a little. Most people who use free/OSS platforms have a reasonably modern JDK installed. OTOH, you're absolutely right, if you're attempting to target Windows (although you can blame Microsoft for that). If you can name another language that approaches Java's install base (particularly amongst OSS folks) but meets the same needs, I might conceed the point.

      I'd select Java for cross-platform development as well. But most of my development is not cross-platform.

      So then who cares about Java and it's platform support? That was, after all, one of your objections regarding Java (and, no, I highly doubt Sun would drop support for either Linux or Windows).

      The KDE developers were headed for a legal disaster: they had created a desktop whose license was incompatible with the toolkit they were using. If Troll Tech hadn't changed their license to dual-license, KDE would have been dead, in particular because it's not clear they could have legally created an open-source version of Qt. The KDE project was oblivious and ignorant of the license problems they were getting themselves into. And so are many open source Java developers.

      Heh, please... those licensing issues were purely philosophical. It certainly didn't stop MANY people from using the platform... after all, those issues were well known right from the beginning. As a result, I *highly* doubt the project would have died. Hell, they could have just changed to a BSD license and been done with it. *shrug*

      However, that's completely irrelevant. Why? Because there are no "licensing problems" with Java. This is just something you seem to have invented! I can create all the Java apps I like... Sun's license on the JDK and their control of it plays no part in the license I choose for my software. Basically, it's a *completely* different issue. In this case, my project can be as "free" as I want... it's simply the platform which (arguably) isn't.

      Now, to make the comparison more apt, let's say TrollTech's license was compatible, but

  26. Not up to the developers... by throbbingbrain.com · · Score: 4, Insightful
    Dot Net doesn't look like a developer panacea just yet.

    It's not up to developers. Regardless of developer preferences or platform capabilities, when the right sales people talk to the right managers, the .NET decision rolls downhill.
    1. Re:Not up to the developers... by AstroDrabb · · Score: 4, Interesting

      This isn't always true. I am a developer for a fortune 500 company and we just finished a huge Java vs .Net comparison. The company brought in a lot of outside opinions and had us devlopers give opinions as well. Of course an MS rep was there telling the tall tales to all the PHB's of how .Net would make us 10x more productive and save us millions (just like the commercials), though the figures did not include all upgrade costs for Win2003 Server and WinXP cost. When it was all said and done, just about everyone picked Java, except for the MS rep and a few VB/ASP only type guys who don't have the technical ability to program much more then a few asp pages. It all came down to Java is proven to be stable and secure. MS and their technologies have not and especially .Net. We also have many mission critical apps that just cannot be trusted on an MS platform so they run mostly on Solaris and now some Linux boxen are popping up. Java gives us the ability to choose the right tool for the right job. .Net would have locked us in to just MS and severly limited choices. Once we as developers got that point across to the PHB's, they were able to see the light.

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
  27. Simpler? by Dr.+Bent · · Score: 3, Insightful

    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.

    Says who?

    I've developed applications in both .NET and Java and I've found Java's toolset to be much easier to use. This is simply due to the fact that there are many more vendors (open-source and commercial) that provide Java products. I can pick and choose which tools fit the particular project that I'm working on, and those tools will also run on any platform that Java runs on, so I'm not locked into a particular operating system while I'm doing development. I can decide to work in Linux one day and Windows the next, and use the exact same toolset for both.

    So I guess if your definition of simple is "you will use this tool and like it", then yeah, .NET is simpler. But in that case I'll take complicated over simple any day of the week.

  28. Re:Shoehorn by DunbarTheInept · · Score: 3, Insightful

    Can't say that it will make a difference to me since I guess I'm the only person in the world who knows what platform they are devloping for up front.

    While the rest of us aren't willing to make that restriction on ourselves.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  29. Re:VS sucks by swagr · · Score: 3, Insightful

    There are some good Java IDEs, no doubt, but none of them can touch Visual Studio for, well, any single thing you could possibly want to do with an IDE.

    If you do any Java development try IntelliJ Idea.

    Then come back and try saying that again.

    --

    -... --- .-. . -.. ..--..
  30. Re:Java's not exactly pining for the fields just n by Cocteaustin · · Score: 3, Informative
    On the other hand, there's no such thing as embedded dot Net just yet.
    That is patently untrue. Do your homework before you spout off.
  31. Re:Java's not exactly pining for the fields just n by klaxor · · Score: 3, Insightful
    It's possible to create ROMmable Java applications in just a couple megs of flash memory...

    Um, excuse me, but it's very possible to create full-featured applications in assembly in just a couple of kB of flash memory. And in case you hate assembly, you can do the same thing in C++ for around 500 kB, and it will run faster than Java. Remember, embedded devices don't have the screaming fast processors that are needed to make Java appear fast. And they're not likely to have the few hundred megs of RAM that a JVM seems to think it needs, either.

    Yeah, Java's nice - for the web. But given that people hate to wait on embedded devices, I can see why it hasn't been widely adopted. And given that embedded devices are often used for critical infrastructure (i.e. utilities, aircraft, nuclear plants, etc...), I'm not sure if I'd trust someone who can't master assembly to write code that controlled a something that could get me killed if an unexpected Out of Memory Exception was raised.

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

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

  34. Re:Mono? by DunbarTheInept · · Score: 4, Insightful

    ...those who are dealing with business realities and not philosophical preferences.

    I'm sick of that oft-repeated lie. BOTH the alleged "realists" and the "idealists" are actually realists. The difference is how far ahead they are looking. If you only care about the next year or so, you don't mind supporting only Microsoft. If you care about 10 years down the road, you do. BOTH camps are being realists, but they don't have the same goals in mind. One just wants to finish his current project, while the other will sacrifice current comfort to help ensure that there's still more than one computer company 10 years down the road.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  35. Web Applications Suck by Greyfox · · Score: 4, Insightful
    There. I said it. Web applications suck. Having to kludge all your state tracking and code around toolkits to deal with all the quirky browsers that are available sucks. Having to use poorly written VB crapplets sucks. They're piling all this crap on top of a protocol that was never intended for applications to try to make it all work, and it all just sucks. It sucks in the Microsoft world and it sucks in the Sun/Java world.

    The question shouldn't be "Should I be develping this on .net or J2EE?" It should be "Should I be developing this on the web at all?"

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  36. Re:Java's not exactly pining for the fields just n by AKAImBatman · · Score: 4, Insightful

    Except that assembly and C++ are not binary compatible across multiple embedded devices. Take cell phones for example Your choices are:

    1. Port and compile a version of your program for every cell phone in existence (quite a few platforms).

    2. Write a Java MIDP application that works on all MIDP enabled phones.

    Hmm.... which to choose, which to choose...

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

  38. Re:VS sucks by dasmegabyte · · Score: 4, Insightful

    This is stupid. I make money writing software that is for sale. Openness does NOT sell software to our clients. Good software, and fair prices, sell software. Openness would actually be a major setback to writing good software.

    Why? Because we would need to massively increase our testing staff, to test on a good number of different machines to ensure compatibility. Because we would have to train them. Because even among VIRTUAL machines, and systems that obey standards or even run the same exact code, there are differences which can easily become dealbreakers.

    As an example: we designed our application from the ground up to allow the use of multiple database systems. Heavy abstraction, only SQL-97 compatible statements, no system specific datatypes, etc. We closely followed standards to ensure compatibility. Still, when it came time to test the first database, it didn't work. The compatibility layer was never fully implemented by the new server, as a result of a feud with the first server. We had to rework the database layer completely, and it set us back at least three months.

    If we had just said "fuck agility," and designed for one system (and rigidly sold THAT system) we would have saved a lot of time and money -- enough money to discount our software for those people who needed to invest in the more costly database. We could have spent that time making great new features. That's what matters to our clients, none of whom have ever not will ever use Linux or any machine not running an x86 chip. There's too much investment in legacy software requiring archaic things like DOS, floppy diskettes, and daisy wheel parellel port printers.

    Openness and portability are at best liberal afterthoughts, and are by no means "the most important things" outside of your junior year Operating Systems class. What matters is cost effectiveness. If your market is not already locked in to wintel, then by all means use Java, chances are you'll recoup the extra testing effort with your first big mainframe sale. Ours was so locked. Writing in Java would have been a foolish waste of effort.

    --
    Hey freaks: now you're ju
  39. The "Dotnet standard" bait-and-switch by alext · · Score: 4, Informative

    You've got your runtimes mixed up.

    The Dotnet runtime consists of approximately 1200 classes, including Windows Forms, ASP.NET etc.

    The CLR/CLI standard only covers core language-related classes - approx 120 in all.

    Dotnet is therefore mostly proprietary and there is no spec. to implement. Mono is having to reverse-engineer, with dubious consequences.

  40. Slow cumbersome process by blueforce · · Score: 4, Informative

    Java versus .NET is becoming a ubiquitous topic. It's been the subject of debate since .NET beta 1. Microsoft and Sun both have "independent" studies conducted to prove that their platform (J2EE/.NET) is better and both have convincing arguments. There is no perfect language or platform to solve every programming problem - sometimes it's C++, sometimes it's Python, sometimes it's something else - it really depends on the problem.


    It's no secret that one reason Microsoft created C# is to compete directly with Java. It's pure ignorance to say that C# is proprietary and that you're locked-in to Windows. C# and the CLI (.NET) is an approved ECMA standard. This is something SUN was unwilling to do with Java. For this reason, in a sense, Java remains far more proprietary than C#. It's too early in C#'s life to say that it won't be ported to other platforms - look at Mono. There is a lot of FUD being disseminated about "Microsof is going to sue Ximian, et al. for Mono" blah,blah,blah. That's not going to happen. Microsoft has already released the source code to the CLI with one intention of "People developing their own CLI implementations will find the Shared Source CLI an indispensable guide and adjunct to the ECMA standards.". So, for the argument that C# and the CLI are proprietary and one is bound to Windows is just plain ridiculous.

    Syntactically, C# and Java are extremely similar. They both derive from C++. Structurally, they are very similar as well. They are both OO languages, everything is a class, etc. Side-by-side they look very similar. There are numerous small details which make C# "friendlier" than Java, ie. C# has no requirement that the file be named after the class. However, C# has a lot of other advantages over Java. C# can make use of pointers. Java has no option on parameter passing - Objects are passed by reference, value types are passed by value. While C# has the same limit on objects, you are able to use pointers and it also supports boxing. C# supports operator overloading as well. On the merits of the languages alone, C# is stronger than Java. It should be expected since it was developed from scratch nearly 7 years after Java arrived.

    As far as performance, Java leaves a lot to be desired. I won't belabor this issue. If you'd like a demonstration of the difference between the run-time execution of .NET vs Java, pick your favorite VM and run Forte, then run Visual Studio .NET (it's written in C#) and decide for yourself. Java run-time performance alone is enough to dissuade some developers.

    Java does come as close to a RAD language as can be. Java applications can be developed quickly with far fewer bugs and errors as a comparable C/C++ application with the benefit of garbage collection as well. For this Java gets an "A". It greatly simplifies the process of rapidly developing database and other applications.

    Is Java going away? Hardly. But like it or not, C# and the CLI are here to stay as well. It's only a matter of time before the CLI is ported to other platforms and environments just like the JVM.



    --
    If you do what you always did, you get what you always got.
    1. Re:Slow cumbersome process by roca · · Score: 3, Interesting

      > If you'd like a demonstration of the difference
      > between the run-time execution of .NET vs Java,
      > pick your favorite VM and run Forte, then run
      > Visual Studio .NET (it's written in C#)

      That is a lie. VS.NET is not written in C#.

      > There is a lot of FUD being disseminated about
      > "Microsof is going to sue Ximian, et al. for
      > Mono" blah,blah,blah. That's not going to
      > happen.

      Your omniscience is impressive.

      Microsoft has gotten EMCA's stamp on C#, the CLR, and the basic Framework, but they still control them with an iron grip. When .NET's behaviour differs from the ECMA spec, who's right, ECMA or Microsoft? Who gets to decide how things will evolve --- ECMA, or Microsoft? And of course .NET is much more than what ECMA has blessed. I doubt we'll see ADO, ASP.NET, System.Windows.Forms or a bazillion other APIs that you need to write actually useful applications in ECMA anytime soon.

      Even if you're willing to go beyond ECMA and port the Microsoft proprietary APIs to other platforms, the fact is that System.Windows.Forms is absolutely NOT a cross-platform GUI toolkit. The Mono guys are implementing it by sucking in WINE! There is simply no Microsoft-blessed cross platform GUI toolkit for .NET.

    2. Re:Slow cumbersome process by Cederic · · Score: 4, Insightful


      >> However, C# has a lot of other advantages over Java. C# can make use of pointers. Java has no option on parameter passing - Objects are passed by reference, value types are passed by value. While C# has the same limit on objects, you are able to use pointers and it also supports boxing. C# supports operator overloading as well

      You mention three advantages there:
      - pointer support
      - boxing
      - operator overloading

      I'm sorry, but in the average commercial environment, churning out business logic to meet changing business requirements under tight deadlines, two of those three are very very bad.

      Boxing is good. That's probably why it's in Java 1.5. I'd have liked to see it in 1.1, but that's another discussion.

      Pointer handling: I've written code doing direct memory access via pointers. I've also written code in Java (and thus not had access to pointers). The Java code has been at least as easy to write, had far fewer bugs (invalid pointers? memory leaks? not in my code), and (most importantly) been immeasurably easier to maintain. You might have been programming for 20 years and never have a problem with pointers; most developers have been programming for 2-3 years, don't have a sodding clue about pointers, and will and do screw it up. Quite frankly, pointers are evil and unnecessary and if I do use C# in the future (as is likely) I'll be insisting on coding guidelines that preclude their use.

      As for operator overloading: It's one of those things that makes C++ code so bloody impossible to maintain. Bit of code read x += y. Except it's doing a binary concatenation, or advancing the pointer reference, or updating Z instead. Because some idiot has overridden +=.

      I appreciate that there are situations where operator overloading is useful, even some where it's sensible. Unfortunately, going back to the average developer: They don't know when to use these things, and even if they do, they often don't know how.

      I love Java not because I'm a crap programmer (although I wont deny that) but because it makes my life much much easier. I can write code quicker, more efficiently, and more robustly. I can maintain code extremely easily, as the 'gotchas' that exist in many languages just aren't there in Java. And my boss loves the fact that he's getting new functionality so much quicker, because the whole team isn't spending their lives debugging a complex overloaded operator that's invalidated a pointer.

      I'm not saying C# is a bad language. I am saying that operator overloading and direct memory access (through pointers) is unnecessary and evil in the average corporate development environment. And that's the target environment for .Net.

      ~Cederic

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

  42. Re:Shoehorn by DunbarTheInept · · Score: 4, Insightful


    And if for some reason we want a different platform (which we don't and won't), we'll have to recompile. Oh, the horror.

    And that's why we have so many .Net applications for Unix and Mac....Oh, wait.
    "just recompile" is a great solution IF you didn't use a development model that locks you in. I use "just recompile" all the time on C and C++ programs.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  43. Re:Java's not exactly pining for the fields just n by KyleCordes · · Score: 3, Interesting

    By coincidence, I gave a talk on how Java and .NET compare, just a few days ago:

    http://kylecordes.com/story-260-java-net-talk.ht ml

    One thing with the SD Times identified as a source of trouble (the size of the included libraries), I identified as a strength: .NET has a lot of things "in the box" that a developer / team needs to go find, select, download, install, etc. for Java. I personally like the best-of-breed approach that can result from that (choose from the many SOAP implementation, choose the best one for our needs), but for many developers, having a good-enough solution "in the box" is more palatable.

    This is particularly exacerbated in some development shops where extensive format decision and permission processes are needed to make any third party tool purchase (or free software adoption).

  44. Re:VS sucks by dasmegabyte · · Score: 4, Informative

    Um, define bloated.

    The .NET 2003 IDE takes up 17 meg of disc space. With 20 projects open, and debugging it's eating 80 meg of memory. It uses 0 processor time in idle mode, less than 1% when typing, less than 20% when searching with regular expressions. It doesn't peg the CPU when compiling. Starting it up, and reading all of my files, takes 20 seconds. Starting a brand new project takes 3 or 4.

    On this same machine, NetBeans takes over 70 meg of space, 180 meg of memory for only 10 classes, pegs the cpu if you stare at it hard enough, and it just slow as hell. Starting it can take close to a minute.

    Please don't compare Studio 6, a piece of crap, and VB3, which is so old that it shits doilies, with a modern on-demand IDE liek Studio.NET. When I did Java, I used to use textpad for the bredth of my typing and editing because the IDE was so slow. Now I do it all in Studio. It's just better.

    --
    Hey freaks: now you're ju
  45. Re:Shoehorn by Directrix1 · · Score: 3, Interesting

    You're premise is flawed. You act like .Net is some kind of miracle Rosetta stone. Far from it. If your going into a project that you want to be an all java project, you have the developers that don't know java, learn it. Now if you have a group of developers and they all know C, C++, Perl, Java, whatever and you want their project to be a .Net project. Then every single one of them is going to have to relearn their tools because they have to learn how to use the CLI in addition to their preferred language. And then after your project is complete, you have a hodge-podge, a patchwork quilt of a system in which you are eternally going to need each kind of developer on staff in order to make modifications. This is exactly the opposite situation with java, where standardization of language and libraries make bringing in new developers almost trivial. .Netization might be touted as the end to all woes, but in the long run it can bring about many more woes than you ever knew you had. So what are the drawbacks to using java? People who don't know it have to learn it. Thats it.

    --
    Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  46. Re:VS sucks by rsborg · · Score: 3, Insightful
    Two things:
    1. WTF is SQL-97? Are you talking about ANSI SQL-92?
    2. The parent to your post said "portability" and "openness" is important. Key-suffix being: -ability.. The fact that your company was stupid enough to test only on one platform, then claim compatibility on all is not Sun (or anyone else's) problem. Product development 101 should have taught your team that they need to consider testing paths when certifying the product. Write once, run many is complete bullshit, Sun knows it, and you should plan accordingly.

      Conversely, the ability to port easily (much easier in java than .net) to other platforms becomes a selling point down the road... but just becaue the abiilty/openness exists, doesn't mean you have to buy into it.

    --
    Make sure everyone's vote counts: Verified Voting
  47. 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.

  48. Re:VS sucks by dasmegabyte · · Score: 3, Insightful

    What the fuck are you talking about?

    Since 2002 when Visual Studio.NET "dropped support" for VB6, there have been several service pack releases for VB6. Our company, which has a massive set of applications written in VB6, has released an update every month for our VB customers, written in VB.

    We will eventually be rewriting in in .NET, not because the language "has no future," something our clients couldn't care less about anyway, but because the application is a clusterfuck which needs to be updated. Writing it in a faster, safer language like VB.NET is not be considered a liability by anyone in this company. In fact, the eventual rewrite has been used to tease the development staff..."After this, you guys can relax and do that rewrite!"

    A lot of people complained about having to essentially rewrite all their Java 1 applications when Java 2 came out because 1 had no future. Those people are what we call LAZY.

    --
    Hey freaks: now you're ju
  49. Just more Micrososft propoganda by rshimizu12 · · Score: 3, Informative

    This Yahoo article is just more typical Microsoft propoganda....... Java today is way ahead of .NET. Java has more than 250 million users, There is more Java chips sold then x86 chips last year. Most of the big .NET claims are MS shops switching over VB .NET. On the otherhand there is some ease of development issues. But these problems are being solved by Eclipse and Sun's recent involvement.

  50. The Other Variable: Linux by Enthrash · · Score: 4, Informative

    I fear nobody has mentioned the simple yet profound fact that will drive many towards .NET & Java/J2EE. It's Linux! It's free, it's stable, it's secure (relative to MS OS's). Put it together with Apache Open Source products such as Tomcat & Apache httpd, or JBoss if you are into EJBs and you can't go wrong.

    I feel that the technical debate between .NET and Java/J2EE more irrelevant than most will admit. They are both very well designed development languages, and can accomplish most projects in a similar amount of time, with similar numbers of developers.

    Just one problem, most businesses wish to make $$$, and if you haven't noticed the tech sector barely able to keep it's head above water right now. Thus, all things equal I'd bet most businesses will probably opt for a Java (or J2EE)/Linux solution as the overall price can't be beat, and you don't have to waste you development time creating valueless libraries that others must have had to create already. Not to say .NET add-in dev libraries aren't available, they just aren't provided in an FREE manner as frequently as they are in the Java world.

    Anyhow, my 2 cents.

  51. Re:Java's not exactly pining for the fields just n by aled · · Score: 3, Insightful

    Also it means more stability in specs. Writing specs takes some time but it pays off when you need to implement the spec.

    --

    "I think this line is mostly filler"
  52. Re:VS sucks by sterno · · Score: 3, Informative

    One question: did you write this application in java? I can't imagine what you described happening in Java with JDBC. I've worked on numerous databases and though they have subtle incompatibilties, they are usually not a big hassle to work around.

    Also, it seems that your development strategy here was flawed. You write a whole compatibility layer before testing it at all? Why didn't you go through and write some test code and just make sure some things worked before doing the whole thing and finding you had a problem?

    What Java brings you is the immense potential for agility. You don't have to plan for agility, it just comes with it. When you decide that you want to change platforms, make a few tweaks, do some intensive testing, and blammo, new platform. With .net, if there's a fatal flaw in the implementation, that's it, you are screwed. No othe vendor can help you.

    As for people being locked into wintel, as long as there are web browsers, there's no such thing as lock in. When your clients eventually decide that they are sick of viruses, and licensing extortion, they'll be thankful that your system provides the flexibility to get them out of that mess.

    Openess is never a setback for writing good software. Precisely the opposite in fact. Openess allows you to be flexible and adjust for changing market conditions, software bugs, etc.

    For example I wrote a system using a 3rd party data abstraction layer. Now, what you are professing suggests that I just write to that layer. Instead I wrote wrappers that could work with any abstraction layer. It turned out that this abstraction layer was buggy as hell. After another week of work, I had implemented an entirely different layer that worked much better. If I had not written an abstraction to maintain that openess, I'd still be rewriting code.

    --
    This sig has been temporarily disconnected or is no longer in service
  53. 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

  54. Re:VS sucks by dpalley · · Score: 3, Informative

    > How many IDE's are there to develop .net applications? One. Actually, there are 3 that I know of: - VS.NET (MS) - Sharp Develop (free) - C# Builder (Borland) and more coming (Delphi 8). Dan

  55. Java vs. .NET blog series on java.net by pbrittan · · Score: 3, Informative

    I recently posted a series of entries on the relative strengths of Java vs. .NET and make some suggestions on how Java might avoid being crushed by .NET.

  56. Re:VS sucks by alext · · Score: 4, Insightful

    Hmmm... a few pages above there's a post consisting of the two phrases "You are an idiot" and "There is no IDE that comes even close to Visual Studio.NET" that's now Insightful.

    And now here I'm obliged to repeat someone's useful response (that wasn't modded up) to an ignorant assertion (that was).

    The practice of refactoring is well-established and reflects changes to the naming or structuring of the code that have occurred since it was created, so your comments about the initial organization of code are irrelevant. Apparently your beloved VS.Net is likely to offer some refactoring capability in a future release, which acknowleges the importance of this feature but puts it approximately 2.5 years behind Eclipse and IDEA.

    A workflow system consists of process definitions with process steps that involve conventional programming, therefore if I'm developing a workflow system, I'm also doing conventional programming. An IDE allows me to deal with these aspects in one environment (hence "Integrated"), just as VS.NET allows me to develop GUI layouts and conventional programming in one environment. (Or are you suggesting that the GUI designer in VS should be a separate system?)

    I fail to see the relevance of standalone diagramming tools in this context since their purpose is to produce diagrams (for people) rather than code (for computers) - something you are free to do regardless of your IDE. However, since you bring up the subject, I should point out that in Workshop the workflow diagrams ARE integrated and correspond exactly (via 2-way update) with the visible program code. Again, such features are light-years ahead of anything in VS.

  57. Re:VS sucks by CommandNotFound · · Score: 4, Insightful

    I'm confused. You first deride my comment, and then you appear to agree with it.

    My point is that by only looking at a language's version-1.0-time-to-market qualities, tradeoffs must be made. In the case of VB, the tradeoff is that VB is a closely guarded language by a single vendor, rather than the classical academically defined languages like C, C++, Fortran, etc. If Visual C++ goes away, there are other vendors who produce C++ compilers. If Microsoft stops producing VB compilers, there is no one to turn to. Since VB.Net is the next version of VB, and it requires a practical rewrite for large applications, then the previous language known as VB is dead, for all practical purposes. Few to no new applications will be written with the old language.

    I don't care how bad your applications are written, odds are your mananagement would not rewrite the applications unless they were forced to by outside forces, because, as you said, the paying customers don't care about languages, they just want feature Y in product Z and they want it now. In this case, the outside force is the vendor who has essentially stopped advancing the compiler for the langauge your apps are written with, and you don't have another VB vendor to turn to.

    And as far as developers enjoying the rewrite; beware of what you wish for. We are going through the same thing, and it has been almost two years of pain, beauracracy, and political wrangling. The Second System effect can easily take hold, since people are so afraid of making the mistakes of the old system that they overthink and over-engineer the new system until it collapses under its own weight.

  58. Re:VS sucks by Slime-dogg · · Score: 3, Informative

    If I could mod you up, I would. Just today, I attempted to rename the project namespace for a .NET application. It took me about two hours to get everything fixed, the namespace is tied to the directory, and therefore references get hidden in various non-class files. The hidden references may not be necessary to straight programming, notepad/editplus style, but when they are wrong, they break the debugger in VS.NET.

    If VS.NET had a good way to rename classes and namespaces, it would be a Godsend. Sometimes, you just realize that you were stupid in naming a class what you did, and that it would be so much more clear if it had a different name. I've worked with Eclipse refactoring, and I remember the first time... my jaw dropped, and I was like "This is fucking awesome!"

    Refactoring is an excellent tool that should not be ignored, and is definitely not replaced by code outlining/regions. Those, OTOH, are really good for getting an overview of your code, and instant grokking after not touching for 5 months.

    --
    You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.