Slashdot Mirror


Trouble Ahead for Java

Jeremy Geelan writes "The editor-in-chief of the world's largest journal devoted to Java wonders whether, with the arrival of Microsoft's C# programming language on the scene, Java perhaps has only 5 years or so left to live. Javaland has erupted! This is a little like Bill Gates wondering out loud whether to send Scott McNealy a Christmas card. But is Alan Williamson right? Read this short article and decide for yourself."

225 of 670 comments (clear)

  1. Printable Version by The+Slashdolt · · Score: 4, Informative

    All pages on one page here

    --
    mp3's are only for those with bad memories
    1. Re:Printable Version by 56ker · · Score: 2

      Sadly, they are being led a merry dance by Pied Piper Gates.

      Who hasn't been?

  2. Not likely :) by Desmoden · · Score: 2, Interesting


    Java is popular because the programmers like it. Java may or may not be long for this world, but I can guarentee you that C# is not going to be what pushes it off the hill.

    It's really a funny idea :)

    Des

    1. Re:Not likely :) by Peyna · · Score: 4, Insightful

      Pure OO was thought up by the creators of smalltalk, like Alan Kay. Java isn't even pure OO in the same sense that smalltalk is.

      --
      What?
    2. Re:Not likely :) by jcr · · Score: 2

      wrong. Java is popular because managers like it.

      I beg to differ. Managers *loved* Ada.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    3. Re:Not likely :) by pmz · · Score: 2, Informative

      I'm not sure there is a "pure OO", since there are so many variations of OO over such a long history. There are general information-modeling languages, such as EXPRESS, middle-of-the-road programming languages, such as C++, limited but useful programming languages, such as Java, and very limited languages, such as C, Pascal, etc. All of these languages exhibit OO-ness, but there isn't a clear time when OO suddenly sprang into being.

      There may be a paper somewhere that began the OO buzz, but OO really started when philosophers began classifying reality (this may even have occurred before the 1970s!).

    4. Re:Not likely :) by MisterBlister · · Score: 2

      Well your second statement proves your first statement wrong. The fact that Java has primitive types to appease the C/C++ programmers (FYI, I'm a C++ programmer by trade, so I'm not deriding C/C++ programmers) makes it non-'Pure OO'. To be Pure-OO, everything must be an object and derived from one single base type -- that is not the case in Java because of the primitives (int, byte, etc).

    5. Re:Not likely :) by Osty · · Score: 2, Informative

      (emphasis added by me)


      To be Pure-OO, everything must be an object and derived from one single base type -- that is not the case in Java because of the primitives (int, byte, etc).

      Egads, I hope not! That's the sickest, most incorrect thing I've ever heard. That is extremely fragile. What happens if you or someone else adds a virtual/abstract method somewhere up the inheritence tree? You now have to either implement a default (thus making it no longer abstract) in the class where the new method is added, or at least in any classes directly derived from that one. Worst-case scenario is that all inherited classes will need to implement that new method. This is bad. Not to mention that it's simply poor design (don't believe me? go read Design Patterns and see for yourself -- you're making arbitrary relationships that have no reason to exist).


      The only reason I can see to justify the "everything derived from a single base type" methodology would be for implementing things like generic containers. Obviously, Java must work this way because it doesn't have any concept of generic programming (C++ templates, for instance -- there are other ways to implement generic programming concepts without requiring everything to derive from a single class, but I'm not going to go into all of that now). In other words, I wouldn't really call Java "Pure OO" (whatever that means).

    6. Re:Not likely :) by smack.addict · · Score: 5, Insightful
      I agree that Java is on the way out.

      I seriously doubt it. All major metrics such as adoption in companies, teaching in education, and adoption by programmers suggests it is continuously growing. Furthermore, the only potential competitor on the market is C# which, while not an inferior clone, is a clone. Jumping languages is a hard task. C# will capture the windows client development market and the microsoft people who never adopted Java in the first place. It is hard to see what will compell people already in the Java camp to move to C#.

      The language is awkward and unexpressive; its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance). But we all know that you cannot prevent the programmer from writing bad code. OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.

      You can succesfully prevent coders from being stupid. The difference between C and Java is that you have to be an expert to write good C code; you have to be an expert to write bad Java code. What you want from a language is a language that maps well to architectural models so that your architects are making the decisions, not your immature and inexperienced code monkeys. Java is that language. C# is almost that language.

      And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.

      The libraries, in general, are actually quite well designed. Especially the database access API. The problem is, novice coders don't generally understand that there are things like non-western calendaring systems, multi-byte character sets, and alternate forms for displaying dates. These libraries make sure such novice programmers do not code a company into a box.

      Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first. And the JDK is one of the least portable programs you'll find on a modern system. As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft

      There is no way to get cross-platform behavior without installing a virtual machine. Whether you call that VM a browser, an emulator, or a VM is irrelevant. And Java really has no dependence on Sun. It is much more dependent on IBM than Sun.

      Java has succeeded because it solves real programming issues for large-scale software development.

    7. Re:Not likely :) by Usquebaugh · · Score: 2

      While is dis-agree on a number of points this post is far from a troll, stupid moderators.

      Java is not on the way out, more and more small companies are using it for their in house development. Small companies are where the majority of commercial code gets written. they used COBOL now they're using Java. Of course they've used VB in between but M$ is screwing them so badly they're deciding not to be tied in.

      Java is great from an application development point of view. I do not care about pointers, STL etc etc I want to write code that is easy to differentiate between business logic and systems logic. Java allows my colleagues to see what the hell I was trying to do not how I was trying to be clever. Get a decent framework and you never have to worry if that foreign key is going to be deleted or if the help text is going to be displayed at the right time. All I have to worry about is wether I can calculate value given quantity and price.

      C#=M$ & Java=Sun I'm pretty sure this is understood. Although, Sun is far more responsive in the development of Java than M$ is about any of it's langugages.

    8. Re:Not likely :) by angel'o'sphere · · Score: 4, Insightful

      You are moderated as TROLL.

      If I would metamoderate you I would say: unfair.

      But the bullshit you wrote deserves a TROLL rating ... unfortunatly the moderation system has no option: WRONG or a option BULLSHIT.


      I agree that Java is on the way out. The language is awkward and unexpressive;

      As unexpressive as you can be with out templates (fixed in the next java releas, 1.5 will have templates) and without operator overloading(like using * for dereferencing iterators in STL).
      the rest is C or C++, so why is it not expressive?


      its main appeal seems to be in preventing stupid programmers from doing things their brains can't understand (like multiple inheritance).


      a) how often did you use multiple inheritance?
      b) are you sure it was the right thing to do in more than 50% of the cases?
      c) you ever had a memory leak in C++?
      d) you ever had a dangling pointer in C++?

      Oh, I'm just asking, 4 things in Java can not happen ...


      But we all know that you cannot prevent the programmer from writing bad code.


      And what do you want to say with that? When you started programming you wrote perfect code from your first day I asume.


      OK, pointer safety and garbage collection is useful, but c'mon, practically every other language apart from C and C++ has this too, and C++ is pretty safe if you program it carefully and use the STL.


      So STL has a garbage collector? As well as Pascal has(other languages)?

      But now it comes, the above is only sarcasm ...

      And the libraries: urgh. They all seem to be designed by committee and make QBASIC look elegant. The standard date library for example, or database access.


      Seems you have in depth Java programming experiance. And also QBASIC experiance. So in QBASIC it is more easy to acces a ODBC/JDBC/SQL data base than in Java JDBC(a API/library you claim is designed by commitee)?

      I think only PHP and Perl are easyer in data base accessing than Java. Oops, I forgott SQL.


      Java claims to be cross-platform, but it only does this by creating a whole new platform on top which has to be installed first.

      And? is that a drawback or what? What does .NET?
      What did the UCSD P-system? But more interesting: what would be your approach?

      And the JDK is one of the least portable programs you'll find on a modern system.


      This claim is very interesting as the only part of the JDK which is vendor or platform specific is the VM. The compiler and all tools are written in ... err ... Java, I guess.


      As for being vendor independent: don't make me laugh. Java is just as dependent on Sun as Windows is on Microsoft. Even other people like IBM who have their own JVMs have to license the code from Sun.

      What a laugh. IBM has licensed NOTHING from Sun, why should they?
      Probably they have licensed the SUN standard libraries, why not? Much easyer then writing 32MB source code for your self.


      The licence for J2EE seems to forbid using it for any purpose whatsoever: I don't know whether you have to 'purchase' the commercial version from Sun, but it can't be cheap.

      I suggest two things:
      a) reading the SUN licenses
      b) downloading the stuff, its for free, as in beer.

      Your customer can download it as well. And most stuff like JRE can be redistributed with your own stuff, for FREE. No special license required.


      In fact Java is less vendor-neutral than Windows, since the Wine project seems to have done a better job of cloning the Win32 API than the various free Java projects have with the JDK and libraries. (Not to diss the work these projects have done: but there's just so much of it.

      Well, you gave the reasons why FREE solutions failed so far. The point is: FREE is a political or ideological term. The free as in libre is simply not interesting for 90% of the java users. They only need free as in beer or free as in java community lisence.


      And every new release brings another set of 'standard' APIs for which the only existing implementation is Sun's.)


      Plain wrong: tomcat, JBoss, Jetty, Orion, BEA Web Logic, WebSphere, HPs XYZ, Sonys XYZ, Soniq MQ ... Oracle 9i ... well there are hundrets of implementations of SUNs APIs.

      Java has succeeded by marketing and not for technical reasons. Microsoft is better than Sun at marketing, so C# will win.
      -- Ed Avis epa98@doc.ic.ac.uk


      I disagree. As soon as you can call me with a mobile phone on which C# and .NET is running ... I give you 50% of my SUN shares.

      Regards,
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Not likely :) by ameoba · · Score: 2

      People arguing over ideological purity in language paradigms lose sight of the fact that real people need to use these TOOLS in the real world if their existance is to be justified. Compromise is good; there's a reason why Smalltalk is a niche language and Java and C++ are so widely used. That same 'purity' that makes Smalltalk so much better also limits its expressiveness.

      Personally, I'm quite fond of Python, it lets you use the appropriate abstractions where you need them; It's got OO, but no so much that you can't ignore it; It's got FP, but not so much that you can't write normal loops.

      --
      my sig's at the bottom of the page.
    10. Re:Not likely :) by Tablizer · · Score: 2, Interesting

      (* Pure OO was thought up by the creators of smalltalk, like Alan Kay. Java isn't even pure OO in the same sense that smalltalk is. *)

      Although Alan Kay coined the term "object oriented" and documented many of its concepts, it is generally agreed that OOP was born in 1967 via the process simulation language "Simula-67".

      The inventors of Simula-67 just didn't know it was time to make buzzwords around thier creation.

      And, there is no standard measurement of what "pure OO" actually means. It is true that Smalltalk's primatives tend to be more OOP than Java's. However, that is mostly a syntactical issue to most programmers. For example, you could replace the language's string handlers in Smalltalk easier and more transparently than with Java. However, few programmers are going to bother in practice. Thus, it is mostly a bragging point cliche rather than something that makes real-world development quicker, faster, and cheaper.

      oop.ismad.com

    11. Re:Not likely :) by Ian+Bicking · · Score: 3, Informative
      To be Pure-OO, everything must be an object and derived from one single base type -- that is not the case in Java because of the primitives (int, byte, etc).
      I don't think that's true at all -- OO can look very different while still being OO. SELF, a very OO system (and a predecessor to Java) had no classes -- you could use the class pattern, but the class was not fundamental the way it is in Smalltalk.

      Lisp OO systems are even more different, as they have no methods, but they deal with base types just fine. Instead of methods they have functions, with overloading similar to C++ -- except, unlike C++, all type checking and dispatching is done at runtime, not compiletime. In fact, this isn't that much different from other OO systems -- they all boil down to calling a normal function, where that function is determined by the type of one or more of the arguments.

      The problem with Java is that it is statically typed. Whether dynamicism beyond static typing is necessary for OO is less clear, but Smalltalk is more dynamic than Java in more ways than just typing -- it also makes things like proxy classes very easy (also used heavily in Objective C). But that's just cool, I don't know if it's necessarily OO.

    12. Re:Not likely :) by Ian+Bicking · · Score: 2
      Although Alan Kay coined the term "object oriented" and documented many of its concepts, it is generally agreed that OOP was born in 1967 via the process simulation language "Simula-67".
      I heard Alan Kay give a speach where he identified what he believed to be the first object-oriented programming to be by an unknown officer in the military (not OO programming language, but OO programming). It was a tape-based file system, where at well-known locations at the beginning of the tape was stored code to access data in other parts of the tape. So instead of accessing the tape based on a known structure, you accessed it through what were, in effect, methods.

      Their might have been OO programming before then -- good ideas get implemented before people even know what they are implementing. Later on they might realize, or someone else might realize, and try to create a more conscious, formal understanding of what was going on. But big ideas like OO are never really just thought up.

    13. Re:Not likely :) by ergo98 · · Score: 2, Interesting

      My personal opinion is that within 2 years C# will be tied or slowly overtaking Java for server-side code. The client-side will be dominated by .NET clients for the desktop and DHTML (or a derivative thereof). Within 4-5 years, Java will be marginalised into cell-phones/PDAs and will likely be offering interoperability with .NET which will have become the de facto standard for server technology.

      As a long-time Microsoft droid (with several Microsoft composite certifications to prove it), I have to respectfully disagree: To me it appears that .NET has gone over like a lead balloon, and the industries apathy for it could not be more apparent. Despite it being the future, local job listings show Java leading C# job lists approximately 50:1, and of those few C# listings, most all have it as "one of many laundry list nice-to-have languages". I have no opinion personally about J2EE or C#/.NET, however it is astounding how this has been a giant paradigm shift that the industry just refuses to embrace.

      If I had to put it into a nutshell why, I'd say that Microsoft has "revolutionized" a few too many times, and companies are getting sick of seeing their investments in Microsoft technology being obsoleted. .NET brings a new component model that fundamentally obsoletes COM, rendering millions of hours of work wasted (yeah you can wrap a COM object in a .NET wrapper, however it isn't managed and has the standard MS slant of it being "dirtier" in some abstract, undefined way). Microsoft is in a continuous game of selling new software, and to do that they need to convince you that what you have is obsolete, and in doing so they continually obsolete customers momentum and investment, and there is absolutely no doubt that there is growing resentment. In just the past few years I've gone from being a dyed in the wool MS advocate, to actively encouraging the use of open standards and more vendor neutral tools : It isn't my responsibility to help Microsoft continue the multiple sales growth, and their dominance says that to continue to do it they'll have to start bleeding every customer that much more.

    14. Re:Not likely :) by joto · · Score: 2
      And, not to forget, there are pure OO languages, such as Smalltalk, Self, and CLOS. And there are good OO-languages (albeit not completely "pure" in the sense of you not being able to subclass an integer), such as Java, Eiffel, Sather, Beta, Python, and even C++ (and not to forget: a whole lot of other languages).

      The OOP-buzz started with SmallTalk (although Simula was the first programming language supporting OOP (and yes, that was before 1970)). Everything OO, but not OOP (OOD, OOA, OODB, etc) originated with OOP.

      Classifying reality is only relevant in class-based models of OO-programming. And many people does not tout that as the main reason for using OO (myself included). And the reason for most programming languages not being purely OO, is because most programming language designers also have other goals (otherwise, we would all be programming in SmallTalk or Self).

      OOP is for clean ways of reducing coupling, managing change, and allowing reuse in and between software projects. If you want to classify reality, you need a richer modelling language, such as e.g. logic, (or mathematics, depending on your viewpoint).

      Whether EXPRESS falls into this role I don't know (never heard about it), but if it is designed for modelling, and not for execution, it isn't completely unlikely (although most currently existing modelling languages trade off generality somewhere, because their ultimate goal is to produce software, not model reality).

    15. Re:Not likely :) by xtremex · · Score: 2

      Hmmmm, since I no longer program for a living (I like to program on my OWN terms), I do freelance on projects every now and then, and I program freeware and Open Source software. I like to program on my own terms, and I'll use any damn language I please as long as it does the job. I rememebr my last programming gig. They need a program done. They said it HAS to be in VB. I asked them why. They said that's all we know about. It didnt matter that they would NEVER see the code, or that when I gave them the final product 4 weeks later they were happy. It WASN'T in VB. (It was Delphi). Why Delphi? I honestly didn't know how to do what they wanted in VB. It would have taken longer fo rme to research it then to just write it in Delphi, which I knew how to do it in

      --
      If you're not a Liberal in your 20's, then you have no heart.If you're still a Liberal in your 30's you have no brain.
    16. Re:Not likely :) by joto · · Score: 2
      I'm surprised. Do you really find it hard to make Ocaml code fast?

      I would agree about Erlang (whose main implementation actually is quite slow), and Haskell (which it is really really hard to compile efficiently, and even harder to optimize unless you wrote the compiler). But Ocaml?

      Ocaml's native compilers are actually really fast, at least comparable to gcc (but maybe not to even more optimizing compilers). If you get much worse than 50% of gcc's speed you must be doing something really wrong!

    17. Re:Not likely :) by Anonymous+Brave+Guy · · Score: 2

      I wholeheartedly agree; it's much easier to write bad code in Java and not notice you've done it than it is in C. The difference, IMHO, is that anyone who's still using C seriously is aware of its limitations, the potential issues of buffer overruns, etc. They like the low level control, they have learned to use it, and they make it work for them.

      While the same could, of course, be said of some Java programmers, many of those who jumped from the C++ bandwagon to the Java one a few years ago did so precisely because they didn't grok the low level stuff. They trust Java to prevent their resource leaks because it has GC (mistake). They knock multiple inheritance, then use incomprehensible hacks on the odd occasions they need the concept (mistake). They don't even see the problems with the Java containers library, and claim it's better then STL, then wonder why they get exceptions left, right and centre as a result of the casting it forces (mistake). You get the picture. :-)

      I think the underlying point is that "safe" languages like Java almost by their nature attract programmers who are going to be complacent. Unless proper training is given to those programmers, or they have sufficient experience of "unsafe" languages to draw upon, they will learn to trust their language too much, and the results are not pretty. OTOH, "dangerous" languages like C and C++ demand programmers with the skill and mindset to work with the language's strengths, and not fall prey to their weaknesses. (And, of course, C++ shares many of Java's technical advantages over C anyway.) I'm not sure the problem is so much the language as the kind of programmer it attracts -- interestingly, the same is probably true of Visual Basic -- but the fact remains that I'd much rather have a programmer with 5 years of C behind him than 5 years of Java, even if I were about to write a project in Java.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    18. Re:Not likely :) by Anonymous+Brave+Guy · · Score: 2

      It's too bad the "bs" moderation you suggested doesn't exist, because I'm afraid that, being entirely neutral and objective, several of your statements would qualify for it.

      To correct a few of the more glaring errors...

      • Java's proposed generics in 1.5 are nowhere close to the power of C++'s templates. They're a quick hack to get generic containers into the language, which is a far cry from the state-of-the-art C++ template research.
      • In answer to your four questions: yes, I have used MI in C++, though only rarely, and having written and maintained such code I think it was the correct solution close to 100% of the time. I have not suffered from memory leaks or dangling pointers any time I can remember in the last few years. Oh, and Java can leak resources faster than a broken fuel tank, so please don't consider it superior in any way here. Java's GC only deals with memory; its overall resource management is years behind the sophistication of the C++ approach.
      • The STL doesn't need a GC, neither does most of C++, because we have concepts like passing by value and local variables, so we don't have to clutter code with using new everywhere. Why do Java-ites insist on the myth that memory leaks are everywhere in C++? It's actually quite hard to create them. Granted, STL containers of pointers are a problem for the current standard C++ library, but hey, you can just download a better set from Boost for now, and they'll probably be standard in the next revision anyway. Considering that Java can't even make the distinction between storing by value or by reference, I hardly think this qualifies as a superior feature for that language, either.
      • Oh, yeah, and Java's libraries frequently do suck. They have been put together and expanded far too fast, without adequate forethought, and now they have to live with the mess forever to avoid breaking old code. AWT and Swing are hideous, the containers are a joke, writing the basic "Hello, what's your name?" function for the first class requires a deep understanding of dozens of stream classes, the use of Integer and such are just a hack to cover an obvious flaw in the language. I could go on, but I'm not here to bash Java, just your assertion that what the previous poster wrote was bs.

      Please, before you go shouting at people at such length, check the facts.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    19. Re:Not likely :) by RFC959 · · Score: 2

      Hey, I would have just said that obviously everybody's an instant expert at Java. :-) More seriously - so it protects you from stuff like buffer overflows. Big whoop. It doesn't prevent you from writing utterly crap algorithms or having messed-up logic in your program, which is every bit as much "bad code" as things like buffer overflows or failure to cast properly.

    20. Re:Not likely :) by Ed+Avis · · Score: 2
      You can succesfully prevent coders from being stupid.

      By code review and education - yes. By a machine applying an arbitrary set of rules - no, of course not. If it were possible for the language designers to know in advance exactly what 'stupid' consists of for any given programming task, and it were possible to write a compiler to enforce this, then most programmers would be out of a job.

      Every language has missing features and programming styles it doesn't directly support, there's nothing wrong with that. But Java is unique in trying to cover up for its deficiencies by claiming that those programming styles are never needed, or only a foolish programmer would try to use them. At least, this is the standard line from many Slashdot posters - the language designers themselves are probably not so arrogant.

      What you want from a language is a language that maps well to architectural models so that your architects are making the decisions, not your immature and inexperienced code monkeys.

      I can't imagine that such a way of organizing programmers - a separation into 'architects' and 'monkeys' - could ever really work. At my last employer there was something a bit like this, and the architects got cut off from what it was really like to use the product and produced horribly baroque designs, while some of the monkeys wrote code of unusably poor quality. My feeling is that every programmer should be able to do both design and implementation competently. But I don't have enough experience to say for sure that this division won't work - maybe you have experience of successfully programming in such an environment?

      FWIW, if you did want a language that mapped well to your chosen 'architecture', it's much more likely to be C++ or even Perl rather than Java. Java supports only a rather simplistic view of the world - your chosen design might naturally require multiple inheritance (or virtual inheritance), for example. And of course the implementation people would appreciate a less cumbersome language to put things into code, without having to resort to circumlocutions like a.plus(55) or manually boxing things into Integers and Chars to store them in containers.

      The problem is, novice coders don't generally understand that there are things like non-western calendaring systems, multi-byte character sets, and alternate forms for displaying dates.

      The multibyte characters stuff I agree with, of course. But not the weird dates. This was exactly the example that made me think 'what an overengineered crock'. Can you honestly say that the typical application requires support for non-Western calendars? The 80-20 rule would seem to apply strongly in this case. What Sun should have done is include a simple date library for the common case, ideally something like Perl's excellent Date::Manip. Then if it is really needed (which I doubt) another set of classes can be provided for conversion to foreign calendars. Support for the Aztec calendar is cute when it's an extra toy in Emacs, but it shouldn't mean you have to wade through a complex API as part of a standard date library. It's classic design by committee / second-system syndrome / insert favourite phase for excessively complex software. Perhaps caused by a separation of the 'architects' from those who actually have to use the stuff.

      --
      -- Ed Avis ed@membled.com
    21. Re:Not likely :) by Ed+Avis · · Score: 2

      OK, you got me. I confess. I do have a reasonable amount of Java experience, but not so much C++, and hardly any QBASIC - the reference to which was entirely rhetorical :-). The non-portablility of the JDK: this may be more due to the fact that Sun controls the source than technical issues - but still, things like just-in-time compilers are going to be pretty OS and processor dependent. I wonder whether the free BSDs are able to successfully run Sun's Linux JDK - they can run most other Linux binaries.

      About J2EE - I know you can download it free of charge, but subject to a licence agreement that you won't use it commercially. Of course I expect most companies ignore this, but if Sun did decide to start enforcing it a lot of people could get very red faces. I am talking about J2EE, not the JDK or JRE.

      The phrase 'vendor-neutral' or 'vendor-independent' does more or less imply free as in speech. At least, it means you can easily get a complete implementation over which Sun has no control. I agree, most Java users don't care about this, they just want free-as-in-beer, but the marketing hype around Java tries to suggest that Java is not tied to a single company, unlike (say) Windows.

      --
      -- Ed Avis ed@membled.com
    22. Re:Not likely :) by xtremex · · Score: 2

      Yeah..I decided I was too combative to be a programmer :) I refused to sit in a cube and punch a way code for 12 hours for someone else. I'd rather sit at home and punch away code for me :)

      --
      If you're not a Liberal in your 20's, then you have no heart.If you're still a Liberal in your 30's you have no brain.
    23. Re:Not likely :) by smack.addict · · Score: 2
      By code review and education - yes. By a machine applying an arbitrary set of rules - no, of course not. If it were possible for the language designers to know in advance exactly what 'stupid' consists of for any given programming task, and it were possible to write a compiler to enforce this, then most programmers would be out of a job.

      I have seen it work successfully in many environments now for six years. This is a vast change from what I have seen at shops using less strict languages, especially C++.

      I can't imagine that such a way of organizing programmers - a separation into 'architects' and 'monkeys' - could ever really work. At my last employer there was something a bit like this, and the architects got cut off from what it was really like to use the product and produced horribly baroque designs, while some of the monkeys wrote code of unusably poor quality.

      Why the hell would you have your architects doing the usability engineering? You should have usability engineers (aka information architects) handling that job.

      But I don't have enough experience to say for sure that this division won't work - maybe you have experience of successfully programming in such an environment?

      Yes, I do. On time, on budget, multimillion dollar projects. Consistently.

      FWIW, if you did want a language that mapped well to your chosen 'architecture', it's much more likely to be C++ or even Perl rather than Java.

      No way in hell. First of all, Perl is a monstrosity. It was designed to be a monstrosity. It needed to be a monstrosity to support the job of sys admins who needed to focus on their jobs, not focus on becoming programmers. I have never met maintainable Perl code. It simply is one of the worst languages in existence for large-scale programming.

      Second of all, C++ has lots of fun tools that let developers escape from the architects' designs and hang themselves. This makes it very difficult to model business problems.

      Java supports only a rather simplistic view of the world - your chosen design might naturally require multiple inheritance (or virtual inheritance), for example

      For business applications, multiple inheritance is NEVER needed. In those few instances where you might be tempted to use it, delegation works just fine. Now, I will grant that MI could be useful in other problem domains. Use a different language for those problem domains. C#'s support for delegates is a nice touch in this area, but it does not expand the problem domain.

      But not the weird dates. This was exactly the example that made me think 'what an overengineered crock'. Can you honestly say that the typical application requires support for non-Western calendars?

      Business application? Yes, it should. If you have any desire for your app too be used in the middle east or orient, should not hard code your calendar. I will grant that there is a bunch of deprecated crap in the whole Date setup that confuses the issue, but I would not drop support for multiple calendars.

      The design does do what it is supposed to. You can code all Western applications without knowing shit about the full capabilities of the Date/Calendar construct. Yet you leave your application capable of supporting other calendars at the same time.

  3. Control Freaks by Malc · · Score: 3, Insightful

    Perhaps it's time that Sun stopped being such control freaks. IMHO, they've been the biggest problem with Java. They're at a severe disadvantage on the client now that MSFT no longer ship it with the OS, but will have the .Net runtime... most people don't want to download and install Sun's JRE.

    1. Re:Control Freaks by elmegil · · Score: 2

      yah, we know Microsoft is NEVER a control freak.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    2. Re:Control Freaks by M_Talon · · Score: 2

      most people don't want to download and install Sun's JRE.

      Hmmm...people won't want to download Java. Yet people download "toys" like RealPlayer, Shockwave, etc. all the time for entertainment value. The only people who don't want to download it are recreational surfers who don't like to download plugins in general. People who want to use Java will download it, pure and simple. That's not a strong argument for C#.

      --
      Electronic Frontier Foundation for online civil rights information
    3. Re:Control Freaks by Anonymous Coward · · Score: 2, Insightful
      Very rarely a project succeeds which is not controlled by anyone. gcc and emacs succeeded largely due to control by Stallman (okay, he didn't have legal control). Linux due to Linus. Very few GPL projects have succeeded where you can't put some authoritative figure's name. If SUN was not controlling java, then we would have MS java as the most popular java and soon the only java would be windows java (may be a little of Mac java too, to fend of anti-trust concerns). That is what happened with Netscape. Since the start of Mozilla project, Netscape has continuously lost market share.


      So far my experience with Java has been best. I use non-sun jvm, javac and haven't had any problems even on 100,000+ lines of java code (both server and client side). Oh, I also use it on multiple OSes (windows, linux, solaris). When someone in future has .Net and C# project of this length running without MS tools on multiple OSes, I will seriously look at it. Till then, I will continue with Java but keeping my eyes open for anything better.

  4. This is a Good Thing by atrowe · · Score: 5, Interesting
    I, for one, welcome the oncoming of Microsoft's C# language. A little bit of competition can only help the market. When I first started programming in Java eight years ago, the industry was far different than today. Java was, for the most part, an open standard, and one was free to do with it as one pleased. Now that Java is the biggest player in the industry, it seems Sun has gotten a bit greedy, and is trying to cash in on Java's popularity.

    Microsoft's C# entry will only cause more competition in the market, and the consumers and programmers are the ones who will benefit. I'd love to see Sun loosen some of their restrictive Java liscensing practices in response to C#, and I think that is just what will happen. Open source wins the day yet again.

    --

    -atrowe: Card-carrying Mensa member. I have no toleranse for stupidity.

    1. Re:This is a Good Thing by Hard_Code · · Score: 4, Insightful

      "cash in on Java's popularity."

      HUH? Sun has put a TON of resources into Java, gives it away freely ("costless"), provides *extensive* docs, and even lets you look at the full source. Java is an immense and diverse platform. Sun sells hardly *any* Java-based products (the only thing that comes to mind is the HotJava Bean which has been discontinued, and Forte, which there is already a free edition!)

      Sun has no "services" they are trying to shove on people. They define everything as open specs, and then simply create a reference implementation that you can *choose* to use - next to being fully open source (and they've been making strides trying to be more open), there really isn't much *more* they could do for developers. I'm actually surprised that Sun is devoting this much energy to Java when there isn't much profit to be made from it, but it sure is great.

      I don't see C# having anywhere near the community that Java has. Typically Microsoft communities are people who have comradery in being serfs. It's a lot different with Java.

      --

      It's 10 PM. Do you know if you're un-American?
    2. Re:This is a Good Thing by garett_spencley · · Score: 4, Insightful

      Same here.

      I really don't like MS more than anyone else but my limited knowledge of c# vs. java really seems to tell me that java programmers who decide for whatever reason to give c# an honest shot are going to love it.

      I really like Java as a language but I never use it because it gives me no practical advanatage. I'm quite willing to spend lots of resources porting my c/c++ code to a million different platforms and testing it on those platforms if it means it's going to be really fast and my user's won't have to worry about installing and configuring Java and then having a program that runs slow as tar.

      I'm really starting to hate Sun lately actually. I don't see them as any better than MS. They're just a big corporation trying to make their big cheif richer than he already is.

      Java is an excellent language but since the actually design Sun has yet to produce anything of value.

      They haven't done anything to help open source or any communities. They announced that Solaris was going to be open source (big deal. It's widely used but I don't know anyone who actually likes it). But they dropped that plan anyway.

      They sure seem to be making good use of gnome but AFAIK they haven't made any contributions to the code (please correct me if I'm wrong).

      And as you stated Java is getting more and more proprietary.

      What we need is an open language that matches up to java and c#. Something free of patents and IP.

      So hopefully MS will cause Sun to smarten up and loosen up Java a little. Then we may actually be able to see what it's really capable of.

      --
      Garett

    3. Re:This is a Good Thing by Tim+Macinta · · Score: 2
      It's been awhile, but I thought they had the alpha JDK available at the end of 94.

      Nope, it was '95. Sun's Java press releases only go back to '95 and a read through the ones that are there point to a Spring 1995 release date. I also remember using the second Alpha JDK around the end of Spring 1995.

    4. Re:This is a Good Thing by AntiNorm · · Score: 2

      A little bit of competition can only help the market.

      That's not what Microsoft thinks...

      --

      I pledge allegiance to the flag...
      of the Corporate States of America...
    5. Re:This is a Good Thing by Shiny+Metal+S. · · Score: 5, Funny

      What we need is an open language that matches up to java and c#.

      Perl 6 is what I bet on.

      --

      ~shiny
      WILL HACK FOR $$$

    6. Re:This is a Good Thing by Alsee · · Score: 2

      [I welcome Microsoft] A little bit of competition can only help the market

      Err, yeah, kind of like a 10 mile asteroid can only help bring a little bit of competition to the ecology.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    7. Re:This is a Good Thing by mikec · · Score: 2

      Please, someone with moderation points: mod this
      funny. Very funny. Very, very funny.

    8. Re:This is a Good Thing by JordanH · · Score: 2
      • I, for one, welcome the oncoming of Microsoft's C# language. A little bit of competition can only help the market.

      I agree. I think that the big players pushing Java now are not always doing the best things for it, in the long run. Competition might unify and crystalize their efforts. Right now, it seems there are differing visions for how to best do Java on the desktop and that's not a good thing. You can bet that Microsoft will present a unified vision for .NET.

      Java can and should be pushed harder on the desktop, but Oracle/IBM/Sun decided that it was easier to dominate the back end, so they retreated to the server. I've seen some fine Java applets and I know they can be great.

      I don't see why it can't be used more visibly on the desktop, as well as the server. To keep a really vital development community alive, it has to be used everywhere or risk marginalization. IT Management is going to be looking for a low-risk, desktop to middlewear to server programming language. Java could be that, but now, they'd better get moving on marketing this vision. IBM and Sun should really get together on a single GUI development environment that everybody could get behind, also.

      Without real competition, the Java stewards (Sun/IBM/Oracle) just picked low hanging fruit (server apps) and haven't pushed hard on a complete vision for it.

    9. Re:This is a Good Thing by Tony-A · · Score: 2

      Double TWO = 3;
      Do you see a problem here?
      Making up your own whatever is ok but calling it what it is not is not ok.

    10. Re:This is a Good Thing by jpatokal · · Score: 5, Insightful
      Sun sells hardly *any* Java-based products (the only thing that comes to mind is the HotJava Bean which has been discontinued, and Forte, which there is already a free edition!)

      Maybe you should take a peek into the corporate world. Want to add SNMP functionality to your Java product? J. Random Hacker doesn't, but Q. Big Corporation often will, and the only way to do this is to fork out the moolah for Sun's JDMK. The cost? $10000 for one (1) developer seat and 50 runtime licenses.

      But Sun's basic strategy is to popularize Java (at a loss) and then sell Sun hardware for it (at a profit). The company I work for is almost entirely a Java shop. We make carrier-grade applications, and whenever possible we ask our customers to use Sun hardware, because that's what Java works best on. This is not a coincidence.

      Cheers,
      -j.

    11. Re:This is a Good Thing by nakaduct · · Score: 2

      First they laugh at you...

    12. Re:This is a Good Thing by toriver · · Score: 2
      Maybe you should take a peek into the corporate world. Want to add SNMP functionality to your Java product?

      Write the classes you need - declaring the necessary methods as native, run a program to generate JNI C++ headers to go with them and implement them, shipping the native bits as shared libraries.

      Oh, sorry, did I just shoot your claim in the foot?

    13. Re:This is a Good Thing by toriver · · Score: 2

      installing and configuring Java ... which can be done automatically - I guess you have never tried to use e.g. InstallAnywhere Now! - your loss I guess as long as people don't actually believe your FUD.

      slow as tar.

      Well, since a Java program on modern VMs normally is translated into native code a few (milli-)seconds after launcing, I fail to see how you have managed to write slow code, unless you

      1. use the -Xint flag to disable the runtime compilation into native code,
      2. use non-buffered IO,
      3. stick to really old releases of the JRE, or runtimes with known bugs (like running GUI apps on 1.2.0)

      all of which brand you an IDIOT!

      since the actually design Sun has yet to produce anything of value.

      So you are completely unaware of things like Swing (though based on Netscape code), J2EE, the Java2D graphics API, and a host of other new stuff added over the years?

    14. Re:This is a Good Thing by jpatokal · · Score: 2
      Write the classes you need - declaring the necessary methods as native, run a program to generate JNI C++ headers to go with them and implement them, shipping the native bits as shared libraries.

      Oh, sorry, did I just shoot your claim in the foot?

      When you're making software that costs $(BIGNUM) a pop, it's a far better solution to buy pre-written, carefully tested and well-supported 3rd-party software for a couple of grand than to try to roll your own. The S in SNMP may be "Simple", but in reality it's one seriously hairy protocol.

      And yeah, I know that NET-SNMP (ex-UCD-SNMP) is open source, but it's all C and our software has to work under Linux, Solaris, HP/UX and Windows -- this, of course, being why we use Java in the first place!

      Cheers,
      -j.

    15. Re:This is a Good Thing by garett_spencley · · Score: 2

      Maybe I am an idiot but I've done one of the above.

      Yup, you're right. I'm definitely an idiot. That should be none of the above. Not one.

      Oops.

      --
      Garett

  5. Cobol is still in demand. by Lucky+Kevin · · Score: 5, Insightful

    There are so many Java programmers and so much Java code being produced that it will last a lot longer than five years. People still need Cobol programmers, ok so not mainstream but look how long ago that was designed and despite being crappy it is still here.

    But as the article says it really doesn't help when people who should know better say "Java? No one is doing that now. Microsoft is no longer supporting it."

    Gates has a lot to answer for.

    --
    Kevin
    "It's not the cough that carries you off, it's the coffin they carry you off in" O. Nash
    1. Re:Cobol is still in demand. by happyclam · · Score: 4, Interesting
      There are so many Java programmers and so much Java code being produced...

      Produced? Yes... supported? Maybe... I wonder what percentage of the Java code written in the last five years died with the series of dot com failures we've witnessed.

      That said, of course you're correct: COBOL is still in use, and Java will last much longer than five years.

      But the language of choice may be something else in five years. Java hasn't been around that long, and scads of people were saying it would never overtake C or C++ when it was first released. And really, C hadn't been around that long when Java was first introduced.

      --
      He looked at me and said, "Kid, we don't like your kind, and we're gonna send your fingerprints off to Washington."
    2. Re:Cobol is still in demand. by Kircle · · Score: 2, Interesting

      I hear Cobol programmers get paid fairly well these days. Why? Because there aren't that many of them. While I certainly do not believe Java will be killed off by C#, I do see the author making an good point.

      He asks if Java is "here to stay." In the sense of whether it will remain dominant in the coming years, maybe. Maybe not.

      --

      -- Kircle

    3. Re:Cobol is still in demand. by Nexx · · Score: 2

      On the contrary, *many* large brokerage firms have large Java developments going and/or deployed, in "mission critical" positions. What's "mission critical" anyway? Aren't most systems "mission critical" if the disruption of the system affects productivity or the revenue stream?

  6. ummm... heard this before... by Misha · · Score: 4, Interesting

    haven't they said something like this before?

    the problem with C++ was that exactly zero of code was reused, even though it was supposed to be made simpler. Java code actually reuses itself pretty darn well, and last I checked J2EE library just keeps growing and growing, and largely its success is in that.

    as for C#, i doubt anyone except Microsoft is interested in seeing more packages of it. it becomes pointless to have non-object code in C# if you are planning to devise a framework for other people to work with.

    anyways, if Java only has five years life in it, why would you stake your life on C# of all things? wouldn't you expect that in five years people would be switching to something newer than the love-child of Java and Microsoft that didn't overtake its predecessor and hardly had any advantages except probably back-doors into the Windows kernel?

    just my two cents...

    --



    I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
  7. Re:Yuck by ckuske · · Score: 2, Informative

    Take a look here, it's new in JDK 1.4

  8. I'm no expert, but... by Ethelred+Unraed · · Score: 2
    ...it seems to me that Java has a lot going for it because of its versatility, like in embedded devices, as a web development platform and so on. I could be totally wrong here, but .NET and C# seem to be focused only on delivery of applications over a network -- not necessarily practical for many areas in which Java is currently used. Java also has a lot of heavyweights behind it *now* (IBM and Sun above all) and it is in widespread use *now*, giving it a lot more clout than .NET and C#, which are still essentially vaporware in comparison IMO.

    Cheers,

    Ethelred

    --
    Everyone wants to be Ethelred. Even I want to be Ethelred.
    1. Re:I'm no expert, but... by Courageous · · Score: 2

      A quibble: compared to Microsoft, Sun is no heavyweight. They're what? 10 times smaller?

      C//

    2. Re:I'm no expert, but... by thermostat42 · · Score: 2, Interesting

      Well, if we're going by revenue:

      Microsoft: $25,296M

      Sun: $18,250M

      IBM: $85,866M

      So, with a little math (25296/18250) its actually 1.4 times smaller, while MS is 3.4 times smaller than IBM.

      --
      no comment
    3. Re:I'm no expert, but... by Courageous · · Score: 2

      I was going by market capitalization, which is about 10:1. MSFT has enough cash and short term investments to sneeze away SUNW. So does IBM. Wasn't there some speculation that IBM might be attempting to either corner Java or perhaps buy SUNW outright?

      Anyway, last year (2001) Microsoft had several quarters where it's *quarterly* net income was $1 or $2 billion dollars. Sun's best quarter was a measely $136M. Without FTC intervention, MSFT could easily squash SUNW like a bug.

      C//

    4. Re:I'm no expert, but... by Courageous · · Score: 2

      Look at their net income. Whatever else is true, SUNW really isn't earning any money. Their peak quarter last year was $136M whereas MS had several $1-2B net income quarters.

      C//

  9. Really light article by nvrrobx · · Score: 3, Insightful

    This article is really light on details, and frankly useless. It seems more like a call-to-arms for Java developers, but it certainly lacks the power of Mel Gibson's speech in Braveheart.

    It basically is saying that since Microsoft doesn't support Java, Java will die. I'd like to hope that's not the case. Java has some things .NET and C# do not - it's more mature, has a large developer base, and it's APIs and technologies are well thought out, spec'ed and documented.

    As an example, I just started working with JavaMail a few days ago. Within 20 minutes I was reading emails and sending them. Talk about productive! .NET doesn't have anything that comes close.

    The only thing for me that .NET has going for it is Visual Studio.NET. Like it or not, it's a great development environment, and one that most Windows developers are already familiar with.

    1. Re:Really light article by Courageous · · Score: 2

      .NET doesn't have anything that comes close.

      Careful, there. .NET is at least in part an integration technology for COM. That's quite a large body of components you are blithely dismissing.

      C//

    2. Re:Really light article by Art_XIV · · Score: 2

      As an example, I just started working with JavaMail a few days ago. Within 20 minutes I was reading emails and sending them. Talk about productive! .NET doesn't have anything that comes close.

      Err... really? What about CDO? Or the System.Web.Mail class? Heck... a well-trained parrot can use VBScript and CDO to send emails.

      Not a great example.

      --
      The only thing that we learn from history is that nobody learns anything from history.
    3. Re:Really light article by Courageous · · Score: 2

      Well, _supposedly_ .NET makes all that seamless and easy. Looking at the C# standards, it's prety clear to me that Microsoft has at least in _theory_ created a COM-friendly virtual machine. Forgetting the evils of the involved parties :), it's not a bad idea.

      C//

  10. Re:Personally who cares? by ip_vjl · · Score: 2, Insightful

    I don't think you realize that there are broader uses for Java (or C#) than embedded scripting in browsers.

    I'm a Java developer, and I know quite a few other Java developers and none of us develop applets. It's all server-side application programming or desktop application programming.

    Both these languages are nice general purpose tools for getting all sorts of things done, not just doing lame Javaduke animations in your browser.

    So, fine, turn it off in your browser ... it wont affect a single thing that the majority of people using those languages care about anyway.

  11. Like Cobol is dead... by cornice · · Score: 2

    Languages don't really die like that. Look at what happened with Y2K. There's too much invested already, especially in Java. Maybe Microsoft will be able to convince the kids in CS class that it's sexier to focus on C# and not Java. Maybe the number of Java hype magazines on the news stand will be cut in half. Maybe Java won't be as "cool" as it is today (maybe it will be) but it won't be dead.

    I'm amazed at the amount of OS/2 crap that I still see, and OS/2 has supposedly been dead for years.

  12. Somewhat premature by cheekymonkey_68 · · Score: 2, Interesting

    I think you'll find even COBOL programs are still be developed commercially, so to say Java will be dead within 5 years is flamebait.

    With C# Microsoft have taken ideas from Java, but C# is isn't Java.

    C# is designed to kill of Visual J++, by migrating users to the .Net via C# but I doubt even Microsoft think it will usurp Java itself.

    Sure Microsoft are trying their best to stifle Java, thats because they feel threatened like some sort of wounded animal.

    Microsoft can't rely on Windows and Office anymore as being their core business longterm, hence their .Net stategy (with C# a small part of their plan)

    Java probaly will die eventually, but I'm sure it won't be C# that does it.

  13. server seems to be dying by CmdrTaco+(editor) · · Score: 3, Informative
    Just in case it gets fully /.'ed:

    There May Be Trouble Ahead
    by Alan Williamson

    As Nat King Cole famously sang, we have to "face the music and dance..." This month's editorial is coming to you with a reader beware warning!

    I've been engaged in some great debates over the last month on a variety of topics, but the one that has caught my interest is the old chestnut regarding the longevity of Java. Is it here to stay? If not, how long do we have? Quite rightly, it's being talked about and I've had the good fortune to brush shoulders with a number of big names in our industry who have given me their perspectives on the whole debate. I have my own feelings about where Java is headed and I do believe that if, as a community, we don't get our act together, we may have only five years left at the most. After talking to my counterparts, it would appear I'm being overly generous with five years.

    What's happening? Well, it's our old friend C# and its relentless march toward the development community. Setting aside the old argument that due to Microsoft's dominance it may well win the day, it's interesting to look at other reasons why C# may win the battle. Let's blow away some misconceptions that you may or may not be aware of regarding this new kid.

    Myth #1: C# is a Windows-only technology.
    You could be excused for believing that, but did you know there's a major movement in the open source world to port the CLR (Common Language Runtime, i.e., their JVM!) to operating systems other than MS Windows? Linux, to name one. Imagine for a moment being able to run your .NET services alongside Apache on a Redhat box, seamlessly integrating into the rest of the network. This alone would be a major blow to server-side Java. It's also a subtle way for Microsoft to unofficially support the growing number of Linux seats without losing face (read www.halcyonsoft.com/news/iNET_PR.asp).

    Myth #2: C# is an inferior Java clone.
    This is the most dangerous one and the one you probably tell yourself in order to keep the scales tipped in Java's favor. The truth is, it's not an inferior clone; it's a different clone, with many arguing that the differences are minute to the majority of the developer community. It will be frighteningly easy for Java developers to move over to C# with no real headaches to contend with. I suspect this was always on Microsoft's mind when developing the language (read www.prism.gatech.edu/~gte855q/CsharpVsJava.html).

    Myth #3: C# is for developing Web services only.
    Most definitely not, and I have heard this one retorted back to me on a number of occasions. Ironically, this is the one area that could really hurt Java Ð on the client. As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses (although it must be said, the speed of a Swing application on a Mac OS-X does show what could be achieved). C# is the new building block for Windows applications, the next VB! And we know how many applications popped up when VB hit the market (read www.c-sharpcorner.com/WinForms.asp).

    Okay, how many of you think I've abandoned all hope for Java and have gone to the dark side? I suspect some of you are questioning my loyalties at this precise moment, wondering if I'm fit to occupy my role as EIC. Well, don't panic, I'm merely being a realist and looking at it from all angles. You'd be the first ones to complain if I buried my head in the sand and just ignored the threat. We have to look at this together and come up with a strategy that will enable us to effectively take on C#. We'll be getting a lot of heat from all over and we need to be armed with the information and prepared to go back to the drawing board and reeducate the masses. Sadly, they are being led a merry dance by Pied Piper Gates.

    Allow me to cite you an example of such blind ignorance and if this doesn't scare you, then I don't know what will. I was recently involved with the Scottish government, discussing technology and what have you, where naturally the topic of Microsoft was high on the agenda. Excusing the fact that these people took a certain pride in believing they knew what was going on and loved name-dropping, the phrase that caught me off guard was the following: "Java? No one is doing that now. Microsoft is no longer supporting it."

    Wow! Talk about a major miscommunication. And this from someone who controls budgets for the technology sector in Scotland. Ironically, I believe he really thinks he has his finger on the pulse of technology. It's sheer ignorance like this that scares me the most. Microsoft has successfully planted and nurtured the seed in people's heads that just because it isn't supporting Java in Windows XP, Java is dead. I have to admit I was taken aback and quite flabbergasted when I heard that retort. I really didn't know where to go with that. So much background information was obviously missing that I wasn't too sure if I would come over as patronizing and whether, ultimately, they would understand.

    Sadly, this is not an isolated incident. Ever since I started writing about this topic in my editorials, I've been hearing stories from you regarding similar misconceptions and it scares me. We have a beautiful language here in Java; it has achieved industry-wide support and is pushing forward with great velocity. What can we do to support it?

    You do realize we need an anthem. All great causes have an anthem. Something for us to get behind and sing!!! Suggestions gratefully received. We need a Java song!

    Until next month...

    Author Bio
    Alan Williamson is editor-in-chief of Java Developer's Journal. During the day he holds the post of chief technical officer at n-ary (consulting) Ltd, one of the first companies in the UK to specialize in Java at the server side. Rumor has it he welcomes all suggestions and comments.

  14. Didn't they say this about Java and C++ by moocat2 · · Score: 2, Insightful

    It seems like we here this a lot. Now that we have language X, no one will program in language Y anymore. Time after time, this proves to be incorrect. There are many reasons to stay with an old language, even if a better one has come along. This includes finding programmers who have the requisite years of experience, the added development cost of doing multi-language development, programmer preference, etc.

    C# will definitely become a major player in the field. Both due to the fact that it is a well reasonably well designed language (Anders Hejlsberg did a good job) and that Microsoft is going to put its weight behind it. But just because C# becomes big, doesn't mean that Java will disappear.

  15. Valid points, not conclusion by bigmouth_strikes · · Score: 5, Insightful

    I think the author has several good points, especially in pointing out some key shortcomings of Java (java on the client, Swing). Also, the .NET toolkit looks very competent and building and deploying .asp's is quite simple as compared to deploying a java solution.

    But the key thing not mentioned is the fact that Big Blue and the rest of the industry is quite determined on Java. Sure, IBM and Microsoft are working together on Web Services, but I think IBM is unlikely to start supporting .NET instead of Java in their tools. More important, when IBM and MS are talking to each other and making standards for web services, it is more likely than not that both Java and C# will coexist.

    Java has shortcomings, but it has become a success despite this, and due to a vast support from professionals ranging from programmers to computer scientists. To say that all this will be gone in 5 years is more than bold, when in fact the amount of existing Java code are probably more than can be replaced in 5 years.

    Of course, languages and platforms come and go, but since C# doesn't drastically change the way application development is done - which is what Java did, in several ways - I don't think it'll start a revolution in the way that the article suggests.

    --
    Oh, I can't help quoting you because everything that you said rings true
    1. Re:Valid points, not conclusion by sheldon · · Score: 2

      "it is more likely than not that both Java and C# will coexist. "

      Agreed. Why can't we all just get along?

      "but since C# doesn't drastically change the way application development is done - which is what Java did, in several ways"

      C# doesn't drastically change things, but .Net does.

      The whole .Net framework completely overturns the way you developed applications for Windows. It's really quite incredible, just from a developer productivity standpoint.

    2. Re:Valid points, not conclusion by sheldon · · Score: 2

      VS.NET has been out for over a month now, and Microsoft has been doing demonstrations and handing out Beta copies for well over a year.

      If you haven't seen it yet, whose fault is that?

  16. Heck Yes! by augustz · · Score: 3, Insightful

    There are couple of key points that are interesting about this.

    C# really is a standard. Microsoft's decision to go the standards route really validates the competitive advantage true open standards generate.

    The HUGE question is if Microsoft will try and pull some patent / IP protection / royalty stunt with C#. We need to have some lawyer go over the C# license, standards doc, patent agreement to see if Microsoft has given up it's rights to sue for patent infrignment if people develop competing implementations.

    My feeling is that if it becomes clear that C# is a truely open standard, that it will be suprisingly succesfull. Despite what Java zealots like to claim, the underlying technology is good. And while I initially was a member of the Java lobby, their eternal harping on the "eventual" standardization of Java turned me off. Java is not an open standard, and for an underlying technology that every company can feel comfortable going with (including Microsoft) that fact is problamatic. And Sun has already pulled a couple of students with Java and royalties on the enterprise level etc. We're getting competing implementations already with go-mono.net for C#.

    The problem Microsoft faces is that they really need to totally convince folks (aka with binding legal agreements) that they are making this a real open standard and aren't going to pull a patent protection bogosity on anyone. They face in this case the facts of their history, which is horrible. I'm frankly concerned a bit less about the embrace and extend side of things, though it would be nice if they didn't pull stunts in that area either.

    Anyways, if Microsoft does it well, C# could really take off. The key is schools. Java is the it language now, and that matters more than people think. If you start with java you become familiar with Java IDE's, you become familiar with other Java projects, and when the time comes to whip up your first website you'll pick java which means when you deceide to make a big website, you'll probably choose Java as well. People will choose whats comfortable, not what is necessarily technically superior and the decisive moment for comfort is what you are forced to learn in high school and college.

    1. Re:Heck Yes! by MisterBlister · · Score: 2
      The HUGE question is if Microsoft will try and pull some patent / IP protection / royalty stunt with C#. We need to have some lawyer go over the C# license, standards doc, patent agreement to see if Microsoft has given up it's rights to sue for patent infrignment if people develop competing implementations.

      Well, for all of their shady business practices, Microsoft is fairly reasonable when it comes to patent/IP issues. And in any case, they aren't in much of a position now to go suing people for writing competing products, even if they technically own patents, etc, because they're going to need to lay low for a few years while this anti-trust business blows over.

      C# is a pretty great language for what it is..Sure it borrows a ton from Java but Java borrowed a ton from C++, Smalltalk and other languages..That's how language evolution works. I think the bigger problem for Sun, though, is Microsoft's CLR technology is a lot more language neutral than Java VMs are, so its not just C# they need to worry about, but every language with a CLR implemention -- which is like 20 languages currently, and growing.

      I've always thought Sun's push to keep you from locking into a operating system platform was rather funny considering it consists of locking you into a language platform, which generally is much harder to get out of. (Easier to port a Win32 C++ program to Solaris than it is to port a C++ program to Java or vis versa). If we're going to have cross platform computing, make it cross-language too -- Microsoft is doing that, Sun isn't.

      (PS. Yes, I know you can get various languages to run on the JVM, ie. JPython, et al, but there's no denying that the JVM is very oriented towards Java as a language and won't let you stray too much from it without major kludge-work).

    2. Re:Heck Yes! by thelexx · · Score: 2

      "C# really is a standard. Microsoft's decision to go the standards route really validates the competitive advantage true open standards generate."

      BS. Only the CLR and C# have been submitted. Further, I seriously doubt that any real .NET tools will be available from MS for any platform but Windows, pretty much ever. You really think they are willing to completely open all their shiny new API's for easy implementation by everyone else? Re-reading the Halloween documents will help clarify what goes on the heads of MS management.

      LEXX

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    3. Re:Heck Yes! by benwb · · Score: 2

      A specification for a language which remains under the control of a single company- i.e. a non-open standard.

    4. Re:Heck Yes! by augustz · · Score: 2

      I call it fooling the folks like you by writing a book on a language which is not an open standard.

      If I write a book on Rebol / Visual Basic does that makes them open standards? If I write a book on the Windows API specification does that make Windows and open standard?

      How you got modded as informative is beyond me.

    5. Re:Heck Yes! by augustz · · Score: 2

      How is what I say BS? I say C# is a standard. You say C# -AND- the CLR are have been submited. Listen, all of this is light years beyond what Sun has submitted to standards bodies, despite their incessant promises to submit.

      And the point of standards is not that Microsoft port their .NET tools to any platform, the point is that I can implement on any platform.

      Just because someone doesn't make C++ tools for your favorite platform doesn't mean C++ is a closed language. Microsoft's willingness to put Visual Studio .NET on a Palm Pilot has zero bearing on whether C# is a standard or not.

      The FACTUAL errors of java zealots are always incredible.

      - August

    6. Re:Heck Yes! by Hard_Code · · Score: 2
      I think the bigger problem for Sun, though, is Microsoft's CLR technology is a lot more language neutral than Java VMs are, so its not just C# they need to worry about
      Not really. The CLR was designed with a particular type of language in mind, C#. Everything else is basically C# with different tokens. Ask functional programmers what they think of CLR.
      --

      It's 10 PM. Do you know if you're un-American?
    7. Re:Heck Yes! by augustz · · Score: 2

      Yes, I'm clearly a MS serf... Take a look at userid's you idiot.

      Java zealots like to pull out the name calling instead of actually addressing points. This "MS serf" BS. What about supporting your "arrogance" charge? Arrogant about what exactly?

      "The CLR and C# are largley useless from a cross-platform development point of view without all that."

      Ahh, since CLR and C# are useless, that explains why go-mono.net is going gangbusters to develop an implementation on Linux.

      Have you actually developed large cross platform client side java apps? I don't want to start a flame war, but I'd suggest you start following some mailing lists in the Java and mono communities. Sign up for a sourceforge account and contribute to some projects. It will help your credibility when you start calling folks "MS serfs" and you'll also have a better grasp of the technology side of things.

      Since I've been part of the community since 1999 (aka when SF opened) I hope you'll understand if I take your claims of "MS serf" with a grain of salt. I think you notice soon that the folks who are the first to yell "MS serf" are often the folks who talk a lot but have contributed little if anything to anyone.

    8. Re:Heck Yes! by sheldon · · Score: 2

      "The key is schools. Java is the it language now, and that matters more than people think."

      That's why Pascal is so popular.

      Oh, wait...

  17. Re:Personally who cares? by TheAwfulTruth · · Score: 2

    "(C#)will still be disabled whenever I browse the net"

    FYI C# is a language NOT a runtime. You cannot "Turn off" C# any more than you could "Turn off" C or C++ on your computer. You're probably confused because "Java" is a language AND a runtime. When you say your turning off Java, you mean your disabling the Java runtime environment. .NET is the runtime environment you mean that you'll be turning off. .NET can be used by VB, C, C++, C#, Perl, Python and a dozen other languages.

    --
    Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  18. XP quote and more by mgkimsal2 · · Score: 4, Insightful

    "Microsoft has successfully planted and nurtured the seed in people's heads that just because it isn't supporting Java in Windows XP, Java is dead"

    I don't think MS had much to do with it. Sun and a seemingly large segment of the Java community and many industry pundits made a big stink about XP not including Java. I don't recall MS saying much one way or the other except saying you could download a JVM from their site. The Java community themselves planted this seed of doubt.

    "As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses"

    I'm not going to say Sun should open source Java, but for heaven's sake, make a GUI toolkit that doesn't suck. You can't cite Java's 'newness' as an excuse anymore.

    However little you think of VB (especially VBScript) MS has provided a huge number of tools to make development easy and painless - and the results are often decent. I remember being able to put together *simple* VB data collection forms back in 94-95 without having too much idea what the hell I was actually doing. There STILL nothing like that for Java. - Go ahead, flame away. I'm not a hardcore Java guy, but someone else here at the office is, and we constantly see shortcomings. That's not to say there's not strengths too, but still shortcomings. Open sourcing Java *MIGHT* help overcome many of those shortcomings (especially in the GUI toolkit area).

    I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes. Better yet - get AOL to bundle it on their CDs and have an installer with lots of nice Java packages - an 'intro to Java' for the common man. Explain the cross-platform benefits, etc. - something my mom could understand.

    1. Re:XP quote and more by Twister002 · · Score: 3, Interesting

      IBM has done a LOT more for Java GUIs than Sun ever has IMO.

      I installed the latest version of Eclipse and I was amazed at how fast the GUI ran. It is the first Java application that I've ran that didn't frustrate the hell out of me by running slowly. Sun should incorporate whatever GUI widgets IBM made into the next JDK.

      --
      "For a successful technology, honesty must take precedence over public relations for nature cannot be fooled." -Feynman
    2. Re:XP quote and more by DA_MAN_DA_MYTH · · Score: 2

      I'm not going to say Sun should open source Java, but for heaven's sake, make a GUI toolkit that doesn't suck. You can't cite Java's 'newness' as an excuse anymore.

      I love hearing this argument. Yeah Java's AWT is somewhat heavyweight. But it is old, it's been around since JDK 1.0. JDK 1.2 Swing still has a ways to go but has made some significant improvements. However the problem that people neglect is that these Windowing toolkits are cross platform. I guarantee that my Java applications will out perform your VB, with the exception on Win32, on every other platform. Java gives people choice of where you can run those applications.

      However with the advent of .NET and J2EE becoming a larger API, it really isn't going to be about windowing anymore. It's all about Web Services. What can you do networking. Programming VB Data Collection forms will still be important, but soon you will see more and more drag and drop collections similar to VB with Java IDE's. That is once Sun really starts standardizing reusable JavaBeans.

      --
      "It takes many nails to build a crib, but one screw to fill it."
    3. Re:XP quote and more by mgkimsal2 · · Score: 2

      As you know, Java has not made any significant headway in this space due mainly to its awfully slow Swing implementation. While the recent release of JDK1.4 has brought significant performance gains, it's still nowhere near the speed of its native Windows applications with respect to fast, snappy responses

      That's right - when you can't compete, leave the arena.

      I'd guarantee my QT app (or wxwindows, or even GTK) would run circles around your Java Swing app and run on multiple platforms.

      soon you will see more

      OK - "soon". I was thinking 2 years ago when I heard 'soon' back then too. JAVA IS NOT NEW. Sun needs to have delivered stuff years ago. They can't get out of promise mode. The guy below was right - IBM has done more for Java than Sun *ever* has, except for write API definitions.

    4. Re:XP quote and more by adubey · · Score: 3, Insightful

      I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes

      Actually, AOL spent billions of dollars shipping out the CD's, and they had a way to quickly make money off them: charge $x for dial-up access.

      Sun could spend billions of dollars shipping out Java CD's, but how will they make money from this platform? There are three ways: 1) make money from licensing the platform implementation (i.e. like a Windows license fee) 2) make money from add-on software (i.e. like Office over windows) 3) make money from hardware.

      The thing is, they can't make money from #1 they've already licensed JVM's for dirt cheap. Spending billions won't give them any real advantage over IBM or Dell on #3. That is one reason why Sun is losing marketshare to both.

      Then there is #2. But this doesn't make sense unless Sun already has software that people are willing to spend money on.

      And since their blitz campaign will cost billions, they better have software that people will spend billions on.

      They just don't have this. That's why they don't blitz.

    5. Re:XP quote and more by MisterBlister · · Score: 2
      Sun doesn't have to Open Source Java for alternate GUIs to become available...There are already various 3rd party toolkits, such as IBM's SWT that either use native widgets or run in pure Java (which for obvious reasons tends to be slower)...

      The problem is its hard to get people to adopt these other toolkits with Sun standing firmly behind Swing, which as the article mentioned is almost so slow as to be unusable on every Java implementation except the OS X one.

    6. Re:XP quote and more by MisterBlister · · Score: 2
      I guarantee that my Java applications will out perform your VB, with the exception on Win32, on every other platform.

      I guarantee that my VB or C# applications will out-perform your Java on the vast majority (90+%) of installed non-server (since we're talking GUI apps) computers worldwide.

    7. Re:XP quote and more by tdrury · · Score: 3, Insightful

      Eclipse is built on SWT. You can get all the source and the API that eclipse is built with. SWT is a very thin layer (one-to-one by design) to the underlying windowing toolkit. So far, Win32, Motif, and gtk are supported although I had some problems with the gtk one. Qt is sadly missing, but I suspect once SWT catches people attention, a Qt binding will be created.

      Try SWT, it run circles around AWT/Swing. Sure it breaks platform independence to a degree; you'll have to distribute the appropriate dll/so along with your app, but who cares? That is a very small price to pay for a good java GUI.

      API javadoc

      -tim

    8. Re:XP quote and more by Jason+Earl · · Score: 2

      The stupidest thing about Java and Swing is that even Python combined with wxPython produces snappier GUIs, and wxPython runs very well on both UNIX and Windows. In other words, if you are willing to forgo supporting Macs, you can write a cross-platform application in Python that will be much easier to write and maintain than anything in Java.

    9. Re:XP quote and more by justin+sane · · Score: 3, Insightful

      However little you think of VB (especially VBScript) MS has provided a huge number of tools to make development easy and painless - and the results are often decent. I remember being able to put together *simple* VB data collection forms back in 94-95 without having too much idea what the hell I was actually doing. There STILL nothing like that for Java. - Go ahead, flame away. I'm not a hardcore Java guy, but someone else here at the office is, and we constantly see shortcomings. That's not to say there's not strengths too, but still shortcomings. Open sourcing Java *MIGHT* help overcome many of those shortcomings (especially in the GUI toolkit area).

      Yeah, as a result VB is the number one favorite coding vehicle for worm and virus writers. Great recommendation BTW. WHen is VB gign to be open-soruce along with all the tied-in Windows APIs? (never of course). LOL

      I keep repeating this on various boards - if Sun was serious about getting Java to the masses, they'd carpet bomb the hell out of the US with CDs ala AOL with the latest JVM for multiple platforms. That they DON'T do this speaks volumes. Better yet - get AOL to bundle it on their CDs and have an installer with lots of nice Java packages - an 'intro to Java' for the common man. Explain the cross-platform benefits, etc. - something my mom could understand.

      Yeah right. That's how C, C++ and Lisp became popular huh? Lame.

      Anyone notice the rapid incrase of M$ supporters on /. now that M$ thinks Open Source and Linux is a threat? Apparently they are starting a "simulated" grass-roots campaign on /. I wonder how much these shills are getting paid? Based on their poor analogy, logic, and reasoning skills I hope not much. Ignorance and sophistry should not be lucrative.

    10. Re:XP quote and more by spitzak · · Score: 2

      Qt was written in a good deal less time than Swing, and it is multiplatform.

    11. Re:XP quote and more by mgkimsal2 · · Score: 2

      "Users just want apps that do what they say they are going to do and provide some sort of value to them, they don't care what language they are written in."

      And they can get those already natively with Windows. There won't be *any* sort of market demand at any level for Java stuff on a mass scale unless there's some demand from consumers. MS isn't shipping a JVM with XP, and consumers don't give a damn.

      Sun shouldn't market the Java 'language' to my mom - Sun should market the idea of a Java 'platform' to my mom. Consumers currently want/expect Windows. With enough cajoling (as long as the Java stuff is relatively good) consumers *could* very well start wanting/expecting a Java platform instead of Windows.

    12. Re:XP quote and more by mgkimsal2 · · Score: 2

      That's rich - me a 'grass roots' MS supporter. Anyone who knows me knows I'm pretty far from that. But I'm not here to match credentials with someone.

      Sun is trying to go after many of MS' markets. C and Lisp have had *much* more time to mature and grow mind share among developers. Java is a relative newcomer, but the stakes are higher for Sun because they're basing a lot of their business on it.

      Sun (and/or Sun supporters) bitched because MS dropped the JVM from XP. Newsflash - Sun is a billion dollar company that could *well* afford to get current JVMs to a huge portion of the population (at least in this country right now) if they so chose. Instead, they require a 8-10 meg download which most people on dialup won't do. People on dialup (hint - the majority of the net users out there) don't have current JVMs - any experience they may have with Java apps or applets will suck. Java's image goes down the pan to the ordinary user.

      I said before, I don't think Java necessarily needs to be open source - any company trying to do open source really needs to be committed to the whole process, not just buzzwords. VB doesn't need to be open sourced because there's one company that provides fairly regular updates, tools, etc., (Microsoft) and they've done a very good job of coaxing/buying/convincing developers to developer on their platform. Additionally (and more importantly, imo) desktop apps written in VB generally don't suck as much as Java ones. Yeah, I've heard all about the threading model/event handlers and Java 1.4, etc. Plain fact is, Sun doesn't make it easy to make nice desktop apps with Java. Not as easy as MS makes it with VB.

      Whoops! Oh yeah, Java people say "desktop apps suck" (cause Java isn't good at it) "web services are the way to go". Whatever. You've got a hell of an uphill battle against MS. I'm not HAPPY about this at all. Personally, I'd rather see more people get behind Perl as ime it's much more cross platform AND faster to develop in. But it doesn't have a single huge corporation (Sun) behind it, so it doesn't get the mindshare/press Java and MS do.

      Also your line about "ignorance and sophistry" looks great in the same paragraph as "M$". Keep it up! :)

    13. Re:XP quote and more by mgkimsal2 · · Score: 2

      THANK YOU! Excellent point. But no good - half the the "we hate 'M$' and will support 'Java' because it's cool!" crowd probably don't even know what Qt is.

    14. Re:XP quote and more by Malcontent · · Score: 2

      I think you missed his point. Your VB app is useless on any platform other then windows.

      --

      War is necrophilia.

    15. Re:XP quote and more by sheldon · · Score: 2

      "Based on their poor analogy, logic, and reasoning skills I hope not much. Ignorance and sophistry should not be lucrative."

      Well than, you shouldn't have anything to worry about then, should you?

      But I'm curious, why are you so frightened?

    16. Re:XP quote and more by alext · · Score: 3, Informative

      This is an exaggeration. Thousands of developers use JBuilder all day, and that is built on Swing. I switched to Eclipse, which uses SWT, and noticed no difference in GUI performance at all - they're both perfectly OK.

  19. Karma mirror by TheFlu · · Score: 3, Informative

    Looks like the site is starting to bog down, so here's a mirror if need be.

  20. JAVA Rules by MxTxL · · Score: 2
    There is one good reason that Java will never go away, JAVA Rules!

    As a CS major, i've used quite a variety of programming languages. Among those, Java is by far the smoothest, easiest to understand and most elegant.

    C is outdated, C++ is the standard and is much more refined than C, but still has it's quirks and rough edges.

    Java offers very well documented classes and easy ways to do EVERYTHING. This alone makes Java superior, but also, Java enforces object orientation. While some people don't like this about a language(especially when you want to just write a 3 or 4 line mini-app), most people won't argue that once you have learned what classes, objects and methods are, OO makes things SO much easier to understand. It's a lot nicer way to think.

    C# will never replace Java, it's just too cool.

    1. Re:JAVA Rules by lothix · · Score: 2, Insightful

      K. Whats next? Going to compare Java to Assembly? You get an F, go back to studying.

  21. Re:Or not by ajs · · Score: 2

    Circa 1995 I was saying this about Java....

    C# is new, and so it has a less established user base. Never assume that that means it will be a smaller user base for long.

  22. Re:Or not by cscx · · Score: 4, Funny

    It has APIs for everything from speach to distributed computing.

    Excluding spell checking APIs, that is ;-)

  23. Myths #6, #7, #8 by Pinball+Wizard · · Score: 3, Interesting
    I don't buy it. Here's why.

    Myth #6. .Net will be accepted by users of non-Windows systems.


    Despite the hoopla over Mono, its not likely that .Net will succeed on systems outside of Microsoft's control. Two reasons for this - 1 Microsoft will make certain that .Net running anywhere other than Windows is crippled in some way and 2 - people who already don't use Windows have a distaste for Microsoft products, generally speaking.


    Myth #7 Java needs the desktop to succeed


    Not so. Java's greatest success to date has been on the server, powering servlets and .jsp's. It is the overwhelming choice among corporate users standardizing on a development platform. Another factor to consider. Java will win where UNIX and Linux servers are used. .Net will be used where Windows servers are used. IMO, the decisive factor between the .Net/Java battle will be what servers companies choose to buy. And anyone who wants a powerful, reliable server with good security built in is going Unix, unless they are trying to be cheap(Sorry. The truth hurts sometimes). Because Unix/Linux/IBM/Sun are winning where industrial strength servers are concerned, so too will Java win.


    Myth #8. .Net is better because it allows you to plug in multiple languages.


    Um, well yeah, as long as they are singly-inherited languages that don't have pointers and don't support any unique features, I guess that statement is true. Otherwise you are really looking at a bunch of languages whose features are the same and only differ by syntax(unless they don't support all of .Nets features, in which case they are even more crippled). Don't expect Perl to be able to do all its cool tricks under .net, and forget about languages like lisp and scheme.


    Java is five years ahead in this game, has widespread corporate acceptance, and the deciding factor is the server, where Microsoft is still way behind. If this is a horse race, my money is on Java.

    --

    No, Thursday's out. How about never - is never good for you?

    1. Re:Myths #6, #7, #8 by M$+Mole · · Score: 2, Informative

      Myth #9 - .NET doesn't support pointers

      Try looking at the language spec for C# before you make comments like this. If you mark your code as unsafe, you can use all the pointers you like...you can create stack-arrays...just about anything you want.

      --
      Karma: Non-existant. Due mostly to the fact that you smell funny and nobody likes you.
    2. Re:Myths #6, #7, #8 by Pinball+Wizard · · Score: 2
      Yes, like Java.

      The point was - the whole thing about .Net supporting multiple languages is a farce. Whatever language you use has to interface with the CLR. .Net's "multiple languages" are really the same language with different syntax. I predict we will soon see several language translators for the different languages for .net. They will not be very hard to write.

      While I'm at it, allow me to predict that the one language .Net will kill is Visual Basic. You can't easily port a VB6 project to .net - it takes a significant rewrite. Microsoft basically screwed over their own developers and sabotaged the most popular programming language in the world.

      --

      No, Thursday's out. How about never - is never good for you?

    3. Re:Myths #6, #7, #8 by Pinball+Wizard · · Score: 2
      I'm aware of the unsafe block. What I don't understand is why anyone would use it - they could just get a real C++ compiler instead. Code that uses unsafe blocks defeats the purpose of using C# in the first place.


      Further, C# doesn't support everything C++ does. You can't use templates in C# - and thats what most C++ developers do these days - they create template classes.


      Finally, a choice quote -

      "C# is yet another proprietary language specialized for Microsoft's Windows system." -
      Bjarne Stroustrup, creator of C++


      You are mistaken if you think C++ developers as a whole are going to embrace C#.

      --

      No, Thursday's out. How about never - is never good for you?

    4. Re:Myths #6, #7, #8 by ZoneGray · · Score: 2

      >> Java will win where UNIX and Linux servers are used. .Net will be used where Windows servers are used.

      Heh. It's funny... all kinds of very knowledgeable programmers are discussing an incredible amount of programming detail, and I've think you've hit the nail on the head with that simple observation. That's how I think it will shake out, too.

      I'll go a step further. Java will become more open (and its future on the *nix platform will be extended) after Sun is acquired.

    5. Re:Myths #6, #7, #8 by aminorex · · Score: 2

      Really, it is very, very stupid to mix multiple
      languages in an application. I mean, 2 years
      later, when the VBA guy has alzheimers, and the
      C%#!)%^& guy has gone home to Delhi, and the
      Haskell guy has started a competing business, how
      are you going to maintain this app?

      Yeah, Myth #8 is a pipe-dream, and a failure in
      the execution is pre-ordained by a failure at the
      theory level, but even if it were not a delusional
      fever-dream, it would just be a bad idea all
      around.

      --
      -I like my women like I like my tea: green-
  24. What C# gives you that Java does not: by Mr.+Neutron · · Score: 3
    C# is not only being pushed by Microsoft as a replacement for Java; C#.NET is the next-generation replacement for C++/MFC for Windows application development. Now, you can do native apps development, cross-platform applet development, and Internet client/server scripting, all using one language. Java, with its clunky VMs, could never offer that, and C# is (supposedly) the first language ever designed to do so.

    Microsoft benefits in two big ways: the hoards of Windows application developers will make the switch from Visual C++ to C#.NET, because of C#'s incredible versitility and cross-platform capabilities. Non-Windows developers (both C++ and Java) will start using C#, because it can do everything that C++ and Java could do, with the added bonus of being very Windows-friendly. Microsoft's third-party developer base expands. They gain further entry into the internet services world that they very much want to take over.

    Interestingly enough, as good as this is for Microsoft, C# and .NET may (perhaps) be a blessing in general to the world of computing by introducing the first *truly* write-once-run-anywhere development platform.

    --
    dinner: it's what's for beer
    1. Re:What C# gives you that Java does not: by mmacdona86 · · Score: 2

      Write-once run anywhere? Hmmm, today I can write a nice app in Java and have it run on Linux, OS/X, Solaris as well as Windows. With .NET, it will run on Windows. If it doesn't interact with the display or a database, it will run on FreeBSD. It might run on Linux with Mono, someday.

    2. Re:What C# gives you that Java does not: by Junta · · Score: 2

      >I'm using a 1993 200MHz Pentium for my Java stuff....

      Impressive, seeing as how the Pentium 60Mhz was released in 1994..... 200 MHz Pentium is a 1997 release, IIRC...

      --
      XML is like violence. If it doesn't solve the problem, use more.
    3. Re:What C# gives you that Java does not: by Junta · · Score: 2

      Ugh, tell me how Java as a *language* is not even a remote possibility for natve apps? As far as the others, Java is deployed widely in cro-ssplatform applets and client/server scripting, so that leaves the point about Java being a flawed language for native development. The inability to create native code has nothing to do with the language, so much as it does the current widespread implementations. Implementations started as bytecode only, now we see pretty common use of Just-In-Time compilers to compile code to native instructions on the fly for performance, and we see are seeing some products that do ahead of time compilation, just like C or C++ (gcj comes to mind, but there are commercial products...) So currently, Java is not an easy choice for native development thanks to current implementations, but as implementations become more advanced, Java could be used for native application development. As a general rule, if it can be interpreted, then it can be compiled, any language that can be ran on many platforms has the potential to have a native compiler developed for any of those platforms that can probably perform optimizations beyond what is possilbe in interpreted mode.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    4. Re:What C# gives you that Java does not: by angel'o'sphere · · Score: 2



      > I'm using a 1993 200MHz Pentium for my Java stuff....

      Impressive, seeing as how the Pentium 60Mhz was released in 1994..... 200 MHz Pentium is a 1997 release, IIRC...

      You are right, its a 1997 machine :-)
      Sorry.

      My 1993 machine was my first windows machine, Win 3.1, a 486 66MHz EISA. It was also my first linux machine.

      Well, to the other poster: Yes, .NET Studio can be downlaoded. NOW. But it will soon cost money just like the other MS Development Studios.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:What C# gives you that Java does not: by Junta · · Score: 2

      That was my point, it wasn't as easy, but it is possible. That is the very point I was disagreeing with the parent post about.

      --
      XML is like violence. If it doesn't solve the problem, use more.
  25. Java will outlive C# by Glock27 · · Score: 5, Interesting
    Java will outlive C# simply because C# is tied to Windows. Don't believe the hype about Mono - Mono is in it's infancy, while there are at least two high-quality commercial JREs for Linux and a rapidly improving open-source ahead-of-time Java compiler, gcj. Mono faces an uphill legal battle to actually provide any signficant subset of .Net on Linux.

    One example of the author's cluelessness is that he touts the Halcyon solution - which is implemented in Java. This is supposed to show Java's vulnerability how?

    The rest of his "myths" are just as insightful..i.e. a bunch of crap. ;-)

    Where was SWT in this discussion for instance? Where was the discussion regarding millions of Java-enabled devices in the marketplace? Where was the discussion of Javas total dominance in application servers right now (perhaps .Net will make a dent, but it remains to be seen).

    Then the author gives forth with:

    "We have a beautiful language here in Java; it has achieved industry-wide support and is pushing forward with great velocity. What can we do to support it?"

    For a start, perhaps NOT writing clueless, FUD-filled articles that completely exaggerate the threat of C# to Java... Many, many Java users are going to be very slow to move to a Microsoft proprietary solution...and make no mistake about it, .Net is Microsoft proprietary. Only the C# language and the CLR runtime have been submitted to ECMA and those make up a tiny subset of .Nyet (sorry, couldn't resist doing that at least once!).

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
    1. Re:Java will outlive C# by tdrury · · Score: 2
      Where was SWT in this discussion for instance?
      Exactly. I've been playing with SWT for the last couple weeks and I've decided there is no need for AWT/Swing anymore and all the baggage those two carry. SWT is fast and is tightly coupled to the OS. I don't care that its not platform dependent. I can distribute my SWT app with the appropriate OS/window manager binding. SWT just needs work on the gtk binding and it needs a qt binding.

      Coupled with a native compiler like gcj or JET(free for personal use) and you have a winning combination. I pulled together a quick SWT app that was running IE inside of it (using SWT's Window binding which includes OLE) and compiled it native. It took about 12 lines of code to do this and it started up and ran very fast.

      -tim
    2. Re:Java will outlive C# by Glock27 · · Score: 2
      This is opposite to the Sun "look, but don't touch" Java policy.

      That is not Sun's policy...that is Microsoft's policy with everything in .Net except C# and the CLR.

      Oh wait, I forgot "Don't implement". :-P

      You can modify the JRE and use it for your own purposes to your heart's content. You just can't distribute it without a license. You can also turn in your bugfixes to the JCP with the hope that they'll be adopted (similar to Linux kernel patches;).

      popular software ported to C# in less than a month:

      JUnit -> NUnit
      Ant -> Nant
      Log4J -> Log4N

      I can't wait to do some benchmarking between the Sun and IBM JREs and Mono. Should be very...revealing. :-)

      I hope mainstream Gnome development uses another path (gcj!), or there'll be big trouble someday...

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    3. Re:Java will outlive C# by Pedrito · · Score: 2

      There's already a C# compiler (with source code) available for FreeBSD. You don't think it'll be on Linux before long? I think you might want to cut down on the crack. It's messing with your perception of reality.

    4. Re:Java will outlive C# by Baki · · Score: 2

      So what, apparently it is you who is on crack (or paid my MSFT to spread disinformation here). As the auther you replied to mentioned, .NET is much more than just C#. Having a C# compiler and CLR does NOT make .NET cross-platform.

      Any software written with .NET shall make heavy use of MSFT only libraries. Those libraries have not been submitted to ECMA, they are non-portable (relying on underlying WIN32). Therefore these ports of C# and CLR are no more but propaganda to spread the false impression that .NET does not mean lock in to MSFT.

    5. Re:Java will outlive C# by alext · · Score: 2

      I trust that your cognitive abilities extend to perceiving complete sentences. The poster referred to a 'significant subset' of Dotnet on Linux. A C# compiler is not a significant subset of Dotnet since the number of C# applications using standardized classes is small and will remain so.

  26. Not a beta, -1 wrong by Smallest · · Score: 5, Informative
    VS.Net has been released for months now. In fact I have a copy sitting on my desk right now. C# is included, as is VB.Net and VC.Net.

    You can get a copy of the source to a CLI implementation which also includes a C# compiler that can run on XP and FreeBSD, here.

    From the link:

    The Shared Source CLI goes beyond the printed specification of the ECMA standards, providing a working implementation for CLI developers to explore and understand. It will be of interest to academics and researchers wishing to teach and explore modern programming language concepts, and to .NET developers interested in how the technology works.

    Features
    The Shared Source CLI archive contains the following technologies in source code form:

    An implementation of the runtime for the Common Language Infrastructure (ECMA-335) that builds and runs on Windows XP and FreeBSD Compilers that work with the Shared Source CLI for C# (ECMA-334) and JScript

    Development tools for working with the Shared Source CLI such as assembler/disassemblers (ilasm, ildasm), a debugger (cordbg), metadata introspection (metainfo), and other utilities

    The Platform Adaptation Layer (PAL) used to port the Shared Source CLI from Windows XP to FreeBSD

    Build environment tools (nmake, build, and others) Documentation for the implementation

    Test suites used to verify the implementation

    What can I do with the Shared Source CLI?
    There is a wealth of programming language technology in the Shared Source CLI. It is likely to be of interest to a wide audience, including: Developers interested in the internal workings of the .NET Framework can explore this implementation of the CLI to see how garbage collection works, JIT compilation and verification is handled, security protocols implemented, and the organization of frameworks and virtual object systems.

    Teachers and researchers doing work with advanced compiler technology. Research projects into language extensions, JIT optimizations, and modern garbage collection all have a basis in the Shared Source CLI. Modern compiler courses can be based on the C# or JScript languages implemented on the CLI.

    People developing their own CLI implementations will find the Shared Source CLI an indispensable guide and adjunct to the ECMA standards.

    -c

    --
    I have discovered a truly remarkable proof which this margin is too small to contain.
    1. Re:Not a beta, -1 wrong by Malcontent · · Score: 2

      Hey do you have a sample code that shows me how to connect to a SQL server database from freebsd using C# and .NET?

      --

      War is necrophilia.

  27. Re:Or not by W2k · · Score: 3, Informative
    Blockquoth the poster:
    What does C# have? Nothing yet but a BETA.
    The article was all about C#-related myths, but you seem to have found one which the author missed. C# has been out of beta for a while now, I think Visual Studio.NET (which includes Visual C#.NET) was released in february, and I'm using it for some minor programming work already (not C# - just C++ for now). So that it would still be in beta is, to put it simply, not true.
    --
    Quality, performance, value; you get only two, and you don't always get to pick.
  28. Re:Or not by augustz · · Score: 2, Interesting

    Write once run anware is a load of bull. The syntax of java and C# are very close, true, but the underlying CLR has some real distinctions (and I'd argue improvements).

    API's? I think you forget Microsoft is a huge company. What's to stop you from using the Microsoft Speech component from C#? Nothing. In fact, C# is meant to take advantage of exisiting components. And though Java zealots hate to admit it, that means that there are more than zero API's that C# can use.

    Every time a read a Java zealots arguments I'm struck by how FACTUALLY wrong they are, and how STUPID they like to think Microsoft is. You call C# a bet.

    Visual Studio .Net is certainly not a beta. In fact. I look at the first Java SDK and I look at the first Visual C# SDK and I think, wow, if this is what Java zealots call beta (despite the fact that it is shipping) then those first Java SDK's should be called alpha alpha.

    The point of the article is that Java zealots like to ignore the facts, and that that may come back to bite them. I think your note proves the point.

  29. Re:ummm... heard this before... by geekoid · · Score: 2

    "the problem with C++ was that exactly zero of code was reused, "

    bull.
    I won't get into a JAVA/C++ debate, but please don't go off spouting crap like that, and try to understand that which you speak out against. You make yourself out to be a damn fool.

    A damn fool, is the worse kind.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  30. Corporations are tired of Java by Yo+Grark · · Score: 2, Interesting

    As a sideline observer, I have seen Java rise and CRASH. At more than 18 customer sites, Java was regarded as amateur. Java is a great cross platform language, but it never did fulfill it's promise of a THIN Solution to bandwidth problems.

    Our company spent Millions coding in Java, only to replace it with Native C 2 years later. Guess what? 55% increase in speed, 45% reduction in size, and before you knock the programmers, they're completely competant.

    I know of 2 companies who put their faith completely in Java, had a great product, but somehow corporations kept waiting and waiting til Java "matured" and these comanies both went bankrupt waiting.

    -YoGrark

    ==The opinions expressed in this opinion are not necessarily based on fact, are not necessarily reprentative of the poster==

    --
    Canadian Bred with American Buttering
  31. Too bad you can't moderate the main message! by Courageous · · Score: 2


    -1 Troll

    C//

  32. Beyond the Java vs. Anything debate by midh · · Score: 3, Interesting

    I started learning Java during the great Java hype (1997). Then I went back to school to learn C. My initial impression was, why would anyone want to program in this unweildy language where your executables crash with weird errors like "Segmentation Fault" and "Core Dumped". I did not like all that pointer crap and the fact that you hade to declare your variables before you did anything else.

    Four years of college and several programming languages later Java is still my best girl. But I have learned to appreciate the beauty of C and its need to be a control freak in some cases.

    To solve the debate, I am going to quote the words of one of my professors. "A programming language is a tool in a tool box". There are several things wrong with that analogy. I tend to think that a programming language is like a woman and learning one is like dating.

    Im my 5 year 'dating' life I dated more languages than girls. Perl, Python, Tcl, C ... each have their own attractions and turn offs. C# is something I haven't approached yet. But like dating, it just broadens your outlook (not to mention the fact that it is fun).

    There should be not be fear of a new programming language. It is the new girl in town. It is true that one has to be wary that C# is a Microsoft baby. If it turns out that you cannot use C# without paying MS big bucks and the returns are not justifiable there are always other alternatives to look to.

    When I was a sophomore, I was scared when some senior started talking about C++. I thought, another language. Oh no. But once you have mastered the basics of what I referer to as the dating game, you can romance almost any girl. Even if it was the girl with red hair and pierced ears (Perl) or the one that you can't take your eyes off of (Scheme).

    1. Re:Beyond the Java vs. Anything debate by kelzer · · Score: 4, Funny

      There should be not be fear of a new programming language. It is the new girl in town.

      Don't date that C# slut! Next thing you know, she'll be knocked up, and you'll be gettin' married whether you love her or not, because Bill Gates will be pointing a shotgun at your back.

      It is true that one has to be wary that C# is a Microsoft baby. If it turns out that you cannot use C# without paying MS big bucks and the returns are not justifiable there are always other alternatives to look to.

      Just try to leave her, and Bill will hunt you down. Stay away from her - she's trouble!

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
  33. 5 years? Sigh. More pundits "killing" more things by dinotrac · · Score: 2
    The first thing that caught my attention was the 5 year timespan. Does anything last five years in computing any more? Seems these days that things flame out fairly quickly, say within 2 or 3 years, or hang on damned near forever.

    Java seems to be in the damned near forever category. There is a lot to recommend it, but, more importantly, there is already a lot of java code out in corporate infrastructures and corporations don't like to rewrite from the ground up.

    That's not to say java won't shrink in terms of overall importance. That seems a likely outcome of more competition, especially given the poor experiences many people have had trying to implement java-based solutions.

    C# is only one -- though a signficant one. Off in the weeds, python use is slowly growing, and python can fill many of the same purposes served by java. With Mozilla finally biting the bullet and declaring an API-frozen 1.0, some of its tools might also find a spot.

    Java is like every other technology that ever existed: sooner or later something or some things come along to displace it. Not kill it necessarily, but displace it.

  34. Song by zephc · · Score: 2

    "We have a beautiful language here in Java; it has achieved industry-wide support and is pushing forward with great velocity. What can we do to support it?"

    Well, another song product, Open Firmware, has a song (though it's not a programming language... but it does use Forth!)

    --
    "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
  35. Re:Or not by Anonymous Coward · · Score: 2, Insightful

    You're right! The painless integration with COM and otherwise native code. (you can do inline C inside of C#)

    Also people are saying 'When Microsoft's API is as big as Javas...etc.'

    The size of the API doesn't matter as much as you think. Microsoft achieves the same stuff, from j2ee capabilities down through graphics, mathematics, etc on a full api. It also supports checked and unchecked arithmetic, as well as automatic marshalling between primitive and object types (no more of that Double() and Integer() bullcrap)

    Thats why Java should be scared, and that's why Java really needs to update their bytecode to make it more optimizable from an algorithims standpoint. If they dont they will be hurting.

  36. a quote by vinnythenose · · Score: 2

    The Dean of Engineering at my university was overheard saying "Boy, switching the curriculum from C to Java was a big mistake".

    Java has some really nice features but I find it more useful in the learning situation. In real life I found C and C++ much more useful.

    --
    --- I used to moderate, then I read the -1 articles and decided having to filter through them was not worth it.
    1. Re:a quote by egomaniac · · Score: 2

      And one of my old professors bemoaned the switch away from Fortran.

      So what?

      The opinions of individuals are irrelevant in a contest decided by the masses.

      --
      ZFS: because love is never having to say fsck
  37. It Java DEAD? by StevenMaurer · · Score: 2

    Absolutely!

    But then, so is Unix. NT is going to absolutely destroy it.

    ...at least that's what I'm reading from a magazine circa 1987.

  38. It's the tools by blamanj · · Score: 2, Troll

    Don't forget that Visual Studio costs over $1000. There are a large number of decent Java tools that are free (as in beer.) For the notoriously cheap developer community, that is significant.

    1. Re:It's the tools by HRbnjR · · Score: 2

      Right argument, wrong outcome.

      I am a professional Java consultant. Billing at over $100 an hour, $1k on Microsofts tool set means nothing to me.

      And I find Microsofts tools very appealing.

      If there was any one reason I would consider switching to C# it would be to gain access to Microsofts tools.

      I have been using JBuilder for Java development for a long time, but it has lagged on support for Java 1.4. And they are not releasing patches at all for their products, but rather force users to upgrade at exhorbitant costs ($1900 for enterprise) every 6 months. JBuilder is just starting to be able to hold a candle to MS Dev Studio in terms of functionality - debugging, code profiling, refactoring. Though, being written in Java, it's slow.

      I have recently been testing both Netbeans and Ecipse. While both of these tools have great potential, neither of them are half baked yet. It's not any one thing they are missing, but rather an endless string of gotcha's and little bugs or oddities of design which make them very hard to use (for me at least). Using JBuilder was much much easier. And if you want the /definition/ of PIG software, try NetBeans. It took 30 seconds to respond to the close box on my Dual PIII 733 / 512Mb.

      Microsofts tools are a great. If for no other reason than the fact that they are three times more mature than the Java ones. People WRT Java often point to the lack of applications... well, it sure shows that many apps have been built on MS tools. I think that is why Borland managed to create a decent Java tool with JBuilder, is because they brought their previous experience to the table. Unfortunately, I don't see that with other Java products so much.

      Either way, I would still LOVE MS dev tools. Combined with command line tools like Cygwin... (like Mozilla does) makes it perfect.

  39. Greedy? by tswinzig · · Score: 2

    Now that Java is the biggest player in the industry, it seems Sun has gotten a bit greedy, and is trying to cash in on Java's popularity.

    I'd like to know how much time and millions of dollars Sun has spent developing this free language, with a wonderful API, and plenty of source code available, before I start calling them "greedy."

    If anyone's greedy here in this context, I sure as hell don't think it's Sun. Shit, they could make Java proprietary today, closing off all source access, requiring people to buy the JDK, etc... and it would still be popular, and you'd still have all their current and older Java-related stuff available for free.

    --

    "And like that ... he's gone."
  40. .NET isn't bundled with XP by WildBeast · · Score: 2

    just like Java, you have the option of downloading or not the .NET framework. So, the fact that Java is bundled or not with Windows won't make much difference.

  41. Why .net will really win over java by johnburton · · Score: 5, Insightful

    .NET platforms will win over from java because .NET compilers to .EXE and .DLL files which look and seem to work just like the ones you are used to. Of course they are completely and utterly different behind the scenes, but that one simple fact makes .NET seem familier but new and exciting, and not at all like all those scary java .class files. Ok, so I exagerate, but I think that having .EXE and .DLL files really WILL make a lot of difference to how people percieve this platform.

    --
    Sig is taking a break!
    1. Re:Why .net will really win over java by kelzer · · Score: 2, Funny

      Let's see, ".EXE" files are those nasty things that sometimes spead viruses when attached to emails, and ".DLL" files are those nasty things that inspired the term "DLL Hell".

      ".CLASS" files sound pretty classy, so I think I'll stick with Java.

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
    2. Re:Why .net will really win over java by quintessent · · Score: 2

      Finally, a post from someone who actually knows.

      I will add one more thing.

      At the time an app is installed, it is possible to "pre-jit" applications, so they could be .exe's by the time they run.

    3. Re:Why .net will really win over java by johnburton · · Score: 2

      Lot's of people posting half right information here :- Yes, .net code compiles to "assemblies" but those assemblies are packaged into .exe and .dll files. Yes you can pre-jit the code using "ngen" but this in no way modifies the assembly. It just creates a separate cache of the jitted code, which the runtime is free to load if it feels like it. I've found that in practise it doesn't actually make all that much difference to the speed. A .net .exe file only ever contains the IL code and the metadata and the manifest. (And unmanaged code as well if you have any)

      --
      Sig is taking a break!
  42. It is about the development Environment and tools by Anonymous Coward · · Score: 2, Interesting

    The problem with the Java Environment is the integration of the tools. Even beta 2 of .net I was amazed at the productivity gains. Even thou I hate the beast they do have very good tools. The tools will make the difference. They did in the early 90's with VB. People bitch about performance that is not the case. If you look at VB It had performance problems compared to C MFC apps but it was highly adopted because a lot of people could easily churn out code. Even people that should not ever write code.

    C# as a language does not matter it is very similar to java. It is about the tools and can you get a business analyst that churns out VB code who has never used a command line to adopt your environment.

    Jbuilder is a nice IDE and ANT is nice for makes but while I am vi ing an apache .conf file and figuring out where my classpath is pointing too and why my servlet is not making its JDBC call the .Net guy has already deployed their app and is fetching XML records from SQL Server.

    Which one will they adopt and why? A nerdy UNIX /Java person that can be as productive as a .NET / VB business analyst will cost a company more.
    I hope the beast does win but it is about the tools!!!! History repeats itself.

  43. Re:Or not by bnenning · · Score: 3, Insightful
    Circa 1995 I was saying this about Java....


    In 1995 Java had substantial advantages over the then-dominant languages. Today I see no compelling reasons for Java developers to jump ship to C#/.NET (and one big reason not to).

    --
    How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  44. Why care? by ToasterTester · · Score: 2, Insightful

    Java is a good language, but starting to show some of the wear all languages do as they age. C# and up coming J# are new languages and like all new languages build on the past with new features, requirements, and libraries. Java did the same thing when it came out, building on C++, Smalltalk, and other languages.

    Bottom line Java isn't going to go away, if you like it keep using it. You will have plenty of work for years to come. C#/J# (they all compile down to CRL anyway) are new and cool and people will use them.

    Be happy, you got Java because Sun thought they had a better tool than C++ with MFC or OWL or whatever library. MS has upped the ante in order to compete and came out with the CLR and C# and other languages CLR will support. Now its Sun's or anyone elses turn to come out with something better. It called evolution and we all benefit from it.

    1. Re:Why care? by soap.xml · · Score: 2

      J# is a compiler. Java is the language. .Net is the framework. J# is not a language.

  45. Re:Where are the apps by einer · · Score: 2

    Why mess with success?

    Because if we didn't mess with it, we'd be programming with 8 switches on an Altair. Also, how would Freenet be more useful if it were written in C? You just state this and then go on to your argument that if something works it should under no circumstances be improved upon. Does C have some magical functionality that remains wholly unavailable in Java?

  46. If that bothers you... by mrpotato · · Score: 2
    why not settle for a language that just won't die: Lisp.

    I'm serious.

    --

    cheers
  47. Take the source with a grain of salt. by Tank · · Score: 2, Informative

    IIRC, Java Developers Journal has very close ties to it's older sister publication Windows Developer Journal, and receives much of it's funding from none other than....

    <drumroll/>
    Microsoft
    <cymbal type="crash"/>

    With that in mind, it's not surprising that the editor has such dire predictions since you can guess who signs the checks.

    Note, I'm not bashing C#. The language is so similar to Java that you can certainly find good things in it, but predicting that MS will port their runtime over to a large number of other platfoms might not be the smartest bet.

    1. Re:Take the source with a grain of salt. by be-fan · · Score: 2

      It's amazing how computing technology has advanced so. It used to be that we'd see fake HTML in postings. Now, its fake XML. Ah, progress...

      --
      A deep unwavering belief is a sure sign you're missing something...
  48. You really need to get out more.. by jcr · · Score: 3, Insightful

    There is one good reason that Java will never go away, JAVA Rules!

    I notice that you only compare Java to C and C++..

    Sure, it's better than Stroustrup's train wreck in a lot of ways, but I notice very little enthusiasm for Java among people who already knew a superior OO language, such as Smalltalk.

    What you say about OO is true, but Java isn't a very good example.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  49. Re:Or not by deanj · · Score: 2, Interesting

    Correction: 3 million programmers. 1 million downloads of 1.4 in the first month it was released (a few months ago)

  50. Re:ummm... heard this before... by Misha · · Score: 2

    please don't go off spouting crap like that

    ok, without going into a flame war... sure there are excellent packages available for C++. even some libraries that people use, like sockets, STL, perhaps even system libraries that you can throw in the mix. i was a little too brief there.

    but Java made so many packages beyond that.

    yes, there are XML parsers for C++, but everyone uses the Java one. (not the least of the reasons is that Java looks more web-friendly)

    yes, it's conceivable to write a servlet/ODBC solution in C++, but Java does that so fresh and so clean (ok, mostly clean...).

    yes, C++ has a mechanism for extensibility, but Java even has reflection that beats everyone's pants off when it comes to enterprise solutions.

    in short, when you don't want to sit and program all day, but simply want to customize someone else's application, much like what the web services want you to do, you simply go with Java, because you won't need to start your Java application from scratch.

    yes, i realize that a lot of these reasons are due to marketing, but they are real concerns for enterprises.

    --



    I was thinking of how to intentionally fail my drug test... It would make a good memoir story someday.
  51. The "power" of .NET by smagruder · · Score: 2

    .NET is great when you run a wine storage facility and one day, most of the storage shelves fall over, breaking all the bottles. Then, you can use the almighty .NET to change the price in one button click!

    Peanut gallery: Hmmm... I thought any well-designed inventory/price control system could handle that.

    --
    Steve Magruder, Metro Foodist
  52. Re:Or not by HunterOfBeer · · Score: 2, Interesting

    What does C# have?

    A full-featured IDE that lets you collapse arbitrary sections of code? (Among other features of course)
    A few million Visual Studio users looking for the next new thing?
    Support from an 800-pound gorilla?

    Java has a lot going for it too and neither language should be discounted.

    Maybe in five years COBOL.NET will be king...*shrug* You just never know in this industry and that's what makes it fun.

  53. Re:Interesting by Graymalkin · · Score: 2

    So..open source is the solution to all of life's problems. I guess that means despite evidense to the contrary Blackdown really DOES have JIT support and is the fastest JVM ever made? Man I'm sure glad you told me that so I don't have to believe the Blackdown group's lies anymore.

    --
    I'm a loner Dottie, a Rebel.
  54. You are misinformed by dnoyeb · · Score: 2

    Sun is trying to maintain control over Java and leverage it. Its clear to any Java programmer.

    They currently only put 2 certificate chains in their keystore. so how much do you thing verisign and thawte paid Sun for that priveledge? you think that was free? Especially since we have to pay over $100 per year to get certificates.

    Their are ago old problem with Suns Functionality on Windows which Sun seems to think is cool to blame on M$. So they dont fix them as long as they can pass off the blame. They could have been fixed them. Like getting rid of terminal windows on spawned programs.

    Sun is not smothering Java, but they are not letting Java move as fast nor as friendly as it could.

    No I agree c# will not have the community that Java has EVER.

    C# does NOT compete with Java. I have to say this about 15 times per month. Clearly M$ wants to keep pushing this idea, but no one has yet told me why its supposed to. C# competes with c++. c# is for windows, Java is for everywhere. Yes maybe you can use c# on some other os, but c# is "for" windows.

    I wish they would just let this fake arguement of c# knocking off Java die.

    1. Re:You are misinformed by Hard_Code · · Score: 2

      I think he was talking about applications spawned through Runtime.exec(), in which case he has a point.

      --

      It's 10 PM. Do you know if you're un-American?
    2. Re:You are misinformed by Hard_Code · · Score: 3, Interesting
      dnoyeb said:
      Sun is not smothering Java, but they are not letting Java move as fast nor as friendly as it could.
      Actually, I'm not so sure I buy into this. From where I'm standing, it is still very hard to get clients updated quickly to the latest bleeding edge Java (no thanks to Microsoft's desktop dominance), so I don't see how Java is not moving as fast as it could be. Are you keeping track of all the specs and extensions they churn out? RMI, EJB, CORBA, JDBC, XML support, Servlets and JSP, JDO, Mail libraries, JNDI libraries, LDAP libraries, 3D graphics support, now they even have a serious Java Gaming push! Java seems to be moving very fast to me.

      No I agree c# will not have the community that Java has EVER.

      C# does NOT compete with Java. I have to say this about 15 times per month. Clearly M$ wants to keep pushing this idea, but no one has yet told me why its supposed to. C# competes with c++. c# is for windows, Java is for everywhere. Yes maybe you can use c# on some other os, but c# is "for" windows.

      I wish they would just let this fake arguement of c# knocking off Java die.
      Just wanted to quote that because I wholeheartedly agree. C# is primarily a migration path for *MS developers* to step into a world which until now J2EE has been the sole citizen. Of course MS is going to hype it if it can detract from Java, but that's just extra. And frankly, I'd rather see MS software written in C#/CLR (which is actually a decent architecture, with security, etc.) than C and C++.
      --

      It's 10 PM. Do you know if you're un-American?
  55. "Open Source"? by schmaltz · · Score: 2
    Open source wins the day yet again.
    What? This is a joke, right? Seahash is open source? Hello??

    TTBOMK, seahash was developed closed-source and proprietary, then it was submitted to ECMA to be considered for becoming a "standard." Open source usually means community-supported from the get-go, and good software becomes a de-facto standard, e.g. Apache, Squid, Perl. Microsoft developed seahash as a Java contender.
    --
    Big Daddy, Johnny, Burp, Aunt Zelda, Scott, Slurp, Big Momma ... where's Siggy?
  56. wow, you must have interesting time sense by StandardDeviant · · Score: 4, Insightful
    And really, C hadn't been around that long when Java was first introduced.
    C = early 1970s, Java = mid-90s (well, unless you count Oak and that's still only early/mid-90s)... A 20 year lead time is pretty considerable in any field, let alone IT where everything changes on a biweekly basis...
    1. Re:wow, you must have interesting time sense by 56ker · · Score: 2

      which makes what you're saying out of date about .... now. :)

    2. Re:wow, you must have interesting time sense by Sentry21 · · Score: 2

      Unless you're a large company, in which case nothing changes for 30 years (let's face it, COBOL is not exactly today's language of choice, but it is still widely used). Sure the little guys jitter around like a jumping bean on a hot plate, but the monoliths (by and large) build systems and stick with them. You can't afford to stay behind, but you can't afford to upgrade every 6 months either, and changing languages is just a pain.

      --Dan

  57. More likely by Paradise+Pete · · Score: 2
    Of the two extremes I'd say it's more likely that in five years Microsoft will be in tatters. Their business model is collapsing. They know it, and so they're trying to find a new one. There's hardly a guarantee that they will. All industry giants eventually come back to the pack or collapse altogether. It usually takes a long long time, but now we're traveling at internet speed.

    Their market capitalization is fragile, based on things staying pretty dang rosy as far as MS is concerned. Once Wall Street no longer believes then the game is over. Suddenly all their best and brightest will be working for peanuts. At first they'll fool themselves into thinking it's just a blip, but eventually they'll start to leave. Once that happens MS will have to start paying real salaries. But they really can't afford to, because their accounting scheme is based upon rewarding with stock options they can print, not actual dollars they can't. So now they start missing quarters, and a few missed quarters in a row and then the stock price collapses down to conventional levels and below.

    The above doesn't have to happen, it's certainly a real possibility and more likely than C# taking out Java.

  58. Critical Mass by smagruder · · Score: 2

    What makes Java different from another once-hyped language, like Delphi, is that Java has actually reached a critical mass with the guru-level developers and the best development shops and has maintained it for at least a couple years. This means that there will be plenty of Java maintenance work lying around for years, if not decades to come. You can't say the same about Delphi. Most shops in the U.S. have already vacated Borland technologies (even though they're better than MS Visual Studio crap, of course).

    So, bring on C# and .NET. J2EE needs competition, and thus Java development is bound to get better and better, and stick around longer and longer.

    --
    Steve Magruder, Metro Foodist
  59. Who cares??? by sterno · · Score: 2

    If it is true that C# is very similar to Java and it is true that C# can be used on non-windows platforms, then why should we be concerned about C# coming to dominate? I mean, all the java developers go learn C# and life goes on.

    What's the problem?

    --
    This sig has been temporarily disconnected or is no longer in service
  60. Not quite right.. by willy_me · · Score: 2
    To be Pure-OO, everything must be an object and derived from one single base type -- that is not the case in Java because of the primitives (int, byte, etc)

    Not true. What Java lacks is dynamic binding / linking. For example, take two classes - Obj1 and Obj2. Obj1 can't be compiled if it makes a method call to Obj2 and doesn't have some sort of reference to that object - like a header file. A true OO programming language would allow you to do this because everything is linked at run time.

    Take a good look at ObjectiveC. It is completely ANSI C compatible and is also a true object oriented programming language. SmallTalk is another prime example of a true OO language.

    You're right when you say that Java isn't a pure-OO language but you're reasoning is incorrect.

    Willy

  61. separating language and API's by Tablizer · · Score: 2, Insightful


    (* What we need is an open language that matches up to java and c#. Something free of patents and IP. *)

    Heck no!

    There are already PLENTY of open languages. What is needed is open API's.

    Why should I have to use language "X" in order to use API "Y" ??????

    Sun is trying to turn Java into a fricken OS. It is like Emacs: "It is not just an editor, its an OS". Java: "It is not just a language, it is an OS".

    1. Re:separating language and API's by Karellen · · Score: 2

      The thing is, Java is an OS. And a platform. And a Language. And a library.

      Which can get a little confusing at times.

      --
      Why doesn't the gene pool have a life guard?
  62. Re:Or not by BeagleBoi · · Score: 2, Insightful

    There is one big compelling reason - people who want to develop Windows client apps will move to C# and .Net.

    Then, one day, they'll want to write an app that runs on the server and spits out HTML pages. Guess what? They'll be writing it in C# and .Net ...

  63. Java isn't going anywhere by Anonymous Coward · · Score: 2, Interesting
    The world is made up of two kinds of people:
    • Those that set standards and try to, the leaders. These are the people who fight up stream, sometimes have crazy amounts of loyalty, oddball ideology, etc..
    • Those that follow. There is nothing wrong with these people, they play a very critical roll and in many ways they probably have their lives more put together than those of us who insist that X is going to be the next big thing and work outselves in to a 3 year long frenzy trying to make sure that it is rather than getting to know our neighbors and smelling flowers and such.

    No disrespect intended at all but java lowered the benchmark. In the bad old days you need to know about different platforms, you needed to know how OSes and processors worked to be a really really good software engineer. Not that those skills are what define a programmer or what make someone useful in this industry but that's how it was. Java steps in and you don't need to know about hardware or anything like that to be an effective programmer. Plus it's insanely easy to do a lot of stuff, you can just churn out code that does the job correctly in it. Now it's going to take a super computer to run on and your apps are going to have a slightly different look and feel and there is this huge JRE image you have to transport with your apps but you can make apps faster and you can use people with less knowledge to do it and that's probably a lot more valuble than a few cycles and a few megabytes of RAM. (BTW, I've always felt that lowering the benchmark was my duty as a guy with the CS degrees and the knowledge about how all the low level stuff works, the job of us is to make it possible for non-computer people to do useful things with computers.) Java lowered that benchmark in a radical way and then heavy weights like IBM, Sun, and even MS at the beginning were touting it as the future, the new VB, the future of software.. There is a lot of legitimacy to using tools like that, it shouldn't take a genius to write most of the code that needs to be written. Java is an insanely good tool because it does lower the benchmark and it allows people to focus more on solving problems than bits and bytes.


    Now that's a prime tool for followers to use, it's easy, it has support from big players. Lot's of the people who are in the java game are people who follow, not all of them but a lot of them. They saw that as the skill to put on the resume, plus it's easy and fun to use, so they move in and start coding up java. Now MS is trying to piss on their parade, java doesn't come with XP (big f---ing deal because anyone serious about java application development was only supporting a specific JDK or two anyways and you probably put it on the CD with your app, that how we do it at IBM and both IBM and Sun have pretty liberal licenses for redistributing their JREs) and they've got this great new C# technology that's just as easy and not too many people have been fired for picking MS solutions. That's another prime environment for the followers. Of course there will be people who flock to it. It's all FUD and hype but it works. The thing to recognize is that those people who moved to java and are going to move to C# will move to whatever the next thing is too, it's not like they're really loyal or something, as long as it's profitable to use and there isn't something more profitable they'll use something.


    I think the reality is that a ton of code has been done in java and some of the big boys have committed enough that it's not going to be easy to move completely to C#. Java is going to die just like C and C++ did... oh wait. The fact that C# exists at all is proof of how good a tool the java is because MS is trying to knock it off and lock their followers in to their platform. It's also proof that these kinds of tools are needed and desired.


    Java won't go away but I think there is a lot to be said for watching this tide of followers move. The Free software community can benefit from it largely. Maybe we build our own Java/C# for Linux and BSD. There are plenty of tools that already exist for it. I think you could make a standard distribution of Python with a select group of modules, document it, brand it, rally some support for it and you have something similar. If we want to start to really move over to that next level we should start trying to build that benchmark lowering tool for the opensource world. Simply copying or porting those kinds of tools is enough to give Linux and free software some a fair amount of credibility but to take it up a notch we should lead and create our own tools like that, the best you can do while Sun and MS are leading is suck hind tit, you still get some milk but you might not get your hunger satisfied.

  64. I think, he believes that if he says... by Alex+Belits · · Score: 2

    ...that he isn't a FUD-monger, everybody will just buy all the FUD that he wrote. Then he is being more naive than his readers.

    Okay, how many of you think I've abandoned all hope for Java and have gone to the dark side? I suspect some of you are questioning my loyalties at this precise moment, wondering if I'm fit to occupy my role as EIC. Well, don't panic, I'm merely being a realist and looking at it from all angles. You'd be the first ones to complain if I buried my head in the sand and just ignored the threat. We have to look at this together and come up with a strategy that will enable us to effectively take on C#. We'll be getting a lot of heat from all over and we need to be armed with the information and prepared to go back to the drawing board and reeducate the masses. Sadly, they are being led a merry dance by Pied Piper Gates.

    I personally believe that Java and C# both suck by themselves, both are "poisoned technologies" (ones that carry arbitrary idiosyncrasies built into them just to advance the agenda of their creators -- the only positive example of "poisoned technology" that I have seen is fictional -- it's Asimov's robots, and even they aren't completely positive), that they pretend to solve existing problems while actually solving the problems that people have yet to invent. However the amount of FUD (ex: C# on Linux? Without a single Win32-only library that every usable C# program is going to depend on?) makes me feel bad for Java -- if it has friends like that, enemies are completely unnecessary.

    --
    Contrary to the popular belief, there indeed is no God.
    1. Re:I think, he believes that if he says... by Alex+Belits · · Score: 2

      Hmmm... have you ever tried to write a real multi-threaded app. in C/C++?

      Multithreading _is_ one of the ideas, Java is poisoned with, at the expense of such alternatives as asynchronous processing and multiple processes, that both were superior solutions for everything that I have seen.

      What about a cross platform (I don't mean BI platform) networked application in C/C++?

      Did nothing but those things for at least six years.

      Hello, have you written a caching immutable string factory?

      More poisoning. It's not the language's fault that it doesn't come with everything a developer thinks, he wants -- but templates mechanism (that has nothing to do with STL -- STL is, if anything, an example of its abuse) allows to do that, and more easily.

      Sorry dude, picking proprietary libraries or rolling your own is just bad business sense,

      I don't give a [damn] about "business sense" if it involves hiring large number of incompetent people as "programmers" and looking for a language that will cover up their stupidity and ignorance. I can, and did write code that was cross-platform, efficient, or even both, and C/C++ never caused me, or any programmer that I know, any trouble. If inferior minds have problem with this, they should get a job that matches their intellectual abilities.

      and saying that languages perks are pushing agendas or solutions looking for problems only shows ignorance [by definition] on your part.

      Just the opposite. What you see as a perk, I see as a bad idea, being promoted by making a language that doesn't allow you to use any alternative -- but since you (and other "java developers" that were kept from studying C properly) never were exposed to any other ideas, you cheerfully eat half-chewed for you language, thinking that this is actually a good design.

      --
      Contrary to the popular belief, there indeed is no God.
    2. Re:I think, he believes that if he says... by Alex+Belits · · Score: 2

      As for studying C [C++] properly... my nickname was Bjarnie. You don't get a nickname like that unless you are a purist. I can almost cite ARM with the best of them ;-)


      Bjarne Stroustrup obviously knows C++ well (doesn't automatically translate to you though), but he is pretty ignorant about the philosophy of C design, he just built his own language on top of it.

      --
      Contrary to the popular belief, there indeed is no God.
  65. The Lesser of Two Evils by Screaming+Lunatic · · Score: 2
    A long, long time ago there was this company by the name of IBM. IBM made a computer. IBM had power. Then the bios was reverse engineered. IBM didn't have power anymore.

    Then came the folks at M$. M$ bought an operating system by the name of "Quick and Dirty Operating System" or QDOS. M$ dropped the Q, both figuratively and literaly, and we were left with a dirty operating system by the name of DOS. Now M$ had the power. This power continued with the introduction of Windoze and continues still today.

    A bunch of people got really, really mad at M$ for a variety of reasons. Groups of them attempted to overthrow M$ by creating other operating systems. But a sly company by the name of Sun developed a new cup of proprietary abstraction called Java.

    Java gained much appeal, but was never able to really give Sun the power that they sought. And they all didn't live happily ever after since everybody has paper clips yelling at them pretending that the paper clip is smarter than the user.

    Moral #1: Sun created Java to create another layer of abstraction so that they could rule the desktop market.

    Moral #2: The paper clip is smarter than most users.

    So which evil do you wanna support? I'd support Java if it was standardized by a committee such as ANSI or ISO. And Sun allowed use of Java license-free.

  66. I'm beginning to think... by glassware · · Score: 5, Informative
    that Microsoft has discovered the key to getting good press on Slashdot. What if some of the unusual articles that have appeared recently are coming (whether directly or indirectly) from Microsoft PR?

    By Way Of Example: This article, the strangely prophesied Unix Isn't Dead, and this booster for the next version of Windows.

    Although I might be paranoid to wonder about this, it would be a pretty impressive use of grassroots resources. It seems like what they're doing is writing articles that cast doubt on the official Microsoft position. These articles naturally become (in a free spirited discussion site) a thread with some people defending MS and some people attacking it, which provides an excellent position for posting Microsoft's stronger arguments which then reach open-minded developers.

    Anyways, it's an amusing thought. :)

  67. Does .NET doom Java? Yes, and for a good reason. by Anonymous Coward · · Score: 2, Insightful
    What is the fundamental difference between Java and its ilk, and C# .NET and their ilk (inluding Mono and dotGNU)?

    Simple.

    Java is Java. You cannot plug any other language into the VM. The VM is Java, and Java is the VM. This means that you have all the good and bad associated with this language (more in a minute).

    With .NET, and C#, C# is not .NET. The CLR allows you to plug in other languages. See ActiveState for details. You can plug in Perl, Python, Tcl, etc. And it works.

    Why this is important (and it is): No one language is suitable to all tasks. Things which are trivially expressible in Perl or Python are non-trivial in Java. Things you might be better suited to use Fortran or C++ for (for speed or other reasons) are best left in those languages.

    Java makes the fundamental mistake of attempting to be all things to all people. It really isnt as good as the hype surrounding it makes it out to be. And the hype has been shrill as of late.

    What is Java to do? Well, it can shrivel up and go away, or adapt. This means that it would need to open its VM up to other languages. It is not C# vs Java that is the problem for Java, it is J2EE vs .NET. J2EE suffers from all the problems that Java suffers from (it has to). .NET has its own issues, but Mono is coming along nicely, and it runs nicely.

    My best guess is Java will probably continue to win designs for another year or two as this technology (.NET and Mono) firm up. Microsoft is smart enough to know that Linux is its strongest and fastest growing threat in server-land, so if they can give the Linux world something they can deal with (by allowing Mono to continue and interoperate), they get to kill off J2EE by sucking the oxygen out of it.

    And that is exactly what they are doing.

    Java and J2EE are "dead languages/environments walking" for a few more years, unless they can open up the VM and interoperate like Mono, .NET, and the CLR allow them to. Check out the articles on perl.com about using Perl with the CLR and .NET.

  68. Code reuse by HiThere · · Score: 2

    Well, that's a considerable overstatement.

    It's true that C++ code has many dependencies that make it difficult to reuse (e.g., "only virtual members can be redefined, but how can you tell?", etc.) But there are many successful libraries.

    Java make code reuse a bit easier than C++, but does so at the cost of reducec execution time efficiency. There proably isn't any way around this, despite the claims that keep being made.

    A still larger amount of flexibility brings us to the arena of Smalltalk/Python/Ruby. And you will notice that the execution time is again slower. Sorry about that. TAANSTAFL.

    But Smalltalk is well know as one of the best examples of code re-use. Ada tried to design for reuse, but Smalltalk built documentation into the environment. So code reuse became common. At a cost. The environment must be present when running the application.

    There are a series of trade-offs here. You get to choose which one you make. You can do worse than the optimum, but you can't do better. Some people have been claiming recently that by designing a virtual machine (interpreter!) small enough to fit in memory, it becomes more efficient than native code. I really doubt this. Really. But there may be some particular machine configurations and ram/cpu speed pairings for which it is true. (You can do as well as optimum, but how does one determine that? Remember that the assembler instructions themselves are microcoded these days, so the native code is, itself, a virtual machine.)

    And I doubt that C# will remain restricted to the MS platform (or MS + BSD). But think of the BSD version as a step towards the Mac. And C# is close to running on Linux (I thought I heard that it compiled itself about a month ago [not to something that would execute, mind, just that it compiled], so give it a year or two).

    Personally, I'd like to see C# and SmallEiffel and Ada added to the gcc. SmallEiffel seems to be aways off, but Ada was rumored to be nearly there (possibly for gcc3.1?) a few months ago. And C# (plus mono) would allow gcc programs to access most things on *.net. Technically, at least. Licenses might make this illegal. (Which licenses should themselves be illegal, fraud seems appropriate here.) Still, as well as the good aspects, that might open Linux user-space up the the new flood of MS viruses that should now be expected. (Mono, it seems to me, should NEVER be run as root. Of course, I don't really understand it, as I haven't read any of the technical documentation and have instead merely subsisted on news reports.)

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  69. ./ misrepresents the article by micromuncher · · Score: 2, Interesting
    Once again the intent of the article is to KNOW YOUR ENEMY. Williamson tries to quash some arrogance on the part of the Java community and reiterates the M$ media machine can win the mindshare of decision makers.

    Riding home on the train last week, I was listening to two "software guys" talk about the issue. The summary, "Wow! Microsoft! .NET! Java is dead." "Do you know any Java?" "Yeah I took a course."

    The guy took one course as a "programmer" and is an instant expert. Microsoft LOVES the instant expert, and books devoted to the programming shaman are dedicated to stroke their egos before the technologies are publically released.

    My point is that its not just the high end decision makers that M$ buys, but also the low end technoweenie.

    (The conversation proceeded to Oracle is dead 'cause its over priced, SQLServer rules the world - at which point I wanted to YELL M$ IS PAGE RECORD LOCKING F**KHEAD - then I realized that saying that I'd likely get the same blank stare as my mother gives me when I talk computer talk.)

    --
    /\/\icro/\/\uncher
  70. Why Swing bites by LadyLucky · · Score: 2
    Java was created by Sun.

    Sun sells big servers.

    Sun wants people to buy more servers.

    You dont run swing on a server.

    --
    dominionrd.blogspot.com - Restaurants on
  71. Re:no-GUI == platform-neutral ? by Pfhreakaz0id · · Score: 2

    ... and that's been my point lately about a Java porting effort we're considering at work... We're moving to (already have many) web-based apps. Ok, fine, argue out development speed, tools or something.... but portability of code to many platforms is simply not a consideration for me at the server level. that's ONE server... big whoop.

  72. A question of maturity... by verbatim · · Score: 2

    With every day that passes, Java grows more and more mature. Developers can learn and use the language in the wild, so to speak, and continually work with it and understand all of it's little... quirks.

    C# is new. It's flashy. It's Java when it first came out. It's also immature and not widely used or even understood. With all the weight Microsoft will flog behind it there is no doubt that it will be a platform du jour for many developers. However, that does not mean it will displace Java.

    For fucks sake, many places are still using COBOL. C didn't dislodge it, neither did Java dislodge C or C++. Sure Java, and eventually C#, is popular, but that doesn't mean that these other languages simply drop from the face of the Earth.

    Too many retards are comming along plugging specific programming languages as the be-all and end-all cure for every programming woe that ever has been or ever will exist. In fact there is benifit from being able to choose languages and systems that cater to certain kinds of tasks.

    I doubt many existing systems will be rewritten simply because Microsoft is thrusting C#. CLR? So, maybe, Perl or C++ or even Java can compile into the .NET bytecode? The question is will it work the same as their original counterpart? Will it work flawlessly with so-called "legacy" code.

    I think a better apprasial would be that it will take 5 years for C# and .Net to mature enough to "compete" with Java. Some of those years have already passed, but many more are still to come.

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  73. Re:ummm... heard this before... by pyrrho · · Score: 2

    "he problem with C++ was that exactly zero of code was reused"

    I can only imagine what you mean by this. As a C++ programmer I can tell you that I reuse a great deal of code. And further, the "industry" is providing libraries for all the functionality that the Java API gives... with more options and better performance.

    I do like Java for servlets, I must say.

    --

    -pyrrho

  74. Re:Eight years? by ArsonSmith · · Score: 2

    resume time?

    --
    Paying taxes to buy civilization is like paying a hooker to buy love.
  75. Coders will abandon BOTH Java and C# by revbob · · Score: 2
    ...and start coding in Ada.


    Ada was just ahead of its time.

  76. Re:Where are the apps by einer · · Score: 2

    You did not answer my question. Portability is not functionality, it's an attribute. Were you to point out something that is possible in C and not in Java, you would have answered my question. As an aside, Java is portable. Why you can't set it up on your FreeBSD box?

    The purpose of installing the JDK is to get all of the API's, such as the jdbc stuff (which is easier to program with, and less error prone than using the C db api).

    C is the standard, and if some application does not have a C port, I'm not going to use it under any circumstances.

    Please explain why. I don't see the logic in this.

    As for C being the standard, it didn't used to be, which speaks to your original point. Why mess with success? People were programming in Assembler for quite some time before C came along and some people still are. The reason C came into being was to simplify the lower level details of programming, and let the programmer think on a higher level of abstraction. This is what Java does. C still has its place and Java isn't a replacement, but Java is a better tool for certain jobs. For example, if I wanted to write a servlet that did a complex search on a database (vendor independant, so long as I have their jdbc driver) of a known schema and dump the output to XML for choice of format to display would I choose to use C? No.

    Your fighting the tides here. New programming languages will be developed out of need. You may be able to do everything in C, but that doesn't mean you should.

  77. Packaging... by alder · · Score: 2, Interesting

    That is a matter of preference. You can easily provide very similar appearance for Java applications as well. Try to check Eclipse (the first example that came to mind, possibly because I use it every day :) - it uses a "launcher" which is seen by people as eclipse.exe file. The rest are plug-ins, which are .jars, though as an IDE user you couldn't care less about it. In other words, this Java application has the same appearance, as any .NET application. And though Java's method to achieve this is different from .NET's, "people percieving a platform" will not notice anything.

  78. Re:Why doesn't Java have Functions? by Ian+Bicking · · Score: 2

    Smalltalk's problem is that it is too insular. It exists in a runtime environment that is pure and perfect, but does not play well with others. Maybe in these later years this would not be such an issue, because Smalltalk can talk across the wire as good as anyone, but if it's been good at talking to people far away for some time, it has been on bad terms with its neighbor from the beginning.

  79. But not with Sun at the helm by MtViewGuy · · Score: 2

    I think Java can be extremely successful, but the problem is that Sun's development pace for Java has kind of rubbed Hewlett-Packard and IBM the wrong way at times.

    What Java really needs is the backing of a company that has made Java do real useful applications and provides a very good Java Development Kit. That company is called IBM.

    Why do you think IBM's Java tools are so well-liked in the developer community?

  80. Re:Where are the apps by Sir_Real · · Score: 2

    Java sets up on FreeBSD without a hitch... All Java functionality is NOT available in C. C is only the standard on *NIX and clones. Being able to move a class file from one OS to another and not need to recompile is wonderful. Do that in C.

  81. Java _is_ dead by Bugmaster · · Score: 2, Insightful
    It doesn't really matter if Java or C# is better. In most people's minds, Microsoft is synonymous with computers. MS makes computers work; without MS, there would be no civilization as we know it. When people are told about Linux, for example, they ask, "Which version is that ? Was that before or after Windows 95 ?".

    So, when MS announces that Java is no longer supported on their OS, the message people hear is, "Java doesn't work". This includes ordinary users and clueless CTOs; the techies know better, but no one listens to them.

    In addition, "everyone knows" that .NET is built into every computer in the world, for free (well, there is that MS tax, but you need to pay it anyway, right ?). If you were developing a new server-side application from scratch right now, what would you use - a framework which is already built into every computer on the planet, or some dubious 3rd-party software that you have to download and learn ? Plus, it might be un-american to boot, who knows... better stay away from it.

    You might think that the level of ignorance I described above is excessive, but I do not believe it is. As a comparison, consider this: recently, I advised my friend (who doesn't have much cash) to install Linux on his old PC, and he said, "No, that's too expensive". Can you expect people who ask questions like this to understand what a "Java library" is ?

    In conclusion, I give Java about 3 more years (I think 5 years is optimistic). It's sad, but .NET is the future. MS simply has better marketing.

    --
    >|<*:=
  82. Books are a trendy language metric by thogard · · Score: 2

    If you go to your local big bookstore and count the books about a language and do that every few months you will find they are a great metric on langauges (and other computer buzword trends).

    If you go count the books on C, Fortran or assember you will find a small number that is about the same size as it was last month as well as 15 years ago. Others like C++, Java, C# as well as Ada, Pascal, Modula2 before them all went through stages from none, to lots and then back to very low numbers. At this point Java is going down and C# is on the rise. C++ took a huge hit when Java came onto the block.

  83. Sun is screwing up by j09824 · · Score: 2, Insightful
    Sun has promised standardization for Java, efficient support for numerical computations, fast startup and reduced memory footprint, availability of multiple independent implementations, and a whole lot of other things.

    What has Sun delivered? Well, they have been doing a good job on the JIT. But beyond that, the Java APIs have become huge, there is no new support for numerical computations, the genericity support is flaky, VM sharing and fast startup are missing, and Sun is suing or picking a fight with whoever shows any initiative in the Java space.

    C# isn't a lot better than Java, although it has a few important additional features. But, amazingly, Microsoft has been doing a much better job opening up C# in the form of ECMA C# than Sun. Maybe, in the long run, we may just have to thank Sun for providing the competition that caused Sun to open up.

  84. Java's strength is nowhere near a Windows desktop by pbranes · · Score: 2, Informative

    Java does not belong anywhere near a Windows desktop when actually running programs (not just coding/testing). Java belongs on a server. plain and simple. On the desktop, Java is slow - no, Java is *really* slow. Other programming languages (i.e. VB) are slow, but they provide an easy way for people to make simple applications that can look professional. Java does not provide this. Therefore Java's slightly higher knowledge requirements and slowness make it unsuitable for the desktop. However, Java's strength is running on a server in a JSP environment. This is because Java has so many tools built in for networking (no more C style sockets, yay!!) that a (relatively) few lines of code can produce a very powerful Internet program that is fairly safe to run. I believe it is only hurting Java's image to even pretend that it can function as an application base for desktop applications. Sun should drop all of that - including Swing - and focus on enabling network technologies such as database interfaces and web services where the end user never even knows that they are being fed by Java.

  85. Re:Or not by TheAJofOZ · · Score: 2
    Ok. You omitted the following (as Java people usually do)
    ADD:
    1) A pain: install Java
    2) A pain: install CLASSPATH and packets.
    3) A LONG pain - compile.

    I don't know where you've been but for quite some time Java has worked out the CLASSPATH by itself. If you have a sane development environment (read: you arrange your source files according to their packages) you don't need to fiddle with the CLASSPATH at all.

    Also, compilation is a good thing, it may take time but it means that the computer is checking your code for stupid mistakes (misspelled function call, wrong paramaters, missing bracket, etc, etc). Without that check you are far more likely to leave a stupid error in your code. It takes an incredibly long time (and usually is not feasible) to test every line of code in a program in every possible situation, so anything you can do to reduce the chance of error is a good thing.

    Oh and you need to install any program before you can use it, TCL, Visual Studio, Java, gcc etc etc, they all need to be installed.

    That's not to say that TCL is a bad language (I personally haven't used it) or that Java is the be all and end all, but the things you highlight are not the faults with Java.

  86. Silly on the face of it. by the+eric+conspiracy · · Score: 2

    Languages are nearly immortal.

    We still have wide use of languages like C, FORTRAN, RPG, APL and Cobol, and Java has a very large, and rapidly growing code base, surely larger than FORTRAN, APL and RPG, and maybe even as large as C or Cobol. With the near universal use of Java as an instructional language, and the reams of Java code being produced every day for commercial use it is very hard to imagine the day when Java will be 'dead'.

    To suggest that C# will replace Java is at the very best a great extrapolation.

    Remember that Microsoft is first a great marketing engine, and most of it's initiatives do not live up to the hype. Like Hailstorm.

  87. Re:Why doesn't Java have Functions? by big_hairy_mama · · Score: 2

    why the heck does it *not* have regular functions? It wouldn't be that hard to add global functions.

    If you really want to write ugly code, then that's what static methods are for.

    Global methods in the C sense get really bad because they only have one namespace. Static methods have a containing class and a package name, so nothing gets polluted. Maybe some people just don't like typing the extra class name every time they call System.out.println() (not really a static method, but you get the idea), in which case Java probably isn't for you anyway, what with the packages and descriptive English class names.

  88. both win, in different markets by GCP · · Score: 2

    Everything I see of .Net and C# shows it to be better than Java -- but you only get the benefits if you are on Windows.

    Outside Windows, C# and .Net are not even in the game, and may never be.

    My prediction, and it's not much of a stretch, is that .Net will own Windows and Java will own the rest. Java will nearly vanish on Windows, since .Net can just send messages to Java apps.

    .Net will probably be somewhat better than Java, which will influence some people to use Windows servers (everyone will keep using Windows clients), but many others can't or won't use Windows. Those folks will put a lot of pressure on Java to keep up, probably mostly successfully.

    Of course, if we get really good non-MS .Net implementations on non-Windows platforms, everything I just said will change. That's the wild card in all of this, and there are some scenarios where really good non-Windows .Net implementations could really help MS, like MS-Office on the Mac. This should be interesting.

    I'm happy for the competition.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  89. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  90. Sun's contributions by ragnar · · Score: 2

    They haven't done anything to help open source or any communities.

    On the contrary, Sun has contributed source code to the Apache group (xml parsers, tomcat and batik). Lets not forget OpenOffice.org, where you can get the source code to StarOffice. Sun has also made various protocols open, like NFS and NIS (for good or bad). Has Sun satisfied everybody all the time? Nope, but I would affirm that they have helped the open source community.

    Regarding the article and its assertions, I don't give it much weight. As long as Java programs accomplish the tasks at hand the language is viable. I'm sure some Java programmers will jump ship for C# and others will add C# to their repetoir, but that hardly counts for killing the language.

    --
    -- Solaris Central - http://w
  91. Re:Or not by EllisDees · · Score: 2

    1) Yeah, it's a horrid pain to doubleclick that icon.

    2) Classpath done in step 1. If by packets, you mean packages, you have to copy any program onto the machine on which you want it to run regardless of the language.

    3) Java compiles at about the same speed as C++.

    --
    -- Give me ambiguity or give me something else!
  92. A little off-topic: Re:Java _is_ dead by fanatic · · Score: 2

    It's sad, but .NET is the future. MS simply has better marketing.

    I think that some people, particularly some business people who understand the issues a little better (e.g. the upgrade treadmill, the reliability issues, the 'who owns your data' issues (though that last may be stretching it) are biginning to get it, even without being geeks. But numerically, you may be right. Even folks where I work who understand where I'm coming from and let me dabble in Linux still advise me to concentrate on niche areas, rather than going for everything, which they classify as "quixotic".

    --
    "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
  93. the fact remains by Ender+Ryan · · Score: 2
    All this talk about open standards etc. is really becoming nauseating, because while all that sounds nice on paper, the sad fact remains that you simply cannot, I repeat CANNOT, trust Microsoft.

    It simply does not make good business sense to put any trust in MS, as history shows time and time again.

    Those who do not understand history are doomed to repeat it...

    I respect what the mono team is doing, they've done some really great work, but I think it's going to end up being a waste of time, I think it will come back and bite them in the ass.

    But, I could be wrong. I _hope_ I'm wrong! If the CLR does become an unencumbered industry standard, well, that could only be good.

    Personally, I never liked Java. I didn't mind the language, but every implementation I've seen has been quite dissapointing. And then... Swing?

    The best thing that could happen is that the CLR turns out to be great, people freely use it, Sun loostens up, and Java switches to the CLR...

    But these are my predictions...
    1. Microsoft throws legal weight around and kills off more competition, completely destroys all competing implementations, stops supporting FreeBSD.
    2. Sun loses lots of Java developers due to industry hype(aka, MS Marketing/FUD). Sun, being a stupid corp, becomes more controlling of Java and helps to kill off more developers.
    3. Mono ends up being a complete waste of time. Miguel de Lcaza gets a job at Microsoft ;-)
    4. Linux remains a niche OS. ESR and RMS keep talking too much.
    5. My Linux servers keep running without skipping a beat.
    6. Wine continues to improve allowing Linux users to continue getting that much needed gaming fix.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  94. Re:no-GUI == platform-neutral ? by Tony-A · · Score: 3, Insightful

    Portability of code to many platforms is a major consideration at the server level, particularly if you can only have one server at a time. If it runs right on one standards-conforming server, it should also run right on another standards-conforming server, with no nasty surprises. The realistic choices are COBOL, PL/I, ADA, and Java provided Sun can keep everybody from screwing up the language. That's of course assuming that the stuff on the server is actually important.

  95. Sounds like a big deal to me... by artemis67 · · Score: 3, Insightful

    I don't recall MS saying much one way or the other except saying you could download a JVM from their site. The Java community themselves planted this seed of doubt.

    Yeah, but the friggen Java download is 6 MB's! (So I've heard.) That's nothing for corporate users on broadband connections, but when you're trying to appeal to Joe Consumer surfing the web with his modem at home, with an attention span of maybe 20 seconds, he's not going to be patient enough to sit through a 30 minute download just so he can view your site. More than likely, he's gonna keep on surfing.

    If broadband had 80% saturation with consumers, then maybe it wouldn't be a big deal. But I'd bet large amounts of money that this is Micros~1's plan, to push Java into irrelevancy by making it difficult to use. They couldn't own it via their embrace and extend strategy, so they're attacking it by slieghting it.

  96. 8 years?! by autopr0n · · Score: 2

    When I first started programming in Java eight years ago, the industry was far different than today.

    Oh my god. That was eight years ago!? Damn I feel old all of a sudden.

    --
    autopr0n is like, down and stuff.
  97. And... by autopr0n · · Score: 2

    Lets not forget ImageIO, XML stuff, Swing (slow, but cool), and Java2d.

    --
    autopr0n is like, down and stuff.
  98. My thoughts by jedir0x · · Score: 2, Interesting

    Well, i am on a win2k pro workstation right now. I have a highly modified distribution of RedHat 7.2 with latest stable kernel from kernel.org. I'm a Java developer (among other languages). I installed visual studio .NET the other day... and learned the language (syntax and some libraries) in a matter of hours... it's ALMOST exactly like Java, syntax wise. I thought it was cool beacuse the GUI type stuff was faster than Java's Swing/AWT stuff... but then realized, how often am i making GUI stuff in java?... never. o well. As i browsed through the API, i started noticing stuff for accessing the windows registry... i saw stuff for loading DLL's... I saw a multitude of other things that were specific to windows. Now i ask you, how the hell will they port .NET to *n?x (that's unix) based operating systems if a good portion (about 20%) of thier APIs are specific to windows? How is that cross compatible? And what god awful software am i going to have to install on my Linux box to make it ".NET compatible". Are they going to force me to install a "registry emulator"? I hardly see C# taking over java. For one thing, I can't imagine any UNIX admin allowing microsoft software to run on his servers... eh... who cares... I'll still write java code when i want to write quick and easy OO code. Oh yeah, and my bigest concern about the whole .NET thing is this: Everything compiled under .NET (C/C++, C#, VB, etc) is ran through the CLR, and will run the same speed, no matter what language it was writen in. I've heard you can compile "nativley" but you loose a huge percentage of the .NET APIs. With that said, why would i ever use C++.NET? If i'm gunna spend time writing C++ code i want it to run natively!!!!

    --


    I'm not drunk, I'm just in touch with pi.
  99. Nothing can explain Mono by alext · · Score: 2

    that explains why go-mono.net is going gangbusters to develop an implementation on Linux

    Pointing to others who share your beliefs does not advance your argument. Mono has been extensively criticized on /. and I don't believe that Miguel de Icaza has ever responded to the substantial points, viz.

    1) Java and the JVM are better established and equivalent in all major aspects to C# and the CLR, therefore a Linux platform would be better starting with that.

    2) Since of the ~1200 classes in Dotnet, only about 150 are standardized, the chances of any substantial application actually working outside Windows are zero.

  100. SWT works, so does Swing by alext · · Score: 2

    Having used JBuilder 4/5 (Swing) and Eclipse (SWT) on fairly ordinary Windows machines I think they're pretty even performance-wise, and visually. However on Linux JBuilder has the edge as the Motif version of SWT is a bit ungainly. Would be nice if there was a KDE version...

    Anyway, I'm sure IBM didn't invent SWT purely for technical reasons.

  101. Re:Or not by alext · · Score: 2

    A full-featured IDE that lets you collapse arbitrary sections of code?

    How quaint! Wasn't that in some early Smalltalk system? I thought people these days used Outline views, as in Eclipse and JBuilder.

  102. No FUD please! by j3110 · · Score: 2

    As many times as people post the numbers all over the net, you would think people would get the idea that java isn't slow. I'm not going to bother adding another link to some benchmark showing the progression of java from 24X slower than C to ~1.5x C and continuing to improve. In fact, in some places, it ran faster than C (compared to Intel's compiler).

    They wouldn't have to worry about installing and configuring Java if MS didn't hate it so much. Do you really think that a linux user or a mac user is going to be setting up a .NET platform anytime in the foreseeable future? Even if they did, Mac and Solaris are not going to come with the ability to run C# programs out of the box. If you wrote your code in C#, you aren't going to be running it on anything but windows for quite some time. Right now, you can have Java up and running on you system without any problem. I just point people to java.sun.com, and even the least intelligent seam to get it working. Anyone that can download and install winzip, can do the same with java. It's not a big requirement.

    Sun recently worked out their differences with the Apache people. Any non-profit organization can now be certified for free as far as I understand. Go check out jakarta.apache.org, it should still be there.

    Java is not getting more proprietary! There are several compliant Open Source JSP servers(Tomcat and jetty to name a couple) and at least two open source J2EE platforms (JBoss and Enhydra).

    On the other hand you have the FUD claims of MS. They took the Java PetStore tutorial, and used it for a benchmark. Just to be fair, Larry Ellison is probably guilty for doing that to begin with, but no one took his "Oracle Challenge" seriously because it was just silly. Just so you know, Oracle put together a performance enhanced version of the PetStore, and beat MS again, just proving once and for all, it's how you program, not what language you use.

    I had a similar opinion to your's a few months back, but after taking a look and testing it myself, I was quite suprised. Java didn't become popular by being slow, difficult, or a licencing hassle. I don't know whether I believed it because I actually thought it was true, or because I was too D***ed lazy to play with it. You'll find it quite interesting if you bother to take a look at what all you can do with it and how fast it really is.

    The standard API comes with as much functionality as Perl with every CPAN module available :) I read another post on here that claimed PERL would be the next thing, but I just don't see that happening. Do you really think that Perl is going to be user-friendly to the end user? You can get just about any package you need from CPAN, but you have to install it, and face it, CPAN is not as easy as just grunting as you download the 20M or so that is the JRE.

    My point is, Sun is very willing to work with the Open Source community now, much more than MS, and Java is not the beast it used to be. Java also has a large chunk of the mindshare, and MS is not going to steal one single developer from the Java platform until they know that their software can be used by all their clients. If you develop an enterprise application, you will be running it on windows, and you will be paying constant upgrade fees for more users, newer versions of windows, SQL Server, and the .NET Developer Studio. On the Java side of the world, you can get along just fine with JBoss, Linux, Eclipse, and NetBeans/Forte, all for free. I guarantee you when you add up MS licensing fees, !/$ (read: bang per buck) award is going to go to Java every time. That's how they measure it in the Java world... go check out ECPerf over at theserverside.com.

    --
    Karma Clown
    1. Re:No FUD please! by j3110 · · Score: 2

      That's what they said about assembler. Assembler was twice as fast as C and still is 10% faster at least. Don't think that just because C is fast that C# is. What does C#'s VM get you? I've yet to see what C# has over C++ except an entire new way to do things that won't really be portable.

      Exactly what platform are you running Java on? I really don't think there is a platform that doesn't support some form of Java.

      WTF are you talking about expensive JIT? JRockit(jrockit.com) is free for both windows and linux... go get your copy today! Don't complain about things before you read the news :) It's free as in beer as of a few weeks ago. Other than that, there is the IBM JRE that is blazing fast for linux (leads all the specs and can be dld for free from their site) as well as IBM's open source jikes compiler that is the best I've really seen out there. Just go take a look at things. If 10% speed bothers you, get out your assembler book :) You're not going to find a better combination of cross-platform support and performance than Java, and it gets faster every day.

      I just really don't like it when people who haven't used Java in the past year knock it. I had the same mentallity, because I hadn't used java since about 5 years ago on my 486 with 16 megs of ram. I couldn't run emacs then, but I do now. Java isn't slow, take the oracle challenge :) hahah

      --
      Karma Clown
    2. Re:No FUD please! by j3110 · · Score: 2

      Really??? Wouldn't suprise me except that there is a VB.Net which completely alters the VB language to add OOP principals. MS is just wierd sometimes.

      --
      Karma Clown
  103. Re:Why doesn't Java have Functions? by joto · · Score: 2
    Aren't C's functions "regional" in scope? (My C is rusty) IOW, you have to explicitly export them. Most procedural languages are like this more or less. A local function/routine "overrides" a global one.

    Actually, it's the other way around. They can be "static", meaning they are only accesible from the same source-file, but you have to explicitly make them "static". "extern" is the default. And that is unfortunately the only separatiorn you get, there are no namespaces, classes, modules, packages, nested functions, or any other means to keep things out of the global namespace, except for the concept of a source file with static functions.

    But on to java... Since java has the concept of packages, it wouldn't be that bad to allow functions lying inside a package. But it's not really such a nuisance to prefix with a class-name either. The difference between Quaternion.add(a,b) (Java), and quaternion_add(a,b) (C) isn't really that bad. On the other hand, with overloading on arguments, you could simply end up with add(a, b) in Java (if it supported functions), and a+b in C++ (since you can overload operators as well).

    I guess some people like it a bit more explicit. Personally, I'm a bit schizophrenic about the issue. I like brevity, of course, but it can also make it really hard to understand other people's code (and in the case of C++, even my own). I think this last objection could be removed with the help of better tools, but currently I know of no such thing as a compile-time debugger for C++ templates, or a slower-but-smarter typechecker for languages using Hindley-Milner type-systems (ML) that can tell me what's really going on, or at least give me somewhat reasonable error-messages when something goes wrong, so I can screw things up on purpose to find out what's really happening.

    I don't know what to do about "BufferedImageMediaStreamWatcherHandlerFactory", though. If it's really an abstract factory for creating handlers to watchers to buffered mediastreams of images, then it's really a well-chosen name, but I don't think that's a pretty common abstraction that would end up all over your code (and if it was, I'm sure you would come up with a shorter name). It's just like "assistant for the the chief packaging master of buillon dice" (or translated into norwegian: overbuljongterningpakkemesterassistent, (a well known song by Øystein Sunde))), is actually a very good descriptive job-title, but if you were working with him a lot, you would just end up calling him the packaging assistant.

  104. It's plenty early enough to form first impressions by Anonymous+Brave+Guy · · Score: 2
    It's way too early to evaluate how the market will treat C#.

    I disagree. Microsoft have been trumpetting .NET and C#, and had them in Perpetual Beta Mode(TM) for nearly two years. Many of us (I work in a Microsoft Partner software house, for example) have taken a look at C# in that time, quite a few investing significant time in researching what it can and can't do, where its strengths and weaknesses lie, etc. And now, as the floodgates open with the full release of Visual Studio .NET, you know what? Most of us aren't shifting.

    There is simply no compelling commercial advantage in moving to C# for most commerical development. There are exceptions, and I'm sure they'll go with C# given time, but they make up a small minority of the whole software development industry. After all, we've been writing every type of application there has been for years without Web Services, etc. Why would anyone think that all these different fields would suddenly benefit from a tool that, frankly, is totally irrelevant to them?

    In summary, it's plenty early enough to form first impressions, and first impressions count.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  105. Most people *don't* know -- that's the problem by Anonymous+Brave+Guy · · Score: 2
    Look, most people know perfectly well how to play in the freeway. It still doesn't make sense to do it.

    But that's just not true. The Java community as a whole displays a staggering ignorance of many basic principles common to other programming languages and computer science in general. I've heard more crappy arguments from Java-ites trying to justify the lack of some language feature than from advocates of all the other languages I know put together. (Sadly, I am not exaggerating.)

    Free functions, multiple inheritance, operator overloading and templates are my favourite examples. There are perfectly sensible reasons to include all of these features in some languages, and times when using them is much easier than the alternatives. However, I don't have a problem with a language that, for some sensible reason, chooses not to include them. I do have a problem with people who discount them on the basis of lousy arguments and lack of thought. My favourite utterly naive statements are:

    • Pure OO is better than procedural code, so we don't need free functions.
    • Multiple inheritance always causes tangled code, so we're better off without it.
    • Operator overloading is just syntactic sugar.
    • Java 1.5 will have template support just like C++.

    Anyone reading who actually agrees with any of these statements needs to do some more research before they start having a go at the features concerned.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  106. The numbers game by Anonymous+Brave+Guy · · Score: 2

    Be careful with these numbers, though. It's very hard to estimate how may people actually use or actually know a particular programming language. Number of downloads is certainly not the way to do it; I am personally responsible for three of those downloads, since I like to keep up to speed and have reinstalled a couple of times recently, but I am not currently programming in Java.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  107. C#.NET is the next-generation replacement for C++/MFC for Windows application development.

    I very much doubt that. There are probably millions of programmers in the world who have some familiarity with that combination, and hundreds of thousands who use it every day. There are certainly milions of man-years invested in existing code using that combination. Why on earth would companies who've made that investment just throw it away and switch?

    What is it that makes you think we're all going to give up the C++ and Java we use at present and switch the C#? A few years ago, people claimed Java was the next-generation language in the C/C++ family. Now, C++ is still going strong, Java still hasn't caught up in popularity by any metric I know, and people are questioning how long Java will last. (Meanwhile, work is starting on the next C++ standard, driven by an enthusiastic and informed community of experienced developers.) So, now, C# evangelists (mostly hired by or sucking up to MS, it should be noted) are claiming that it, too, is the next generation language. Why is this time going to be different? Why should I believe that they are going to kill Java or C++? Where is even the slightest evidence for this, beyond MS marketting hype?

    No, I think the world will continue to use Java, C++, VB and many other successful languages for a long time yet. And why shouldn't they?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  108. Idiot alert! by mcrbids · · Score: 2
    They haven't done anything to help open source or any communities.

    Well, lessee... How about Open office? or (looking back) their contributions of NIS/NFS? (originally called YP or Yellow Pages by Sun and distributed today with most distros)

    Oh, and don't forget JXTA , which provides very .NET-like P2P connectivity between any two devices.

    Is Sun out to help Open Source? Not really, they, like ANYBODY TRYING TO MAKE A LIVING, are out to promote themselves, but at the very least, they don't seem to have any problem co-existing with OSS initiatives, having founded quite a few.

    Oh, and openoffice.org, which consumes massive bandwidth (Open Office is 50+ MB per download) is primarily funded by Sun...

    Love 'em or hate 'em, but don't spread FUD...

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  109. Re:Why doesn't Java have Functions? by joto · · Score: 2
    Actually, I see now that I was wrong. It's about a year or so since last time I used java, and that java doesn't have a typedef I had forgotten a long time ago. So basically, if BullionDiceMasterPackagingAssistant is a class-name (which it should be, not a variable, as there can of course be zero or many BullionDiceMasterPackaginAssistant's), and Mike just happens to be one of them. So if your code mainly revolved around organizing BullionDiceMasterPackagingAssistant's, then you really had to write BullionDiceMasterPackagingAssistant a lot, as it would be likely to pop up as arguments and return-values in every method dealing with BullionDiceMasterPackagingAssistant's.

    So what would really be the correct choice, should you call it megacorp.employee.food_division.buillon.packaging. MasterAssistant, and just import that namespace when needed? Personally, I find that even more offensive, because you would then rely on package prefixes to differentiate different kind of employes. The inability of java to introduce a local shortcut for an extraordinarily long name (and long names is sometimes needed, just as shortcuts to them are), is definitely at fault.

    I give up. Ok, let's admit it, java sucks in quite a few places, and this is definitely one of them.

  110. Re:Both Java and C# will dye. Long live to XML! by Skapare · · Score: 2

    What language is XML implemented in?

    --
    now we need to go OSS in diesel cars
  111. Re:Or not by TheAJofOZ · · Score: 2
    Either you're full of it and have never worked on a large Java project, or our vendor (one of the biggest and best-known in the industry) writes utterly crap code. The sad thing is that I'd estimate the odds at about 20:80...

    I'd make the odds out to be 0:100. If no classpath is specified, Java assumes the current directory to be the first place to look and then in the system standard places (which is where the java standard API classes will be found). So if you call the java application you want to run from the current directory and you arranged your classes according to packages (as the compiler does for you), it will just work.

    The other note here is that if you package your java app in a jar file (which makes it easier to distribute, take up less space etc) you can specify the main class to use and then all you need to do is:
    java -jar myJar.jar
    and your program will run. On OS X and probably a few other systems you can just double click the jar file and it will run.

    It is worth considering that on server side projects like what your company is running there are often good reasons to put class files, jars and wars in "strange" places and then use the classpath to point to them as this can make things easier to manage on a server that has numerous apps being delivered by one server instance. Even so, it's no more difficult than specifying where gcc can find it's libraries etc, etc.

  112. Re:no-GUI == platform-neutral ? by Tony-A · · Score: 2

    In practice, few companies switch servers anyhow unless something drastic happens to the vendor.
    Over a thirty year time span?
    There is a lot of code that has not been changed in the last 30 years, and a lot more code that will not be changed in the next 30 years. The code is long, tedious, dull, boring, etc, none of which is helped by a better language.
    Tweak-free isn't so much a problem as implicit and insidious assumptions about implementation details. Both work, but they don't work the same way.
    Can you imagine a bunch of COBOL programmers thinking Lisp?
    Can you deterministically determine rounding errors in Perl or Python?

  113. Re:Why doesn't Java have Functions? by joto · · Score: 2

    True, it was intended as a hypothetical example.