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

141 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. well... by blackmonday · · Score: 2, Funny

    Well, obviously .NET is better, since IT'S WRITTEN IN ALL CAPS.

    1. Re:well... by grub · · Score: 2, Funny

      If that's the case use some version of BASIC, it has 2 more letters in caps.

      --
      Trolling is a art,
  3. 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 Master+of+Transhuman · · Score: 2, Funny

      'I just got a call from a VP an hour ago saying "Take a look at Microsoft for the stuff you are doing."'

      Give him "Neo's Response":

      "How about I give you the finger [display "the finger"] and you give me my phone call?"

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    6. Re:Java vs. .Net by jimfrost · · Score: 2, Interesting
      Heh, that's probably because Microsoft was sticking the .NET label on everything for awhile.

      If you ignore that little bit of marketing idiocy then .NET comes down to being Microsoft's take on Java. In fact, it's derived from Microsoft's version of Java. When Sun sued Microsoft over compatibility issues Microsoft didn't just throw that work away, they changed it into .NET.

      What they did, and this is clear from the VM language and APIs, is take the JVM pretty much intact and renamed the class library packages, classes, and methods using a slightly different naming scheme. If you know JDK 1.1 you are already familiar with a lot of the .NET foundation classes except that the packages have moved around.

      On top of that Microsoft added some data management classes (not all that different in concept to JDO), a hell of a lot of UI and forms-management classes, web service support, and lots of XML support. And of course they integrated this well with their IDE.

      Aside from doing a very good job with UIs, ASP.NET is hugely improved over the previous version of ASP (which, IMO, was disgusting). They still have pretty minimalist support for sessions if you ask me, but then again stock J2EE isn't really any better.

      So: It's Java, with extensions both Windows specific and generic, with multiple source languages, and a nice IDE that has a bunch of code generators built in.

      Getting back to this stuff being derived from Microsoft's version of Java, I think that in the long term Sun's lawsuit against Microsoft for "polluting" Java (which, in any objective view, Netscape was far more guilty of) will prove to have been a very big mistake. Back when Microsoft was trying to do Java Sun at least could control to some degree what direction they went. By forcing Microsoft to abandon Java entirely they are trying very hard to leverage the technologies to their maximum advantage.

      And, to put it bluntly, they are doing a much better job of it so far than Sun has. Sun still has a huge edge in many areas due to J2EE's maturity, but I wouldn't expect that to last all that long.

      Personally I think this is great because it means that we're going to have to see rapid development of usable systems in Java land, something we really haven't seen in years.

      --
      jim frost
      jimf@frostbytes.com
    7. 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.

    8. Re:Java vs. .Net by timeOday · · Score: 2, Interesting
      To me, ".Net works on Microsot" would imply that the average .net application could be run on something other than Microsoft. Until that is true, the rest is just lip service.

      Microsoft said MFC was cross-platform compatible. They said DCOM was cross-platform compatible. I suppose some weak argument could be made in either case, but let's face it, no software from MS will ever be portable in a useful way. They don't want it to be.

    9. Re:Java vs. .Net by timeOday · · Score: 2, Interesting
      Sorry, I meant to say that to me, it's true that .NET only runs on MS, until the average .net application could be run on something other than Microsoft.

      Shoulda used the preview button!

  4. 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
  5. 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. Re:Lies, statistics, and analysts by VGR · · Score: 2, Informative
      You are really hitting on the biggest problem with Java: it is not a standard. Java is a proprietary technology championed by a maga-corp (Sun, in this case). How, exactly, is that different from .Net and Microsoft?

      When I encounter a problem, I can submit a bug report at developer.java.sun.com. Of course, I would first search the bug database to see if the bug has already been reported. Some bugs have sat around for a long time without getting attention, but for each of those, a hundred have been fixed. At least two of the bugs I reported have been fixed.

      If there is a public C# or VB bug database, I have not heard of it.

      Oh, and the JDK comes with the source to all of Java's classes, and I believe even the native (C) source code is available somewhere. You shouldn't ever need it, but it's there just in case.

      --
      The Internet is full. Go away.
    6. Re:Lies, statistics, and analysts by DynamiteNeon · · Score: 2, Informative

      JBuilder is at version 9, so it couldn't have been that recently. A lot has changed since then.

      Regardless, you're probably still better off using something free like eclipse, which has become a great ide, or if you feel like paying, I agree with the other person that suggested IntelliJ. The only argument for JBuilder is that they include the optimizeit suite for free now and you get some other libraries that you might not get elsewhere. Eclipse's IDE is pretty good though and comparable.

      The IDE support in my opinion is fine for both languages, it's just the language itself. I think 1.5 will make a difference though. I still agree with the other poster that SWING needs an overhaul. Other than that, it's a good language.

      Just use whatever works for that particular project. None of the languages are the best solution all the time.

    7. Re:Lies, statistics, and analysts by enkafan · · Score: 2, Informative

      Oh, I think you missed the Custom Control. What you want to do is go to Project, add new item, and then choose "Custom Control" from the dialog that pops up. Easy to miss if you are new to .NET If you need to create a composite control (i.e. a control, you choose the user control. You also have the option of simply inheriting from a TextBox or a Button for the simplier options, of course.

  6. 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
  7. 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
  8. Dotnet == Java by Nick+of+NSTime · · Score: 4, Funny

    Begun, the Clone() war has.

    1. Re:Dotnet == Java by drunk_as_in_beer · · Score: 2

      Begun, the Clone() war has.

      I think you mean:

      Clone war = new Clone();
      war.Begin();
      this.Text = war.InsertYodaQuote();

      --
      --Drunk as in Beer
  9. 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.
    1. Re:An important thing to point out: by Bodrius · · Score: 2, Insightful

      That's right, there are lots of great ways to write webapps in Java without using EJB.

      But there are no great ways to write them without using J2EE. At least not unless you absolutely love client-side code.

      Servlets are part of J2EE. Among the most useful parts, IMNSHO.

      I don't think it's such a problem to remember that Java!=J2EE.

      The problem is most people don't remember J2EE!=EJB, that an enterprise application doesn't always NEED EJBs, and that a lot of of the perceived complexity of J2EE disappears when you stop using EJBs compulsively.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
  10. 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.

  11. A Question by Dunarie · · Score: 2, Insightful

    When was the last time you used a .NET program? I know I can't remember. When was the last time you used a java program? Oh, just a few minutes ago myself. Besides, how can .NET ever really be a long term (it might be a short term) threat to java, since you'll never be able to use .NET on anything but Windows.

    Good thing there isn't an "Ignorant" moderation title, I'd probably get it.

  12. Re:Java's not exactly pining for the fields just n by stratjakt · · Score: 2, Insightful

    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.

    Which sums up the whole apples vs oranges nature of this "debate" quite nicely. Java was developed for embedded systems, .NET for enterprise/distributed computing.

    Now Sun is trying to shoehorn Java into the enterprise world, and perhaps MSFT will try and do the opposite.

    --
    I don't need no instructions to know how to rock!!!!
  13. 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 ?

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

  15. 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!!!!
  16. 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.
  17. Direction for Java by herwin · · Score: 2, Insightful

    I'm very interested in seeing how Java implements generic programming (template programming). That's an area where it currently falls down.

    1. Re:Direction for Java by Irishman · · Score: 4, Informative
      Here are some links for Java Generics:
  18. 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).

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

  20. 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
  21. Microsoft API performance by aacool · · Score: 2, Interesting
    In re: the performance of .NET vs. Java, once long ago, I wrote an API library based on ODBC using calls to the Microsoft ODBC dll, choosing to not use MFC for what I thought were performance advantages (lean, mean, etc)

    Strangely enough, I found that I was having some perf problems in my library functions that exactly modeled what MFC was doing in it's calls to the MS ODBC dll.

    After quite some digging, I found that a call to a DLL function with exactly the same parameters by my API as opposed to an MFC call to the dll was way slower and in at least one case gave different results. Please note that I'm talking about perf on the function call alone, all other things being constant

    Conclusion:MFC was 'rigged' to perform better with the MS ODBC DLL than a third party function call.

    It wouldnt surprise me if there were similar reasons for performance differences between .NET and J2EE - thoughts?

  22. Re:Portable? by jandrese · · Score: 2, Insightful

    I run the same Java apps on Windows and FreeBSD all the time. Most good apps have no trouble crossing platforms. The only major sticking point is Swing or (especially) AWT, which are implemented with varying degrees of quality across platforms.

    --

    I read the internet for the articles.
  23. 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.
  24. Re:Portable? by herwin · · Score: 2, Interesting

    I know you're trying to be funny, but I mark my students' projects using my Mac dual G4. They were developed on PCs and *X boxen, but I run them on my own machine. If there are problems, we have a serious chat.

    I teach advanced object oriented design and security. It keeps food on the table.

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

  26. Dead? Well, probably not. Mostly. by jimfrost · · Score: 2, Insightful
    I've been using .NET for the last year on various projects, and Java since 1995, and I've come to a few basic conclusions.

    If it's UI-based, .NET blows the doors off of Java. The design tools are so much better and the UI objects actually work the way they're supposed to. Swing is one royal PITA if you ask me, with lots of bizarre implementations, bugs, and poor interoperability with the native windowing system in many if not most cases.

    If it's server based then J2EE holds an upper hand in more than just portability. Most of the J2EE containers out there have application build environments that are at least as good as VS.NET and since they tend to run on more scalable hardware they're easier to deploy for large sites. Various mature application frameworks are available too.

    .NET beats the tar out of Java client-side web services. They're all about equal on the server side IMO. But on the client .NET has client stubs that support HTTP sessions (/very/ nice, but not part of JAX-RPC or even Axis) and VS.NET's integrated client stub generator is just a dream to work with.

    The thing to remember about .NET is that it's really Microsoft's Java repackaged in a form that Sun can't sue them over. It has most of the JDK 1.1 libraries pretty much intact but with package and method names changed. But they did a very nice job in fixing a lot of issues that Java has.

    In particular .NET's assembly management beats the heck out of collections of jar files.

    YMMV, but if you're building a client and you don't absolutely need multi-OS support then you should really look at .NET. If you're building a small server it's probably worth a look too, ASP.NET forms are very easy to construct and they have decent tools for working with MSQL. But if you want a large-scale system I would not consider it, they need to work a lot harder on deployment issues and scalability of the base OS.

    --
    jim frost
    jimf@frostbytes.com
  27. 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
  28. Make up your mind. by Dr.+Bent · · Score: 2, Insightful
    From the article,
    .NET's ease-of-use characteristics are forcing Sun to try to simplify Java development.

    and later,
    Sun needs to make the Java Community Process (JCP) more efficient and simple, because its unwieldiness is slowing the adoption of Java standards

    Huh? So first this article complains that Java is too complicated and needs to be simpler. Then it complains that Sun makes it hard to add new features (i.e. complexity) to the platform.

    I'll say it again...Huh?!?

    I think the JCP moves at just the right speed. If you change a language too quickly, make it harder for everyone to keep up. If you move to slowly, the language/platform won't be able to keep up with current technology. It should be hard to add things to the Java platform. A lot of people have a lot of different ideas about what Java should be. Sun tries to make sure only the best of the best gets integrated into the core platform. Anything else can be left as a 3rd party library (like AspectJ for example).

    A great man once said, "The Law should be stable but never stand still". Programming languages and platforms are the same way. Turning the JCP into a rubber stamp for new, unproven ideas isn't going to do anyone any good.
  29. Re:An important thing to point out - Wrong by RoundSparrow · · Score: 2, Insightful


    Actually .NET is trying to replace traditonal Win32 programs.

    I mean GUI programs. "Windows Forms" is what I believe most Microsoft developers call them.

    In other words, Visual Basic Applications. C++ Applications.

    ASP.NET == Web Applications.

  30. 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
  31. If I were to choose... by mnmn · · Score: 2, Interesting

    I would try my best as usual to avoid both. Say I have to produce distributed networked applications that are portable. I'll just use QT. Say it has to be used in embedded systems too. I'll use ANSI C using gcc compilers everywhere, and use #ifdefs to make up for the difference.

    Therefore, I'll save my company big bucks, since they'll use less ram and storage to save and run the code. They'll also need lesser CPU/MPUs.

    Say I have to work on an ERP system. The same combination comes up. I'll use a good database that runs on many platforms (DB2? Firebird? pgsql?) and the GUI frontend will use QT or glib or fltk or the likes.

    I havent found abstraction layers (virtual machines?) like .NET and Java to be efficient enough to be worth it. I'd rather hire more expensive coders who can do C/C++. I know it is 2003, but even for the most complex applications, I enjoy trying to run it on my Pentium 200MHz 48mbRAM 2GB hdd system with Windows 95 to check how lean and mean the code is. Just compare Opera with Mozilla and tell me what you like.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  32. 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
  33. Microsoft Smartphones by cloudless.net · · Score: 2, Informative

    http://www.microsoft.com/mobile/smartphone/

  34. 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!
  35. There is no such thing as Java Programmer by SlashingComments · · Score: 2, Interesting


    I checked on Java on it's early days when Sun had Engineers. Henry Wong I think was ( about 5/6 yrs back, don't actually remember who else was there) conducting the seminars.

    Sun had a great promise. But, it is still a promise. I have seen so much bullshit around that language and half-progrmmers posing as object Gurus etc. etc. made me really sick.

    Saga continued, DOT.COM made our company rich but Java made us poor.

    We blew over 5 mil behind a product with good and bad programmers but still that product did to gain any ground. The we added some good marketing people ( yes they exist ) with lot of effort they made it barely sellable.

    If Sun were spending half as much energy behind the hardware division their stock will not be in single digits today !

    Now-a-days, when I go through resumes of new/experienced programmer, knowing Java AND not knowing C or PERL is a disqualification to me--these people will never get through the door.

    There is no such thing as Java Programmer--either you are programer and program whatever language come in your way or you are just a total waste of space.

    So, I guess, end of Java will end of lot of stupid people who should not have in the programming profession in the first place.

    whatever .... at lease by following this principle, I am having success in recruiting good programmers !

    --

    - People who believe other people have no right to live, got no right to live ...

    1. Re:There is no such thing as Java Programmer by geekBass · · Score: 2, Funny
      So, I guess, end of Java will end of lot of stupid people who should not have in the programming profession in the first place.

      And that will make sure the world is full of those really smart VB developers.

  36. 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.
  37. Re:OH GOOD, LETS REWRITE ALL SYSTEMS AGAIN by stratjakt · · Score: 2, Insightful

    The real world largely ignores the rambling of propeller-heads. There's more COBOL out in the wild than all of the Java ever written, and it isn't going anywhere.

    Most people understand "if it ain't broke, don't fix it".

    --
    I don't need no instructions to know how to rock!!!!
  38. Re:Shoehorn by theNote · · Score: 2, Interesting

    I think MS is taking the opposite approach, but not on the size scale side.

    I am currently developing in .NET, and solves one real life problem that no other solution brings to the table, cross language compatibility.

    I can't remember the last time I had to develop a client (not web) application that had to run on 2 or more platforms.

    In all my years, no one has ever said to me "build me such and such and make sure it runs on unix and windows without recompilation".

    However, I have been on many teams where everyone knew a different language or paradigm.
    This is the problem that .NET solves.
    The VB and OO coders can finally work together and speak the same APIs.

    If .NET becomes truly cross platform, great.
    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.

  39. 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: 2, Insightful

      So do dozens of other languages. Among them, Java is pretty mediocre and has numerous limitations and design flaws. For example, the array conformance is just broken, and so is the genericity implementation. The only thing Java has going for it over the competition is name recognition.

      And ubiquity. There are, IMHO, very few languages which fill the same niche as Java while still being common. And, no, I don't think Python, et al, fit the bill.

      Besides, if you are willing to put up with the patent and intellectual property problems that Java has, why not simply use Mono?

      Simple question: huh? I've *never* heard of these "patent and intellectual property problems" you're referring to. Ever.

      Anyway, I don't use Mono because, again, it's not ubiquitous. Most people have a JVM on their boxes these days. Can you say the same about Mono? Hardly... and yes, I know you can compile to executable, but I'm unaware if those executables are standalone (versus requiring various runtime libraries to operate, ala VB). Other than that, the only reason I don't use Mono is purely philosophical. *shrug* And no, I don't have those problems with Sun.

      You will give a damn, when Sun goes out of business, or when Sun does something stupid with Java2D (like basing it on OpenGL), or when they don't support your favorite operating system.

      Please... it's not like people can't create their own competing version. GNU gcj, anyone? Kaffee, on the VM side? There's just been no push toward it, mostly because it's *hard*.

      As for OS support, Java is still *far FAR* superior to .NET, so given the choice, I'd select Java for cross-platform development.

      Yes, and there are lots of people who also write open source Windows software. But they don't represent the mainstream of open source, and as a general approach to open source, it's self-defeating in the long run.

      Talk about a non-point. They don't represent the mainstream because it's not "cool" to develop OSS Windows apps. Moreover, the people who'd use your neato free Windows tool won't bother, since they're running a free OS. AND, Windows doesn't have as much room for new development, since there are a gazillion apps already available for the platform (hence no sense of a "niche" to fill).

      Besides, KDE developers certainly represented a segment of "main stream ... open source", and they had no problems using a closed toolkit. And their project is quite healthy, and I'd contend they'd still be doing just fine, even if Qt hadn't opened their toolkit...

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

  40. 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
  41. Mono? by *weasel · · Score: 2, Insightful

    lest we forget that microsoft did -not- shut down the open source .Net compatible project, i'll even grant a link.
    Mono

    As for a claim that .net hasn't taken off, I most strongly disagree. Any company whose business requirements have them developing more than a single application for windows have nearly all converted to .Net in my experience.

    with finalization on install, there is absolutely no performance loss between straight-C and C#. in fact, depending on your straight-C compiler, the C# code can run better (finalization takes specific processor optimizations into account).

    every coder i know that develops windows apps is working within the .Net framework. The problem with the perceived lack of adoption, is the broad branding of the development tools -and- the internet services as .Net.

    True, widespread adoption of the .Net web services has hardly budged (aside from some passport authentication). However, the framework and the development advances are most certainly in use.

    granted, this is based only on my own personal experience, but i deal with a number of vendors, and have a great number of contacts and coworkers whose experiences agree.

    yes, .Net only works on Microsoft - but the fact that it -does- work on 95% of business desktops (as opposed to Java which requires significant finicking to get going on those same desktops) is also a benefit for those who are dealing with business realities and not philosophical preferences.

    --
    // "Can't clowns and pirates just -try- to get along?"
    1. 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.

  42. .net is great if your already an MS shop by Billly+Gates · · Score: 2, Insightful
    First off I hate Microsoft for political reasons and I writing on a pure technical view. I am not trolling. Second I only played around with C# for a few weeks and I am not a professional developer by any means. If any developers who use both care to comment please do because I do not want to missinform.

    With that out of the way I looked up the Sun's pet shop program example in Java and then the MS version in C#.

    Look at the lines of code in the MS version? The gui portition has an 8th of the code that the java version has. Also version 2 of Microsoft's .net version is cross platform compliant as long as the database uses ADO. So its not slimmer because of MS specific code.

    You can do alot of things with .net with only a 3rd of the code!

    I heard the libraries cover more areas then Java but they are thinner then the ones Java already covers. Also C# supports enumators, pointers ( yes they are evil), and cross language support and integration. Java 1.5 is playing catchup.

    1. Re:.net is great if your already an MS shop by jrst · · Score: 2, Interesting

      It was originally intended to illustrate various Java technologies and the application of those technologies. It was intended to be a *teaching* tool.

      To take such an illustrative example, rearchitect it, then make any claims about efficiency, is/was ludicrous. Like taking sample code out of a book on Java, and then showing how an expert .Net programmer can do it so much more efficiently.

      Do some more research and you'll find that the Petshop project has been completely discredited as a comparison of Java and .Net.

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

  44. Re:VS sucks by k-zed · · Score: 2, Interesting
    That might be true; in fact, I used Visual Studio myself and it wasn't all bad. I don't exactly like Java either.


    However, what you say is no excuse for using and especially developing for anything that's even remotely related to Microsoft and it's closed-in, proprietary platform! Openness and portability are the most important things, and even more so these days. That means you shouldn't ever use .NET or anything such, even if the open alternatives are inferior. (IMHO. That doesn't mean it's not true though.)

    --
    we discovered a new way to think.
  45. Yeah, so? by klaxor · · Score: 2, 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.

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

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

    --

    -... --- .-. . -.. ..--..
  48. Re:Java, my abusive friend by throbbingbrain.com · · Score: 2, Interesting
    Came back with more knowledge and was disappointed by speed (ran on a slow machine while trying IDEs from Borland and Forte)
    Most newer IDEs provide far more functionality than anyone needs while learning tha language or working on simple applications. That contributes to the long startup times and some of the complexity.

    The MS Visual Studio .NET user interface is also quite slow unless you throw some serious hardware at it. 2GHz+ CPU, 1GB+ RAM to make it a bearable experience.
    Anyone know any good/quick IDEs for Java? (that would install on a RH9 distro, that is)
    Try Netbeans.
  49. 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.
  50. 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.

  51. Re:Portable? by NeXS · · Score: 2, Informative

    blam... I wonder what kind of java developper you are to even argue about java portability. Java IS portable. You can just download tomcat binaries and KNOW it will work on any OS with the proper jre.... I'm developping java applications for AIX, DIGITAL UNIX, Tru64, Solaris, LINUX I'm doing this on Netbeans (a java ide) on windows and executing them on their target os without any problem. So stop talking of what you don't know trying to be funny...

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

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

  54. Re:VS sucks by letxa2000 · · Score: 2, Insightful
    I haven't used any Java IDEs, but I agree with parent that VisualStudio sucks. Like virtually everything MS, it's become bloated.

    I do very little Microsoft development these days, but I have both VB3 as well as DevStudio6 installed in my Win4Lin Windows installation. When I need to crank out something real fast, I run VB3. When I need to qukckly reference the help files, I click on VB3's .HLP files which load immediately as opposed to the new stuff that takes quite awhile to bring up.

    In my opinion, Microsoft's IDE was at its height at VB3 and VC1.51 which I think was about 1993. Ever since then it's become more and more bloated. Sure, it does stuff that the older versions didn't. But just because it does more doesn't mean it's better--it just means it's bigger.

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

    1. Re:Web Applications Suck by lp_bugman · · Score: 2, Interesting

      That's a very GOOD point! The thendency now is to develop everything with a WEB front end but why???

      I'm fairly sure you don't need your accounting program with web interface and don't forget that inventory program developed with ASP ??

      What the F*!!!

      Some interfaces are just ackward if they are implemented as web applications.

      Please STOP trying to write everysingle thing for the web. Only a small percentage of applications benefit from it.

      Even for applications where you realy need to show web result to your clients... they can be just "REPORTING and CONSULTING" addons to your application not the hole fundation of it!

      --
      BSD licensed software can't be stolen....
    2. Re:Web Applications Suck by kalislashdot · · Score: 2, Interesting

      I would have to agree. All my professional life has been writing web-based apps. My current company has been for years trying to move everything to web-based so that way we aren't looked down to a certain desktop OS. The problem is that our new CRM uses a lot of Javascript to do all the complex stuff a web page can't do, so complex it only works right in 1 browser, guess which one. Thats right IE. This totally destoys the previous vision. My CIO knows jack shit and I will laugh when this all fails. I just jumped ship, away from the web department and to security department. I saw that ship sinking.

  56. Re:Java's not exactly pining for the fields just n by WWE-TicK · · Score: 2, Informative

    > On the other hand, there's no such thing as
    > embedded dot Net just yet.

    Then what the hell is this supposed to be?

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

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

  59. 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
  60. Re:Shoehorn by naarok · · Score: 2, Insightful

    Maybe your developing for the school market where being able to run the same code on both a Mac and a Windows box is a great feature. Even linux is starting to come into schools. Guess what? Our products will already work with linux.

    Sure, generally you know your target platform. But sometimes you don't. Also, since the toolset between unix and windows is very different, it is sometimes far easier to develop on one than the other.

    With Java, you develop on whichever platform makes it easy. You test and deploy on the target platform.

    I'm scared of the idea of one project written in many languages. The old web problem of HTML inside perl (or Java or any other language) should teach us that moving between languages on the fly requires a mental context switch that slows things down.

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

  62. Re:Java's not exactly pining for the fields just n by klaxor · · Score: 2, Informative
    So I guess if a phone isn't MIDP enabled, then you just ignore it? Or if you need to write code for something other than a cell phone?

    Granted, you don't give up much portability if you write in C++, provided you know how to write portable code. (Don't use system-specific API's, or if you do, at least wrap them in another layer...).

    And then there's the problem of Java not supporting the feature set of embedded devices. Is there really a setToastTimer method in Java? So I guess if was to use Java to write an app for my toaster, I'd have to settle for something that couldn't use the key functionality of the device?

    Quite frankly, due to the specialized nature of embedded devices, portability is pretty much a moot issue. You do need to access the platform-specific features. Yes, I suppose if you like playing tic-tac-toe on a cell phone you'd write in Java. But the chances that you'll be able to write program in Java which utilizes a cell phone's camera and microphone as a realtime video recorder are pretty small. Any software that's non-trivial will need to access the device-specific features.

  63. Re:VS sucks by dasmegabyte · · Score: 2, Insightful

    We have the server side of our client-server application running on the 1.1 Framework on XP Home using Sybase. Yeah, it would be "cheaper" under Linux, but then our clients would have to buy a new server. They already have windows for all their other apps, and buying new hardware comes from a different budget. No, I can't ask them make their own server out of tinfoil and LEDs.

    We do have a solution for single machines that uses Microsoft SQL Desktop Engine. That's up to 5 machines for no cash at all. That's pretty good in my book.

    In the end, unless you WANT it to, .NET doesn't lock you in to anything other than the most basic OS that the Framework will run on, which is Windows 98. The whole bit about NEEDING a copy of Windows Server isn't even remotely true. Just more OSS FUD about how everything Microsoft is more expensive. Sure, it can be. So can a Ford Focus once you start bolting on turbochargers and sexy paintjobs.

    --
    Hey freaks: now you're ju
  64. 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

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

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

  67. Have you even tried VS.NET?? by psxndc · · Score: 2, Informative
    VS.NET is a billion times better than VS6. VS.NET and C# are the only thing that made me say "Well, maybe MS products aren't all that bad". Seriously, check it out. VS.NET is pretty damn cool.

    psxndc

    --

    The emacs religion: to be saved, control excess.

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

  69. Competition by jj00 · · Score: 2, Interesting


    I'm posting late, so I doubt anyone will read this:

    .NET might be the best thing to happen to Java. Finally, there is some competition to Java. Sun and MS will try to make their baby the easiest / most powerful to use.

    Java has needed this for a long time. Ever noticed how long it took to get a For...Each statement in Java?

  70. 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
  71. Re:hmm lets look at jobs on monster by thebatlab · · Score: 2, Interesting

    So you've shown that .NET jobs are close to J2EE jobs, yet C# jobs are lower than Java which to me shows, in a way, how you can use the .NET platform and not be tied down to one specific language.

  72. Re:Java's not exactly pining for the fields just n by CommandNotFound · · Score: 2, Interesting

    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.

    Check out Eclipse for Java development. The workspace/perspective paradigm will take a day or two to get used to (plus the different key bindings), but this is a really nice IDE. I'll wager that MSFT will be copying the "lightbulb" feature of Eclipse that shows you a list of possible solutions to the problem, alongside a preview of the code changes this will entail. Very slick. The GUI could be a little more responsive, though, but so could VS.Net 2003 on a 1.8GHz P4.

    I don't think it has a form designer, but for the big projects Eclipse is geared toward those can be more liability than asset.

  73. They should fix their marketing by t_allardyce · · Score: 2, Interesting

    What?? .NET is a programming language?? I had no idea, i tried to read the Microsoft marketing crap but i couldnt figure out what .NET was other than an "enterprise solution" (something we're trying to sell to big companies), a "set of software technologies" (something that comes on a CD) and a "new generation of technology" (upgrade from whatever we sold you last year)

    --
    This comment does not represent the views or opinions of the user.
  74. 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
  75. Re:VS sucks by dasmegabyte · · Score: 2, Insightful

    Refactoring???

    You're complaining that VS.NET isn't as good an IDE because it doesn't offer a way to rewrite your code for you?

    There's a lot of really nice ways to organize your .NET code -- the #region tag is a prime example, as well as outlining -- so many that refactoring becomes unnecessary. Or at least, it becomes a waste of time.

    Secondly, if one were desinging a complete workflow system, one might think one would want to work in a system for designing such things, and not in ones' IDE. I mean, I don't want my mechanic designing my new car. Microsoft has an awesome tool for laying out workflow, database diagrams, etc, in Visio. Why do you want to integrate that with the tool you use for managing data, writing stored procedures and othewise doing grunt work? The tasks should remain separate, less you get so worked up in a particular design you start coding it prematurely...something I have DEFINITELY seen happen...

    --
    Hey freaks: now you're ju
  76. 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
  77. 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.

  78. Re:VS sucks by CommandNotFound · · Score: 2, Insightful

    Openness and portability are at best liberal afterthoughts...

    Hmmm... which is why many companies are having to essentially rewrite all their VB apps because their single-vendor locked-in language has no future. But hey, they were able to cut cost-to-market with VB5, so they saved a bundle, right?

  79. Re:VS sucks by dasmegabyte · · Score: 2, Insightful

    My company chooses Microsoft. Instead of bitching and moaning about it like a good slashdotter, I point out the good, and that makes me a fanboy?

    In that case, I am also a Maxwell House coffee fanboy, a Sanford pencils fanboy, a Novell Border Manager fanboy, and a Road Runner Business Class fanboy.

    --
    Hey freaks: now you're ju
  80. 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
  81. 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.

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

  83. 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"
  84. 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
  85. Re:VS sucks by anomalous+cohort · · Score: 2, Interesting

    Actually, VS.NET is pretty buggy once you start using it on large projects. It crashes a lot. The compile is sometimes really slow. The UI designer for web pages/controls is useless on pages with a complex DOM. It has integration glitches with VSS. VS.NET 2003 is not much better. I've been on teams for both a complex J2EE project and a complex .NET development project and I have tried a lot of IDEs. I still use emacs.

  86. Re:VS sucks by sterno · · Score: 2, Insightful

    How many IDE's are there to develop .net applications? One.

    That's the problem here. VS might be better than most Java IDE's at most things, but that doesn't mean it's better than all Java IDE's at all things. If I want to develop servlets, I might want to use a different IDE than if I design applets.

    Also, how much does VS cost? Netbeans: zero. Eclipse: zero. And if I want to pay some money there are java IDE's out there, and because they have to compete for my money they have greater incentive to provide useful features and responsive support.

    --
    This sig has been temporarily disconnected or is no longer in service
  87. no embeddable J2EE either by axxackall · · Score: 2, Insightful
    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.

    The comparison must be between .Net and J2EE, while J2ME and even J2SE are seriously lacking in component architecture and other features comparing to both .Net and J2EE.

    So, once we make a comparison correctly (J2EE vs .Net) we can state: there is no such thing as embeddable J2EE just yet, while there is something like compact .Net framework.

    Seems to me Java is anyhing but small, comparing to .Net - probably thanks to the way how .Net is based on XML.

    Either way, I'll want $699 for my fp, beeyotch.

    I think you've been in a serious rush with your fp, that's why you comment is so poor. I just wonder why is your comment so overrated? Is there such thing as FM (First Mod)?

    --

    Less is more !
  88. Huh? by piobair · · Score: 2, Informative

    "The adoption of Java was based on Web development"

    What? Adoption of Java is based on platform portability and scalable distributed enterprise computing. (With the .NET dirty little secret of: if you want to do anything meaningful you still have to use COM/COM+) .NET is neither.

    Pish-tosh. Now, the adoption of Perl WAS based on web development.

    *ducks*

    --
    I have a second sig, I call it sig#2.
  89. 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

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

  91. Re:Shoehorn by ErikZ · · Score: 2, Funny

    Did you just say that .net will require more programmers than JAVA?

    Well then, I support .net.

    --
    Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
  92. Re:VS sucks by Forgotten · · Score: 2, Insightful

    Having had the misfortune of being stuck with a PICK BASIC application running inside Universe (GEAC Advance), I think the reason is that no one really writes software. Companies buy software and patch it ad infinitum. Think about why a crufty old property like WordPerfect was passed from hand to hand, when if you want a decent WP it was obvious it would be better to write one from scratch (something that's been done many times by others). Part of it is brand name, but you can retain that without having to taint yourself with code. The reason is that it's perceived as safer to buy something that works, or worked in the past - however badly - and patch it up. This is why software developers laugh at duct tape jokes.

    At least Universe is generally sitting on some reasonable Unix box. Pity the people who ran PICK on native hardware.

  93. Re:Shoehorn by Fnord · · Score: 2, Interesting

    Just more capacity. The NT4 box was just for convenience, it was what the developers had on their desks. The linux boxes were our first production environment, but turned out not to be powerful enough to handle everything when we got more traffic and the app got more complex capabilities. When we went to the e6500s it was actually a mixed environment. We had some things running on those e6500s, some things stayed on the linux boxes. Mind you, this could have been avoided by better planning, but java's portability let us do a bit of exploring first.

  94. Re:VS sucks by m0nk3ym1nd · · Score: 2, Interesting

    Baloney. I'm having a music download website developed -- it'll be online soon, I hope -- and one of my absolute requirements is that it *must* be free/open source software. Why? If my website ever gets big enough to threaten The Power (RIAA, BSA, M$FT, etc) then I'd begin to view proprietary software licenses as a distinct liability. The entire existence of the proprietary licensors depends on The Power, after all. They'll find some pretense to revoke my Flash license, say, or keep me tied up in lawsuits until I fold. Nope, it's FOSS for me, I can't afford *not* to do it that way. Am I paranoid? Or is it possible proprietary licenses could be used against an 'enemy of the state' such as myself? No, I'm not paranoid. The BSA busted schools in PA and Oregon for not having a piece of paper to go with every HDD contaminated with Windows, for crying out loud.

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

  96. no one will care, but the big by f00zbll · · Score: 2, Interesting

    problem with .NET is Microsoft is still encouraging bad development habits. I can tell you first hand from reading ASP.NET code written in VB that it is horrendous. Most of the examples included with .NET do not use good OO practices for the C# examples. The worst part is it encourages the same lazy hard to read coding practices. Without fixing that, it won't make .NET any cheaper, it's just another trick to milk more money from customers.

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

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

  99. Re:Java's not exactly pining for the fields just n by tricorn · · Score: 2, Insightful

    A portable VM for Pascal ... maybe you could call the machine language for that "pcode"...? Wow, I wonder why no one ever thought of doing something like that.

  100. VS.Net to compile Linux... by thedugal · · Score: 2, Interesting

    Yes. Get yourself a cygwin setup. Create a Makefile win32 project in VS.Net. Set your PATH and other ENV vars in the VS preferences, then setup your makefile to use GCC. You will have to edit your makefile manually whenever you add to your project unless you write a plugin. Nonetheless, you will be smiling after your first project.

    The IDE absolutely kicks arse. Most of the arguments here appear to boil down to VS.Net sucks because it's cool to hate Microsoft.

    If you are running pure Linux and can't abide Microsoft for whatever reason, I suggest you get Anjuta. Anjuta is great for building Linux projects particularly of the gnome variety.

    As a sidenote, I just finished a rather large project using JBuilder, and I must say that I like it very much. I still think VS.Net is the #1 IDE on the market, but for java, JBuilder is quite nice.

  101. 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.
  102. It's really quite simple by FunkyMonkey · · Score: 2, Interesting

    I just did a job search on monster.com:

    c# - 704 results
    java - 4398 results


    Yeah, there's just SO much more demand for .NET programmers...

  103. Re:VS sucks by bmajik · · Score: 2, Informative

    Hi.

    I work in the developer tools division at Microsoft. Current plans say that my team will be supporting VB6 until the year 2012, longer than any other Microsoft product, and a notable rare exception to the stanard 7years-post-FCS policy that we just adopted.

    VB is the most widely sold microsoft development product. AFAIK, It's got more users than the rest of Visual Studio combined. It is the bread and butter of millions of programmers out there.

    VB6 isn't going anywhere because there is lots of legacy code out there, and lots of satisfied customers.

    I have written several new applications with VB6, even though I was using VB.NET since before you had any idea it would ever exist and prefer it in generally all ways to VB6. I decided to use VB6 because the component would only be called via cscript.exe using COM latebinding. Making a COM DLL in VB6 is free, doing it in Managed code requires checking a box in your project, but the deployment scenario requires the .NET runtime, and the user needs to regasm your managed dll for COM interop.

    My team internally developed a major peice of VB6 code over the period of several years. It was re-written from scratch in VB.NET in several months, and roughly 1/3rd to 1/2 the lines of code. It's certainly faster and less awkward to refactor, as well.

    In summary
    1) VB6 was great, but VB.NET is better for almost everything
    2) VB6 has a huge installed base and is incredibly critical to microsoft's target development audience. As much as we sometimes want to, we cant just "shut it off".
    3) As someone who ported over 500 small VB programs to VB.NET _before_ there was the in-box migration tool, I feel qualified to speak on the portability and learning curve issues. Yes, there are issues, but going from VB6 -> VB.NET is less obtuse than going from say, VB -> Java.
    4) As long as windows executes native Win32 PE executables (even via WOW64), VB6 isn't "dead". Apps will continue to work, and the same VB6 compiler will continue to run.
    6) VB6 first shipped in 1998 on NT4. It has been tested against every subsequent Microsoft OS. I am friends with the people that do this testing. W2k3 wasn't allowed to ship until we verified that thousands of scenarios ran on it identically to how they ran in 1998.

    --
    My opinions are my own, and do not necessarily represent those of my employer.
  104. Why do .NET shops insist on throwing money away? by chuston · · Score: 2, Insightful

    I am baffled by these conflicts.

    With Java I have a huge open source community as well as commerical vendors. I have upteen choices for object persistance, IDEs, distributed infrastructure, graphics toolkits, widget toolkits, web tools, ... there seem to be 10 choices for nearly everything.

    If I run into a problem with a java API - 98 times out of a 100 it's already fixed or a work around identitfied. If there's fundamental design error in the tool - I've got 10 other choices.

    I can develop and deploy nearly transparently to Windows, Mac OS X, Linux, Sun, etc... I regularly develop on Mac OS X and deploy to Linux and Sun with no hassles - none. (Before the PowerBook it was develop on NT4/cygwin and deploy to Linux and Sun and I had to worry about backslashes vs forward slashes, semicolons vs colons, and .bat vs. .sh - not too painful but even that's gone now that I'm on OS X)

    Why would you sacrafice all of these choices and options? (Read about "Real Options" to see how these choices have concrete dollar values - sacraficing options is just throwing money away.)

    I hear arguments like "we've already got COM developers" - Is it really that hard for them to learn Java? How much would two weeks of downtime cost for a shop of 20 developers? Figure 75k/developer (with overhead), that's $1500 a week - times 20 - 30k/week - times 2 - $60k (4% of the annual salary budget). Add to it about 3 months of 75% productivity (25% in month 1, 50% month 2, 75% month 3, 100% month 4) - that's another $94k. So hand wave a little and say that switching to Java will cost $150-$200k for a development shop with $1.5-2 million/annum budget. (Maybe add another $100k for training and what ever.)

    That's the same cost as being 4-7 weeks late on a project deadline. When's the last time you did that?

    A "real options" analysis would likely show the choices available in the Java world are worth maybe ten times that. Figure a company with $2MM dev budget has a $20MM-$70MM annual revenue, there's a good chance the flexibility from choices can make a 3-10% difference in revenue - an even better chance of 1-3% increase per year over 3 years. (I know that's not discounted but it's a back of the envelope thing not a 10Q filing.)

    How much would you save on VB Studio licenses? .NET deployment? How much downtime saved from moving off wormy Windows servers and onto Linux? (100 user Linux license * 10 CPUs + 100 user postgres license = total of ZERO dollars.) (Don't give us that "only if you don't value your time" malarchy either - Windows eats far more of my time in 3 months than Linux does in 2 years.)

    How much might you save by leveraging amazing tools like those used in Garsomke's continuous integration environment (see http://www.sys-con.com/java/article.cfm?id=1945)? Apache's projects alone are worth a great deal of money to a development shop - add in Source Forge and the value is down right spooky.

    What else I wonder? (Let's not forget the simple freedom from Microsoft lock-in.)

    What's the counter argument - that there are some incremental IDE features in VS Studio?

    It seems simple - black and white (and green).