Slashdot Mirror


C# From a Java Developer's Perspective

Microsoft's C# has raised eyebrows, interest and debate since its official announcement last year. The prolific Carnage4Life (Dare Obasanjo) has completed a detailed comparison of C# and Java, outlining the things that are identical, similar, nearly the same, or completely different between the two languages. If you're considering learning or applying either one, you might benefit by reading this paper first. There are some other excellent comparisons to be found linked from the Open Directory Project as well. Update: 11/20 03:35 GMT by T : Note: here's a mirror; interested readers who mirror the mirror get good seats in heaven.

507 comments

  1. well written by Anonymous Coward · · Score: 0

    well written... i wish my college would give more courses in cutting edge languages - although, we do have palm development classes...

    1. Re:well written by Anonymous Coward · · Score: 0

      If your goal for your education is to learn the commercial language of the month, then perhaps a trade school might be more appropriate?

      Of course, most 4 year universities in this country are getting pretty close to trade schools these days...

  2. Resist the Urge! by libertynews · · Score: 0, Redundant

    C# is just another attempt by Microsoft to coopt the programming world. Stick with 'C', C++, Perl, Python, etc. Once C3 and .NET become entrenched you will be sorry!

    --
    Remember Lexington Green!
    1. Re:Resist the Urge! by Anonymous Coward · · Score: 0

      First read the article please. Thank you!

    2. Re:Resist the Urge! by czardonic · · Score: 1

      C# is just another attempt by Microsoft to coopt the programming world.

      This is about the relative merits of C# vs. Java. Better the programming world should be coopted by Sun?

      --
      Takahashi Rumiko made beats! DON, taku, DON, taku. . .
    3. Re:Resist the Urge! by Locutus · · Score: 2

      yeah, let's give Sun a chance since we already know how bad Microsoft is. I'm up for a change of pace, you?

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    4. Re:Resist the Urge! by czardonic · · Score: 1

      Nah. Any company that claims to have "put the dot in dot-com" is clearly just as self-aggrandizing. They are just less succesful at it. Why kow-tow to a second-rate megalomaniac?

      --
      Takahashi Rumiko made beats! DON, taku, DON, taku. . .
    5. Re:Resist the Urge! by Anonymous Coward · · Score: 0

      "Better the programming world should be coopted by Sun?"

      probably.

    6. Re:Resist the Urge! by Doomdark · · Score: 1
      Not that there aren't (at least potential) problems with respect to Sun's ownership of Java, I think that by now Java is "bigger than Sun", and can not be held captive by any single player. IBM has lots at stake (and has produced excellent JVM, compiler and tons of free source too), there are Free JVM and compiler alternatives and so on. Best Java-related products don't necessarily come from Sun; there is real competition.


      Same could of course happen to C#, but it'd take years, just like it's taken with Java. And whereas Sun didn't necessarily know what really to do with the new language (it was re-purposed a few times... and perhaps met most success as a server-side web application dev language), Microsoft seems to have somewhat clearer goal (it is after all easier to do it 2nd time... :-)). And... well, um... MS track record with respect to competition isn't too promising.

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    7. Re:Resist the Urge! by Anonymous Coward · · Score: 0
      Why kow-tow to a second-rate megalomaniac?

      What does Larry Ellison have to do with C# or java?

    8. Re:Resist the Urge! by libertynews · · Score: 1

      I don't care what the relative merits are. Everything Microsoft does has the express purpose of generating more revenue for them. I don't have a problem with that. Except that they do it at the expense of openness and compatibility. Just look at the recent problems with people converting their websites to IE only -- Not that Opera or Netscape can't display the site, but that they only want Microsoft products to be used.

      This whole C#, .NET bruhaha is a dangerous step toward giving up more control of your computer. Hell, put them together with Windows XP and you may as well have Bill sitting at your keyboard.

      --
      Remember Lexington Green!
    9. Re:Resist the Urge! by nick+slashdot · · Score: 1

      I hate M$ as much as the next guy, but this is not about them - its about Java. Java is a failure, perhaps the biggest and loudest failure this industry has ever seen. Java does not deliver. It sucks. And if I hear any more of that "platform independent" sheise, I'll remind everyone that VMs are platform dependent.

    10. Re:Resist the Urge! by jeremyp · · Score: 1

      Maybe he did. In his list of alternatives there was no mention of Java.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  3. Slashdotted in a new york second? by Anonymous Coward · · Score: 0

    Low and behold... another has fallen...

  4. interest? by Anonymous Coward · · Score: 0

    What interest? irc.undernet.org number of users in C++ 100+, number of users in Java 100+, number of users in C# 1 (me) and 1 op. As of 3:30 EST.

    1. Re:interest? by Anonymous Coward · · Score: 0

      The C# programmers are busy coding for real companies, not talking about pr0n on IRC.

    2. Re:interest? by aonaran · · Score: 1

      I thought it was that C# programmers don't know what IRC is.. "so it's kinda like MSN?"

  5. Some more information by nll8802 · · Score: 3, Informative

    There is a good, clean quick overview of C# here. The also do some comparison of C# to Java.

    1. Re:Some more information by SanLouBlues · · Score: 3, Interesting

      This comparison is decent, but makes a few uninformed comments.

      This is typical code you might write in Java or C++:

      foo.setSize (getSize () + 1);
      label.getFont().setBold (true);

      The same code you would write like this in C#:

      foo.size++;
      label.font.bold = true;

      The C# code is immediately more readable by those who are using foo and label.

      True, but this easy method can be done in Java with public member variables, it's just discouraged.

      Declaration:

      public enum Direction {North, East, West, South};

      Usage:

      Direction wall = Direction.North;

      It's a nice construct, so perhaps the question is not why did C# decide to have them, but rather, why did Java choose to omit them? In Java, you would have to go:

      Declaration:

      public class Direction {
      public final static int NORTH = 1;
      public final static int EAST = 2;
      public final static int WEST = 3;
      public final static int SOUTH = 4;
      }

      Usage:

      int wall = Direction.NORTH;

      The java method will compile/run a tad faster, due to the lack of an entirely new type.


      There may be more . . .

    2. Re:Some more information by jeffy124 · · Score: 2, Insightful

      Declaration:

      public class Direction {
      public final static int NORTH = 1;
      public final static int EAST = 2;
      public final static int WEST = 3;
      public final static int SOUTH = 4;
      }

      Usage:

      int wall = Direction.NORTH;

      The java method will compile/run a tad faster, due to the lack of an entirely new type.


      That's because javac will translate the Direction.NORTH into a static constant 1 during compilation. The only problem that causes is it means you have to recompile everything that uses Direction's constants if the enumeration changes.

      I dont know how C# handles it's enum construct - I've never used it (C# that is).

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    3. Re:Some more information by Furry+Ice · · Score: 1
      Java troll alert! You're trying to tell me that Java's lack of enumerations is a good thing? That's silly. C's lack of classes also makes it faster, but is this really a good thing?

      Also, I believe with C# the foo.size++ above actually works with getters and setters, not just public member variables. It's a shortened syntax which does improve readability, but doesn't do a whole lot for understanding, IMHO.

    4. Re:Some more information by tc · · Score: 1
      You can only do the same thing with Java public member variables if the property being set is just that - a simple variable. C# get and set methods are actual methods - the whole point being that you can encapsulate a property which might be stored in some complex way, or that triggers processing (like logging) when it is changed, but still look syntactically as though it were a simple member variable.


      And you can't seriously be touting Java's lack of enumerated types as an advantage.

    5. Re:Some more information by kill+-9+$$ · · Score: 1
      That's because javac will translate the Direction.NORTH into a static constant 1 during compilation. The only problem that causes is it means you have to recompile everything that uses Direction's constants if the enumeration changes.

      Javac will not do that... Remember java has dynamic binding. You could just recompile the Direction class and rerun your programs and the change would automagically take effect. (which contrasts the last part of your statement)

      However, at runtime compilation the JIT compiler might take advantage of this once it calculates the static initialization blocks of that class and all the classes it inherits from are. Again, since static initialization blocks can be any code you'd like, my guess is this might be a difficult task for optimization and hence a constant is not used.

      Anyway, as I digress...

      --

      -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
    6. Re:Some more information by SanLouBlues · · Score: 1

      Personally I think enumerations are for readability only (that said I've written 20x more Java than C++). I don't believe they offer enough extra readability to change the learning curve that much. I did not say it was an advantage or disadvantage.

      foo.size++ using get/set is pretty nifty tho', but since there's no performance advantage I don't see it as an advantage.

    7. Re:Some more information by UberChuckie · · Score: 1

      According to Joshua Bloch's 'Effective Java' on page 104, enumerations should be written as a 'typesafe enum' pattern.

      So the above code should be written as:

      public class Direction {
      private final String name;

      private Direction(String newName) {
      name = newName;
      }

      public String toString() { return name; }

      public static final Direction NORTH = new Direction("north");
      public static final Direction EAST = new Direction("east");
      public static final Direction WEST = new Direction("west");
      public static final Direction SOUTH = new Direction("south");

      }

      Usage:

      Direction wall = Direction.NORTH;

      Now you are comparing real Java classes (pointers to static classes) rather than integers.

    8. Re:Some more information by Anonymous Coward · · Score: 0

      You don't know what you're talking about:

      1) Java public variables are nothing like ObjectPascal/C# properties. Properties can be computed (like a getter method) or directly accessed (like a public variable). They can even be implemented as a function for writes, and direct access for reads! The user of the class neither knows nor cares how the property was implemented, and is protected from changes in that implementation. This enhances encapsulation and hence makes code reuse easier.

      2) There is no runtime speed hit for enums. They are just constant ints, like your java example. The difference is at compile time, when the compiler enforces typing rules.

    9. Re:Some more information by Steveftoth · · Score: 2, Informative

      Sorry, but javac WILL do that.

      All static final primitives are substituted at compile time. They are treated as compile time constants. See the JLS 13.4.8 for reference.

      (I just love being a language nazi)

    10. Re:Some more information by jjoyce · · Score: 1
      That was going to be my response and you beat me to it! :)

      You're absolutely right.

    11. Re:Some more information by kill+-9+$$ · · Score: 1
      I stand corrected.

      I didn't believe you at first, (because I could have sworn I've done this before, and because I hate language nazi's :-) but upon testing it again, it has proven to be true. I took a class A, defined a constant and a class B which referenced the constant compiled both. I then changed the constant in A to a new value, recompiled just class A, moved all source code away from my class directories (in case Java might attempt to recompile B) and voila, I got the old value back when I ran B.

      Its good to have a language nazi around every now and again, but damn do I hate being wrong.

      --

      -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
    12. Re:Some more information by gibara · · Score: 1

      Your example is more involved than it needs to be because you are doing more than an enum requires.

      C#

      public enum Direction {North, East, West, South};

      Java

      public class Direction {

      private Direction() { }

      public final static Direction NORTH = new Direction();
      public final static Direction SOUTH = new Direction();
      public final static Direction EAST = new Direction();
      public final static Direction WEST = new Direction();

      }

      I think this is the direct translation of the supplied enumeration. C#'s is much nicer to type, but adds more syntax to the language for very little gain. The power in Java's approach is that if, at any later time I wan't to extend the functionality of Direction I can, as demonstrated by your post where each direction is given a human readable name I don't know much about C# but this doesn't look possible for enums.

      --
      Programmers of the world unite, you have nothing to lose but your strings.
    13. Re:Some more information by Anonymous Coward · · Score: 0

      Just as a tidbit, there's an obvious reason for that. Something that is final is guaranteed not to change in descendant classes. Thus, no dynamically loaded class can change its value. To be replace it at compile time, all you have to do is know that it won't depend change over time (ie. it is const), that it won't change over class instances (ie. it is static) and that it won't change over with inheritance (ie. it is final). Remove any of those things and it becomes the VM's repsonsibility. Both IBM and Intel have done work on inlining of methods that are neither static nor final in their research VM's. The hope is that some day people won't have to worry about putting static and final in, except where it adds useful information to the maintainer.

    14. Re:Some more information by MaxVlast · · Score: 1

      " A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard"

      My roommate just put goldfish crackers and chocolate sauce on his chicken breast.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    15. Re:Some more information by spiro_killglance · · Score: 2

      Urg. This won't work, because all the Direction
      classes have the same data, thus thus the equals and hashcode object methods will
      be wrong, which we screw up putting Directions into hashtables.

      Direction.NORTH.equals(Direction.EAST) is true

      Direction.NORTH == Direction.EAST is false

      Direction.NORTH.hashcode() == Direction.EAST.hashcode() is true

    16. Re:Some more information by Anonymous Coward · · Score: 1, Interesting

      foo.size++ using get/set is pretty nifty tho', but since there's no performance advantage I don't see it as an advantage.

      Readability is easily as important as performance, and this improves readability. It's *great*, and it's high time a mainstream language got this feature.

    17. Re:Some more information by vsync64 · · Score: 2, Informative

      Back when I worked at Sun, I had a nasty experience involving final. I performed the same experiment you did, with the same results, and wrote a paper about it. Yes, it does suck.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    18. Re:Some more information by vsync64 · · Score: 2, Informative

      I don't suppose it matters that Common Lisp has had accessors and SYMBOL-MACROLET since, well, forever, does it? *sigh*

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    19. Re:Some more information by Ithil · · Score: 0

      It's not that hard in C++.

      #include

      using std::cout;
      using std::endl;

      class test
      {
      public:

      test() : size_ (0) {}

      // size getters / setters, these are trivial.
      // They can be made more complex if needed,
      // however. This form of overloading is used often
      // in the Standard Library.
      // For more complex functions, call a common
      // private member function which is marked as
      // const, but returns a non-const handle. Since
      // it is const, it can be called by
      // int const& size() const, and the non-const
      // handle will be casted to const. (Such a cast
      // makes good sense, since a non-const handle is a
      // derived type of a const handle, as it provides
      // both read (everything a const provides) and
      // write. Now *that's* a windy comment!
      int const& size() const { return size_; }
      int& size() { return size_; }
      void size (int size) { size_ = size; }

      private:

      int size_;
      };

      int main()
      {
      test t;
      t.size() = 41;
      cout ++t.size() endl;

      return 0;
      }

      I can deal with having to type size() instead of size.

      - Ithil

  6. Non Portable by Raven42rac · · Score: 1, Funny

    I doubt very seriously that any web designer is going to use a non portable language such as C# in which to code. Just an observation.

    Insert sig here.

    --
    I hate sigs.
    1. Re:Non Portable by PylonHead · · Score: 2, Insightful

      An observation that I respect and agree with. But there are already many, many people coding websited in ASP/COM/SqlServer.

      They have already sold their souls, and have nothing to lose.

      --
      # (/.);;
      - : float -> float -> float =
    2. Re:Non Portable by Anonymous Coward · · Score: 0

      Is not becomming associated with buggy applets created by web designers, rather than real programmers, good or bad for C#?

    3. Re:Non Portable by Anonymous Coward · · Score: 0

      Right, just like they wont use non-portable, non-crosplatform stuff like Flash, DHTML, Netscape-specific javascript, IE-specific Javascript, Quicktime, IPix, ...

    4. Re:Non Portable by brsett · · Score: 2, Insightful

      I guess by inference you are saying that Java then is portable, which is a statement my experience directly contradicts. I have no axe to grind with Sun, and I have no real problems with Java, but I haven't experienced the cross platform nirvana it purports. Certainly the threading characteristics for PCs, Sparcs, and Macs are not very similar, especially when you use native threads (enabled by the jvm options). And the awt implementations are not portable, nor are all the applet apis (though in all fairness those could be bugs that I've seen). But much more damning then any of that, is the object reclamations system, garbage collection works completely different depending on the platform, which while not neccesarily a portablility killer, definitely impacts system tuning.

      And of course all the third party database bridges are native apps (at least if they go fast), so you are intrinsically dependent on a chunk of code that doesn' claim, or even want to be portable if you are doing any enterprise development.

      Again, I have no real problems with java, but to me it is still "Write once, Test anywhere", and I'm not sure if there is any move to make the JVMs more similar (or even if that is a good idea). But what do I know, I'm just a crazy C++ hack :-).

    5. Re:Non Portable by Anonymous Coward · · Score: 0

      Is becomming associated with buggy client-server apps created by VB drones, rather than real programmers, good or bad for C#?

    6. Re:Non Portable by Anonymous Coward · · Score: 0

      > but I haven't experienced the cross platform
      > nirvana it purports.

      Word...at first, it was the Cross Platform GUI Solution! No, the GUI support sucks if you want to really support everybody or rewrite every control in AWT, which I've seen done...very impressive...it's the Cross Platform Server Solution! Well...okay, if you want to trust the Linux VM...yaddayaddayadda. Sun is looking desparately for a niche that Java can fill...looks like Cross Platform Visual Basic it is!

    7. Re:Non Portable by iacyclone · · Score: 1

      Here, here. It is not th language that makes a bug, it is the developer, or BA if they are a good scapegoat. :)

    8. Re:Non Portable by radish · · Score: 2


      Hmmm...

      Yes the native thread models are different between OS environments. That might be because the OS's themselves use different threading models? Whaddya reckon?? Possible?? Switch it over to green (i.e. internal) threads and it'll be using the same code in all cases. Not that it means it's perfect, in the past I have seen (minor) differences.

      As for databases, use a pure java implementation. If the vendor doesn't offer one, shout.

      But we're currently building a huge distributed app under linux/win32/solaris, which will all be deployed on solaris. Nothing stopping us at the moment.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    9. Re:Non Portable by brsett · · Score: 1

      Please spawn more than 256 worker threads using green threads on Solaris jvm. Then you'll see green threads are too dangerous to use (more than 256 concurrent threads, no soup for you).

      With java, you either use a restricted portable subset (in that case, what is the point of java), or you need to be prepared for the surprises that are going to occur when you deploy with and without X, with tuned, precompiled db access (ie. sqlJ), floppy access, saving data in binary format, reading binary data. That's all the one's I've personally seen, but I've heard horror stories from other developers, and we certainly did switch to a more portable subset, and JNI for any parts we needed faster.

    10. Re:Non Portable by Anonymous Coward · · Score: 0

      You guys are talking about something you obviously haven't a clue about.....

      Any informed MS.NET programmer will tell you C# is practically irrelevant and no-one is telling anyone to port code to it.

      C# is just one of dozens of languages supported on the .NET framework.... People focusing on C# simply don't get .NET at all....

      From a programmers perspective when you talk about C# you might as well be talking about which shade of red makes a car go fastest.... you are talking about an arbitrary language for implementating .NET applications...

      The key to .NET is its architecture.... the process it facilitates and the speed that process yields results...

  7. how is it... by Lord+Omlette · · Score: 3, Troll

    that Carnage4Life, the slashdotter's slashdotter, couldn't anticipate and survive a slashdotting?

    --
    [o]_O
    1. Re:how is it... by kilgore_47 · · Score: 1

      25hoursaday.com isn't as reliable as it sounds...

      --
      ___
      The way to see by faith is to shut the eye of reason. --Ben Franklin
    2. Re:how is it... by Anonymous Coward · · Score: 0

      Netcraft says IIS.

      But to his credit, he's come a long way from his pathetic VB monkey days a year and a half ago.

    3. Re:how is it... by zmooc · · Score: 1

      Well...there's only one day a year which has 25 hours: the day we switch to from daylightsaving time to winter-time. So it's even more reliable than it sounds:)

      --
      0x or or snor perron?!
    4. Re:how is it... by kilgore_47 · · Score: 1

      interesting fact, yes, but the server still went down when slashdotted and is still "less reliable than it sounds".

      --
      ___
      The way to see by faith is to shut the eye of reason. --Ben Franklin
    5. Re:how is it... by zmooc · · Score: 1

      eh..well..i meant that the server should only be expected to be up on that particular day. So it wasn't even supposed to be up today since there are only 24 hours:)

      --
      0x or or snor perron?!
    6. Re:how is it... by Anonymous Coward · · Score: 0

      Heh, his poor little Win2K server buckled so he now makes the page refresh to gatech, who's unix box can handle it. How cute.

    7. Re:how is it... by MaxVlast · · Score: 1

      I thought you were funny.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
  8. It doesn't matter how good it is by geekoid · · Score: 0, Troll

    any language that is completely controlled by one entity is bad for the industry.
    we all know that. we should really do everything in our power to prevent PHBs from adopting them.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    1. Re:It doesn't matter how good it is by Yankovic · · Score: 1

      you mean like java? if IBM got behind c# and used it elsewhere, would that make it any better for you?

    2. Re:It doesn't matter how good it is by Anonymous Coward · · Score: 0

      What if that Entity is the Human Race? Now do you realize how dopey your comment is?

    3. Re:It doesn't matter how good it is by WndrBr3d · · Score: 1

      /me takes his QBasic compiler and runs home crying !!!

    4. Re:It doesn't matter how good it is by the_2nd_coming · · Score: 1

      to bad that C# is submited to the ANSI/ISO standards commity and soon will be directed by that organisation where as JAVA has not been. of cource that just means that MS is going to make an incompatable extention to the ANSI C# that gives programs that use the extention better performance so people will use Windows on the server rather than Linux/BSD/Whatever.

      --



      I am the Alpha and the Omega-3
    5. Re:It doesn't matter how good it is by brsett · · Score: 2, Insightful

      Yes, but don't standards usually try to codufy existing practice and divergent implementations. WHats the point of standardising something that is intrinsically standardized -- because there is a single reference implementation. I have no problem with MS (other than their crappy API's and hungarian notation), but it seems that they are using standardization as a marketing ploy (of course they are a much better marketing company than a technical company, but I digress), it serves no real purpose. But ANSI doesn't cost me any money, so let the corporate boys fund it, good for me.

      (I would also like to point out that MS is notorious for ignoring ANSI standards *cough* C++ *cough*, so what an interesting point that they finally "seen the light" -- but let's give them the benefit of the doubt).

    6. Re:It doesn't matter how good it is by the_2nd_coming · · Score: 1

      it is not that they see the light as much as they want developers and 3rd party companies (like borland) to adopt it. if it is proprietary then you can kiss the chanses of other companies making interpreters/compilers for it and it makes it dependant on MS's .NET....sending it to ANSI makes it twice a likly to be used widly....once that happens though, you can bet that MS will not be standards complient ;-)

      --



      I am the Alpha and the Omega-3
    7. Re:It doesn't matter how good it is by styrotech · · Score: 1

      Ummm.... yes

  9. The lesser of two evils by Walter+Bell · · Score: 5, Insightful

    Disregarding the fact that Java and C# are both "closed" languages controlled by large corporate entities with their own self-interests in mind, they both do an admirable job of bridging the gap between general purpose scripting languages and C++. Having used C# and Java on Win32 extensively in the past year, I have become accustomed to the automatic garbage collection, quick execution speed, and logically consistent design of both languages. The Windows compilers / runtime engines for both languages are quite amazing, and something for the fledgling gcj to aspire to.

    Although C# does deliver superior integration with Windows and .net (which is good for MS-only developers and bad for multiplatform programmers like myself), I'd have to pick Java if it was up to me just because of its sheer elegance. It seems like Sun did a better job designing a general-purpose language (applet "security" extensions aside), and Microsoft just tried to copy Java but add in proprietary extensions to hook C# into Windows. Thus, some of the C# features seem to be "bolted on", whereas most of Java came across as being very natural to me.

    Just my 2c...

    ~wally

    1. Re:The lesser of two evils by Steveftoth · · Score: 5, Insightful

      If c# takes off for windows programming I think it will be because people will be able to build responsive GUI programs with it. The largest problem with Java is people's conception that it is SLOW. Java coders know that is not true in general. However, AWT and Swing are slower then they need to be because of their cross-platform compatability. If you can build a responsive GUI program in less time using C# then I think it will be the language of choice for many coders. C++ takes more time to get all your bugs out, Java gets rid of the possiability for many bugs, (while introducing others, but there are less overall) and reduces time of coding.

      Also, you'll be able to use all the newest 'must have features' that MS tries to shove on the consumer in C#.

      For now, I'll stick with Java because it's libraries are much better. Not just the ones that Sun wrote, but more importantly, the ones that other people have written.

    2. Re:The lesser of two evils by redcup · · Score: 4, Funny

      Java and C# are both "closed" languages controlled by large corporate entities with their own self-interests in mind

      Agreed - but Java at least attempts "write once, run anywhere," (with debatable success) whereas M$ C# attempts "write once, run on Windows XP, with Windows Messenger and a .Net Passport or else"

      I have a lot more faith trusting my applications and business to a company that isn't trying to take over every purchasing decision we make. If you have read the fine print that comes with Windows messenger - the other half of .Net - it essentially gives Microsoft the right to modify the application at any time, with out notifying you. Oh, and these upgrades might not be free! The bottom line? Microsoft is going to decide sometime in the future to cut you off, and then make you pay. And you would trust these people not to do the same with C#??

      One day your app or service isn't going to run, and all you see in your logs will be "Call Miscrosoft to obtain a license to run C#"

      --

      RC
    3. Re:The lesser of two evils by altair1 · · Score: 1

      How is java closed and controlled by a corporate entity? There are open source JVMs: LaTTe, japhar, and whatever Kaffe uses if not one of those. IBM has open source java stuff too (jikes, a compiler).

      Kaffe is a complete open source JDK1.1 implementation, with most of JDK1.2 implemented as well. There doesn't seem to be much going on with it now unfortunately, but that isn't sun's fault.

      There's also Blackdown which brings Java to linux on a variety of platforms, but I cant tell if its real opensource or not ("community source")...

      I believe there are also several independant commercial java implementations. I believe IBM has one. Intel was going to release one as open source, but I don't know if they scrapped it or not.

      There is even an open source EJB implementation, JBoss.

      Closed and controlled by one corporate entity java obviously is not...

    4. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      "Although C# does deliver superior integration with Windows and .net (which is good for MS-only developers and bad for multiplatform programmers like myself), I'd have to pick Java if it was up to me just because of its sheer elegance." If C# didn't deliver that integration capability and offer something to the .NET framework, why would Microsoft have bothered? Automatic garbage collection is not the whizz bang gizmo that everyone thinks. It works, but not perfectly. There are problems, and if you're programming at NASA one assumes that you've encountered these already...

    5. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      MY complaint with Java GUI is that a) laying out controls is like using html tables to position a web page. b) you are missing a lot of control that would be present in a native widget set (ie - you can't monitor mouse motion, only get informed when the mouse button goes up or down).

    6. Re:The lesser of two evils by Anonymous Coward · · Score: 1, Informative

      I'm glad you're not letting the facts stand int the way of your anti-MS crusade.

      MS will be releasing an implementation of the C# virtual machine for FreeBSD, under either their shared source or possibly BSD license (probably with the advertising clause). A Macintosh vm will be available as well.

      There already is a gcc side project to compile code to the .net VM as well as a side project to compile C# code natively. I'd give you the URL, but sourceforge is currently down, so I can't look for it.

      Since MS Office has been interpreted code for quite some time now, it's likely it will be migrated to use their new VM. Which means MS Word might run natively on XWindows... (ok, maybe not without wine :)

    7. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      It is not my conception, but just a fact that Java is slower.

      I've written (not just me, but a whole team) a bank-app in java and it is painfully slow although we didn't use swing (we even wrote our own grid-controls, etc.)

      For the rest, it is an elegant language, but that's about it.

    8. Re:The lesser of two evils by tazzzzz · · Score: 2, Informative

      For people who haven't yet checked it out, IBM's Eclipse project... IBM has developed a GUI toolkit for Java that uses native widgets.

    9. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      This looks very similar to the .NET approach -- a higher-level wrapper around Win32 (except that they also provide a motif implementation).

      Too bad this wasn't around 2 years ago. The idea that client-side Java is unworkable has probably sunk far too deep.

    10. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      You're an idiot. C# is a programming language. You can't run it. C# and .NET are completely different. I reiterate, you're an idiot.

    11. Re:The lesser of two evils by nebby · · Score: 3, Flamebait

      That was perhaps the best troll I've ever seen posted on Slashdot. The only reason it didn't fool me is because I've been developing C# for the past month and before that was doing Java for 3 years or so. C# is better, hands down, as long as you don't want cross-platform compatibility.

      --
      --
    12. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      How do morons like you get modded up, anyway? Seriously, I know some retarded kid down the street who would probably get a real kick out of it. What's your secret?

    13. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      'but Java at least attempts "write once, run anywhere,"'

      Java runs on exactly one platform. There are emulators for that platform available for other platforms (some even use JIT comilation techniques to reduce the emulation speed hit). The only 'crossplatform' difference between JVM ISA + Java libraries and x86 ISA + win32 libraries is that the JVM ISA doesn't execute natively on any mainstream CPUs.
      'One day your app or service isn't going to run, and all you see in your logs will be "Call Miscrosoft to obtain a license to run C#"'

      Sun, like Microsoft, is not a charity. At least Microsoft submitted their design to a independent standards organization. Sun just promises that they won't fuck you over. And you know (or at least, you should know) how much a non-contractual promise from a publically traded corporation is...

    14. Re:The lesser of two evils by kill+-9+$$ · · Score: 1
      Closed, no, but controlled by one corporate entity, yes.

      The JVM is an open specification. It very rigidly defines how your underlying system should behave when it encounters said bytecode. The Java language, at its core, is also openly defined tying it back to the bytecode.

      However, Sun has the final say as to what can happen to these specifications. If something does not map to these specifications, it cannot claim to be Java. As a result Sun, controls the destiny of the language. I for one, don't think this is a bad thing.

      First off, Sun really knew what they were doing when they came up with the language. For example, when trying to do something in Java, if I find myself fighting the language or doing something that doesn't feel right, I can usually go and find a better way of doing it in Java. I don't ever recall doing this and finding the "Sun" way to be a worse implementation than what I had originally proposed. I feel that a standards commitee would not have the insight that Sun would have into enhancing and evolving the language. The other thing is that standards commitees have this terrible habit of slowing time-to-market considerably. Frankly, Sun has shown they can do the job of controlling the language's evolution without pissing off developers and they can do it faster than a standards body. This works for me.

      --

      -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
    15. Re:The lesser of two evils by good-n-nappy · · Score: 1

      You know, I'm a java developer and it's really sweet that Java is "write once, run anywhere." Seriously, it gives me warm fuzzies. To be honest though, the reason I use java has nothing to do with this line from marketing. I use java because I am infinitely more productive than when using C++. Sure, tell me its because I'm a pathetic programmer - but we all know where the programming time goes in C++.

      Sadly, I do most of my programming for Windows. Unlike the other M$ slaves replying to this post, I would actually like to see M$ fail. Unfortunately, it seems like they were pretty smart here. Steal Java - clean it up - and add direct access to the operating system. It seems like it won't take long before I'm using C#.

      I'd love to hear anyone's ideas on why the .Net machine won't make Java obsolete. I sure haven't heard many convincing arguments so far.

      --
      Never underestimate the power of fiber.
    16. Re:The lesser of two evils by jallen02 · · Score: 2

      eclipse.org (not eclipse.com)

    17. Re:The lesser of two evils by lostguy · · Score: 1
      ...I'd have to pick Java if it was up to me just because of its sheer elegance.


      While C# may seem less elegant to you, it's because you do not understand it. For the first stretch of time developing in any new language, most efforts tend to be inelegant attempts to map previous knowledge onto a new construct.

      I'm sure you've heard "writing x in y", like "writing lisp in c". What you attempted (if you actually wrote any code in C#) was "writing java in c#".

      I find the code produced with C# tends to be more elegant than much of the code written in Java, simply because of the syntactic sugar available with the language. The Java language is entirely too redundant for maximum productivity. Many of the great gains of C# are in reducing the redundancy of Java without reducing the expressibility.

      This isn't a slam on Java, although I could make it one. Anything new should build on the gains made by something that came before. In fact, this is my biggest complaint with most programming languages -- they throw out gains made from purer environments such as Lisp and Smalltalk, in the name of general palatability at design time.

      But that would make this a rant.
    18. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      Will i be able to use crossplatform GUI applications with that marvellous FreeBSD port? Thought so..

    19. Re:The lesser of two evils by Samrobb · · Score: 1

      You will once TrollTech, the GTK team, or anyone with that particular need releases a cross-platform GUI library for C#. Open source development being what it is, once the first one's out, there will be 2-3 competing projects starting up almost immediately.

      Seriously - how can open source advocates trumpet how wonderful it is to have so many choices, and then turn around and state that it's a Good Thing to have a single GUI specification as part of the langauge?

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    20. Re:The lesser of two evils by addaon · · Score: 1

      "you can't monitor mouse motion, only get informed when the mouse button goes up or down"

      Wibble? MouseMotionListener?????

      --

      I've had this sig for three days.
    21. Re:The lesser of two evils by tshak · · Score: 2

      C# has been submitted to the ECMA. There is NO licensing issues with using C#. For example, the Mono project is able to write a full .NET runtime engine and compiler without even talking to the M$ legal department.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    22. Re:The lesser of two evils by tshak · · Score: 2

      I'd have to agree with you. And since C# is submitted to the ECMA, the "cross-platform" issue will be moot (albeit it still won't be write once, run anywhere, but I'm personally not interested in that).

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    23. Re:The lesser of two evils by Anonymous Coward · · Score: 0
      I've been using C# for over a year now and Java is better, hands down.

      You're a fucking moron.

    24. Re:The lesser of two evils by rice_burners_suck · · Score: 2

      Your comment leads me to wonder something... if you code something in Java, or C++, or FORTRAN, or Perl, or sh, or any other language out there... Does the execution speed of your program necessarily say anything about the language you wrote it in?

      I have a strong feeling that many programmers out there aren't very good at programming. Sure, some are geniuses and others are very good, but I think that most don't really have the level of respect for the hardware that I believe is required of a good programmer.

      An example, off the top of my head: I once hired a programmer to write a compiler (and virtual machine) for a very simple language, used to operate a small embedded computer--the equivalent of a 486--for a piece of industrial machinery. After months of hard work and who knows how many thousands of lines of code (in C) later, a compiler was produced that could process about 300 lines per second (with about 40 characters in a line), and a virtual machine was produced that processed the compiled code so slowly that it couldn't keep up with mechanical equipment. After a lot of arguing, the programmer swore that it was impossible to make the code any faster.

      Then I went in and started analysing the code. The thing that comes to mind first is a routine that, when given an ASCII character between 'A' and 'Z', tells you the number of the letter. For example, 'A' is 0, 'Z' is 25, and everything in between is something in between. A routine that was about 20 lines long was written for this purpose, where just about every string function imaginable was called. In C, this entire routine could be replaced by "string[index] - 'A';" (I don't remember the names, but that's the code.) And this code couldn't be made any faster?!

      Yes, it was programmed in C. And C is supposed to be a fast language, right? Heh heh... the language has very little if anything to do with execution speed. It's the programmer's own code that accounts for 99% of the execution time. I rewrote the whole damn thing in six weeks and my implementation processed over 6,000 lines per second, and the code was written for readability with no emphasis on execution speed, and no optimizations. (The algorithm, on the other hand, was designed for speed.) My conclusion? If your banking app was painfully slow, maybe you didn't design or implement it correctly. On the other hand, maybe there was a bottleneck external to your application, like slow response times between you and some database backend. Whatever it was, I doubt that Java was at fault.

    25. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      Java will not become obsolete because Microsoft is going to fail and Linux will be the world's predominate system?

    26. Re:The lesser of two evils by Derkec · · Score: 2
      Java and C# are both "closed" languages controlled by large corporate entities with their own self-interests in mind


      This has been something I've been holding against Java for a while myself, but the article makes an excellent point. C++, which was released for the public to 'run' really stagnated to a large degree. However, if a single corporation runs a language, the language can change with the times and adapt to the users' needs quicker since there is less politicing to be done. Since Sun seems to want as many people to use Java as possible, they have a strong interest in responding to developer demands. I'm interested to see the response to these two competitors. When faced with the closed systems, it might come down to a question of who do you trust. Between Bill and Scott, I've got my pick, but hey I'm biased.

    27. Re:The lesser of two evils by Malcontent · · Score: 2

      I think the the trolltech guys ever attempted to do such a thing they would get their asses sued off. the last thing MS wants is a cross platform language.

      --

      War is necrophilia.

    28. Re:The lesser of two evils by Malcontent · · Score: 2

      Why did you wait this long? You could have built very snappy gui apps for windows in VB or Delphi and yes even C++ for a long time. You still can you know. I fyou like jave great, if you like C# great but let's get real there are a lot of languages which let you use native gui apps in windows.

      COM couldn't kill java, DCOM couldnt, VB could not, Delphi could not, ASP could not, IE could not. So far nothing MS has tried manged to kill java. I suspect this is because cross platform is actually a desirable thing for most corporations. As long as LInux continues to grow and corporations are using unix and mainframes java will be around and growing. The only way MS could kill java is to make the whole shebang cross platform and they will never do that.

      --

      War is necrophilia.

    29. Re:The lesser of two evils by Anonymous Coward · · Score: 0
      Agreed. Part of writing fast java code is understanding the nature of the language. If you spend a lot of time creating new objects instead of re-using existing ones, you will slow your app down tremendously. I've got programs that take longer to initialize than they do to execute (especially when connecting to a DB) just because of the overhead to create new objects.

      For instance, when coding utility functions, string manipulation for instance, avoid creating new objects if at all possible. Sure you could create a new ArrayList, and a new StringTokenizer, and whatever else, just to have 7 lines of code, but if you do it the hard way, which may be 30 lines of code, you can get massive performance boosts just because you are solving a specific problem using specific code, rather than a specific problem using generic code.

      Another thing that really helps is actually thinking out how the program works before coding it. Doing this really helps the balance between fast code, and highly reusable code. Poor design usually means you are optimized for speed, or have a bunch of useless stuff in the hopes of having reusable objects.

      IANAJE, but this has been my experience.

    30. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      Hewlett-Packard, Intel and MS has submitted C# to the ECMA (http://msdn.microsoft.com/net/ecma/). Sun I believe that taken Java *off* the agenda of any standards body... FYI.

    31. Re:The lesser of two evils by Waldmeister · · Score: 1

      If you're nowadays a GUI developer, I expect you to use Windows as your primary platform. (exceptions only proove the rule *g*)

      C#/.NET is targeted primarily at Web Services, (almost) the same with the J2EE plattform. So I don't think, that GUI programming is the "killer feature" for the future.

      From my point of view, Sun takes very much effort to bring good development practices like design patterns to Java. (See the J2EE pattern repository at java.sun.com for example) And Erich Gamma (one of the Gang of Four, which wrote the most famous pattern book) has stated in a conference (JavaOne? don't remember), that Java is the language/library/plattform with the highest pattern density he knows.

      I think this can be much more an "killer feature"; design and architecture of distributed and multi tiered applications is much more diffcult (and therefor important) compared with monolitic (Windows) applications.

      To lure programmers from (more or less) monolitic programms (like Windows GUI apps) to web services is one of the most important tasks for Microsoft and Sun. It will be interesting to see wether fancy tools (Microsoft VisualStudio) or good software engineering practices are the better strategy.

    32. Re:The lesser of two evils by Anonymous Coward · · Score: 0

      Steal Java - clean it up - and add direct access to the operating system

      Web based cross platform viruses courtesy of Microsoft anyone ?

    33. Re:The lesser of two evils by TimSneath · · Score: 1

      "Java and C# are closed languages."

      Only one has been accepted by a standards body... and it's not Java.

      http://www.ecma.ch/ecma1/MEMENTO/TC39-G2.HTM

    34. Re:The lesser of two evils by Corrado · · Score: 1

      SOME parts of C# has been submitted to the ECMA, not all of it. It would be very interesting if M$ put all of C# into a third party's hands.

      --
      KangarooBox - We make IT simple!
    35. Re:The lesser of two evils by pr0nbot · · Score: 1



      Java and C# are both "closed" languages

      Perhaps. But I'm in the final stages of writing a JVM, which all started because I was able to go to my local bookshop and buy the JVM and JNI specifications. (As an aside, JNI has provisions for future integration with MS COM, which surprised me.) Has MS made their bytecode formats etc public? (I ask out of genuine ignorance.)

    36. Re:The lesser of two evils by sleepingduke · · Score: 1

      But it isn't cross-platform. They use Motif as a basis for Linux support - DOA surely?

      Also SWT uses the AWT/Swing style of subclassing and managing event listeners, which is an incredibly clunky programming model. It doesn't make use of Java's dynamic programming capabilities at all. I much prefer Trolltech's Qt slots/signals for component based programming.

      -- Richard Dale (obviously biased Qt/KDE Java bindings author)

  10. C# and .NET vs. Java Enterprise APIs and tools by MarkWatson · · Score: 4, Insightful
    Good summary of similarities and differences between Java and C#.

    I spend most of my time in the Java world (I have written 5 Java books, the latest of J2EE, and almost all of my consulting is done with Java.)

    That said, C# and Visual Studio.Net are very cool.

    Since Java is not my language of choice (hey, I would use Common LISP more if there were more consulting jobs requiring LISP!), I would not be too bothered if I had to use C# and the .Net stuff.

    Really, what really matters is finding interesting jobs to do, not the development platform.

    I also have high-hopes for interop between the Java J2EE world and .Net using SOAP. (I am working on SOAP support for Common LISP in my spare time so Lis can play nice with .Net and J2EE.)

    Best regards,

    Mark Watson

    1. Re:C# and .NET vs. Java Enterprise APIs and tools by Anonymous Coward · · Score: 0

      So what's you're point, exactly -- that you want to render an opinion about C#, or that you want to sneak in a little spam and hawk your B-grade books?

    2. Re:C# and .NET vs. Java Enterprise APIs and tools by MarkWatson · · Score: 1
      My point is that both Java and C# are great (and fun!!) languages to develop in. What really matters is how interesting a job is, not the platform. That said, it takes me twice as long to design and code in C++ as in either Java or C#.

      Best regards,

      Mark

    3. Re:C# and .NET vs. Java Enterprise APIs and tools by Anonymous Coward · · Score: 0

      I hope you learn C++ one day.

    4. Re:C# and .NET vs. Java Enterprise APIs and tools by Anonymous Coward · · Score: 0

      I'm not trying to be insulting or anything, but go to amazon.com and take a look at the average review of all of your books. It is somewhere between 1.5 and 2 stars out of 5.

    5. Re:C# and .NET vs. Java Enterprise APIs and tools by blue+trane · · Score: 1

      dude, I've bought several of Mark Watson's books, they rule and have helped me a lot.

    6. Re:C# and .NET vs. Java Enterprise APIs and tools by Anonymous Coward · · Score: 0

      What is this supposed J2EE book? All I can find is some low scoring JavaBeans book from Amazon and FatBrain.

    7. Re:C# and .NET vs. Java Enterprise APIs and tools by F34nor · · Score: 1

      If you're not trying to be insulting then why are you an "Anonymous Coward?"

  11. Correction by aspillai · · Score: 2, Informative

    Unlike what the article says, Java does have a byte keyword.

  12. Come on now: Have you ever really used C#? by ergo98 · · Score: 5, Insightful

    Seriously though, have you? From your vague, unsubstantiated, no example posting it sounds like you use and know Java, therefore you can proclaim yourself knowledgable about C#. Your claims about the "bolted on" aspects of C# are particularly suspicious given the "hooks" into Windows are simply objects instantiatable from the .Net Framework (they're not "bolted on": Just like Java you include the unit and create objects from it). If anything C# takes some of the goofy aspects of Java, such as the interoperation with properties via methods, and cleans them up to make an abstract behind the scenes property handling system (ripped straight from Delphi's object pascal I would guess).

    1. Re:Come on now: Have you ever really used C#? by rfsayre · · Score: 2
      If anything C# takes some of the goofy aspects of Java, such as the interoperation with properties via methods, and cleans them up to make an abstract behind the scenes property handling system (ripped straight from Delphi's object pascal I would guess).

      Why is this approach better and less goofy? I'm not familiar with object pascal, but this approach sounds like it would lead to spaghetti.
    2. Re:Come on now: Have you ever really used C#? by mmayo · · Score: 2, Informative

      ripped straight from Delphi's object pascal I would guess

      Given that Microsoft hired away Borland's chief Delphi (and object pascal) architect, Anders Hejlsberg, and that Anders' name is on the C# language specification, this should come as no surprise. :)

      Naturally, Borland has been attempting to sue Microsoft for its systematic destruction of their company by recruiting all of their top people (mostly on the technical front).

    3. Re:Come on now: Have you ever really used C#? by Anonymous Coward · · Score: 0

      >>>If anything C# takes some of the goofy aspects of Java, such as the interoperation with properties via methods, and cleans them up to make an abstract behind the scenes property handling syste

      Goofy operation on properties via methods??? It's called good object oriented design!!

    4. Re:Come on now: Have you ever really used C#? by jimbolaya · · Score: 1
      f anything C# takes some of the goofy aspects of Java, such as the interoperation with properties via methods, and cleans them up to make an abstract behind the scenes property handling system (ripped straight from Delphi's object pascal I would guess).

      I, and apparently many others, would like you to elaborate on this. And I mean that sincerely. I am a Java programmer, and I am not familiar with either object pascal or C#. I'm not sure at all what you mean by "interoperation [sic] with properties via methods."

      --

      There ain't no rules here; we're trying to accomplish something.

    5. Re:Come on now: Have you ever really used C#? by schmaltz · · Score: 1

      I, and apparently many others, would like you to elaborate on this. And I mean that sincerely. I am a Java programmer, and I am not familiar with either object pascal or C#. I'm not sure at all what you mean by "interoperation [sic] with properties via methods."

      It's a kind of syntactic sugar, that lets you associate get and put methods with a property name. Let's say you have a "color" property (class field variable), you'll create getcolor and putcolor methods that, behind the scenes, through compiler magic, make it so that 'obj.color := red;' makes a call like 'obj.putcolor(red);', and 'x := obj.color;' generates code like: 'x:=obj.getcolor();'.

      It's been a while since last I programmed in Delphi, so I'm not remembering the proper naming convention for the get/put methods, but the idea's correct.

      --
      Big Daddy, Johnny, Burp, Aunt Zelda, Scott, Slurp, Big Momma ... where's Siggy?
    6. Re:Come on now: Have you ever really used C#? by Malcontent · · Score: 2

      Actually that suit is over. Ms decided to settle that suit and a few others by giving Borland a shitload of money. This was probably a good thing becasue they not only stole programmers but the tabbed interface from quatro pro too. I think they knew they were going to lose.

      --

      War is necrophilia.

    7. Re:Come on now: Have you ever really used C#? by borgboy · · Score: 1
      Here's an example Object Pascal class with some properties. You can see how the declaration maps the properties to their getter/setter or private variable with the read and write directives.

      type
      TDog = class(TObject)
      private
      FWeight: real;
      FHeight: real;
      FOwner: string;
      FBreedName: string;
      function GetColor(Index: Integer): TColor;
      procedure SetColor(Index: Integer; const Value: TColor);
      procedure SetHeight(const Value: real);
      procedure SetOwner(const Value: string);
      procedure SetWeight(const Value: real);
      public
      property Colors[Index : Integer] : TColor read GetColor write SetColor;
      property Owner : string read FOwner write SetOwner;
      published
      property Height : real read FHeight write SetHeight;
      property Weight : real read FWeight write SetWeight;
      property BreedName : string read FBreedName;
      end;
      --
      meh.
    8. Re:Come on now: Have you ever really used C#? by Anonymous Coward · · Score: 0

      Hey dickhead: Only idiots use [sic] -> Just italicize the section as a quote and save the fucking lesson pal.

  13. Standardization? by mugnyte · · Score: 3, Insightful

    Language improvements have historicially opened the door to new productivity - in real terms - of apps getting cranked out. Higher and higher encapsulation in text or GUI worlds...but they don't all stick to the wall.

    One cannot always tell beforehand how big the impact will be. Small movements have exploded once given a niche to fill... and then die once it was swallowed up by a new contender.

    If the benefit of C# is only whats in this article, then I'm not convinced its going to change the world. I'll keep to my "unsafe" code blocks and maintain interoperability with non-Gatesian worlds.

    I'll wait for at least a committee for standardization to form for this mess.

    1. Re:Standardization? by Anonymous Coward · · Score: 0

      And remain ignorant... From it's inception .NET by its definition is an open architecture... it is designed to be cross platform on the server and client side

      Have we forgotten Mono by Ximian ?

      ASP.NET is designed to function within any browser from Netscape 3.0 upwards... The core artchitecture of .NET is based on XML... which is about as open a standard as you will ever find.

      So.... please tell me how is it someone developing on .NET may find themselves locked into a Gatesian world ?

      As for waiting for a standards body.... the core architecture .NET platform is based on open standards much of which is administered by the W3C organisation.

      As for the the moderator scoring these comments.... I guess your scoring method is based on 99% anti-MS sentiment, 0.5% for its intelligence and another 0.5% for how informed it is.

  14. Why do I get the sinking feeling by GISboy · · Score: 4, Funny

    with C# that "cross platform" will eventually mean Win9X, ME, NT, 2K and XP?

    Or in some ominous "Morpheous" like voice:
    "The .NET-rix is everywhere...."

    Or maybe I'm just reading too much into it... after all, Microsoft is doing it for the good of the community and Developers (developers, developers, dev....).

    BWAAAAHAHAHAHAHA...I actually kept a straight face while typing that...heh.

    {sniff, wipes tear from eyes..heeeheee}

    --
    If it is not on fire, it is a software problem.
    1. Re:Why do I get the sinking feeling by Anonymous Coward · · Score: 0

      Duh. M$ only exists to force users to upgrade. So, they won't be supporting anything but XP soon. Next time remember to review your kharma whoring guidelines before posting.

    2. Re:Why do I get the sinking feeling by sporty · · Score: 1

      Evil prophet! :)

      --

      -
      ping -f 255.255.255.255 # if only

    3. Re:Why do I get the sinking feeling by spongman · · Score: 3, Insightful
      since the C# language has been submitted to the ECMA group it's likely that implementations will appear for non-Microsoft platforms.

      in fact, one such port seems to be coming along very nicely.

    4. Re:Why do I get the sinking feeling by vanza · · Score: 4, Insightful

      But will they be standardizing the libraries or just the language (and the CLR for that matter)?

      The beauty of Java is that you write your code once to a set of libraries that are available on a lot of platforms. Even if you had to recompile the code on each platform, there would be no problems because there's a standard library to which you code.

      But, if only C# the language is sent to the ECMA, won't we have another C/C++/ with different features? The code you write will still be specific to the libraries you choose to use (and thus the platforms those libraries are available).

      --
      Marcelo Vanzin
    5. Re:Why do I get the sinking feeling by Anonymous Coward · · Score: 0

      > Even if you had to recompile the code on each
      > platform, there would be no problems because
      > there's a standard library to which you code.

      Kind of like these for C++:

      STL - Dinkumware and other versions fix MSFT evilness.
      Common C++ - new standard libs.
      ADAPATIVE Communications Environment - awesome set of libs that compiles on everything.

    6. Re:Why do I get the sinking feeling by Anonymous Coward · · Score: 0

      Exclude NT. It is only available for NT x86 and
      not all of the NT platforms.

    7. Re:Why do I get the sinking feeling by spongman · · Score: 3, Insightful
      i believe that the language and core runtime features are being standardized. as for the rest of it (ASP.NET, ADO.NET, WinForms/GDI+, XML/WebServices, etc...) even though they may not be an open standard as such, Microsoft's implementation and specification will serve as standard enough for others to provide compatible implementations on other platforms (eg: Mono), in exactly the same way as has happened for Java.

      Microsoft has historically been pretty good at keeping their SDKs backwardly compatible and I don't see any reason why they would break the compatibility of future .NET runtimes (the non-ECMA bits). Some would say that they'd do that just to break the 3rd party implementations, but in reality they'd lose more by pissing off their own developers than they'd gain.

    8. Re:Why do I get the sinking feeling by alext · · Score: 1

      Where? I've only seen the C# language spec. being offered to ECMA, and the Mono people have explicitly ruled out implementing the libraries/services.

    9. Re:Why do I get the sinking feeling by Anonymous Coward · · Score: 0
      as for the rest of it (ASP.NET, ADO.NET, WinForms/GDI+, XML/WebServices, etc...) even though they may not be an open standard as such, Microsoft's implementation and specification will serve as standard enough for others to provide compatible implementations on other platforms

      Dude, what crack are you smoking?

      Microsoft's implementation and specification?! Standard enough for other to provide compatible implementations??

      What planet do you live on?

      You're a fucking moron.

    10. Re:Why do I get the sinking feeling by spongman · · Score: 2

      Welcome to planet Earth...

    11. Re:Why do I get the sinking feeling by Ithil · · Score: 0

      Boost is also a very good set of libraries.

      - Ithil

  15. C# for Artificial Intelligence? by Mentifex · · Score: 1

    On SourceForge there are already a few rather ambitious Open Source AI projects in the C# language, but there is not yet a Mind-to-C# liaison page, for several reasons.

    Since the various C# AI projects are also using a more open and more traditional language along with C#, the projects are being included in the liaison pages for the non-C# languages. Microsoft has such a tainted history of skulduggery, FUD (fear, uncertainty and doubt) and illegally monopolistic practices, that it may be not only unwise but unethical to jump upon any Microsoft bandwagon.

    Therefore it seems safer to include the polyglot C# AI projects in the Mind-to-VB and other liaison pages.

    Since " Codito, ergo sum " types must give up waiting to trade in VB 6 for VB 7 and migrate instead to VB.Net (q.v.), we AI enthusiasts have some hope that the Microsoft .NET initiative will lead to Internet iMinds advancing the Technological Singularity and not merely the Final Take-Over of the 'Net by Microsoft.

    1. Re:C# for Artificial Intelligence? by Anonymous Coward · · Score: 0

      Do you think C# will be able to help enhance Mind towards the goal of becoming a dance instructor?

    2. Re:C# for Artificial Intelligence? by Anonymous Coward · · Score: 0

      > an artificial intelligence coded initially in
      > JavaScript

      Sweet mother of god! "Sorry Dave, you already did a document.write in Netscape 4.6 so the DOM pointer is now complete garbage! I can't do that!"

      alert("PrayForMojo");

  16. C# is really kinda cool stuff by CDWert · · Score: 2, Insightful

    Language wars abound, and I have no interest in propogating another.But truth is Java has become bloated far beyond its original design as a tv box controller. The best comparison I heard was Java was C without the corners, just like basic is fortran without the corners. C# seems more to me like the best of Java and C++ without many of the sharpest corners. I work in a split development world 1/2 *nix and 1/2 Win32 , none of us slashdotter want to acknowlege it but most of the desktop world is on windows, so to write a Win32 app your most viable options have been C, VB or some other monstrosity on a Win32 box like Java, have you ever tried to run a half a million line Desktop Java app on windows. Or to throw a Java app together in a nice pretty IDIOT proof installer so that the person who thinks a CDROM is a coffe cup holder can install it with one of the nice pretty MS installers, Java in those aspects , well...it sucks
    ....
    Of all the MSVC programmers I worked with once they all had a good chance to work with C# they said theyll never write another line of C++ again. For the windows platform it may indeed be great stuff, the one thing that piques my interest is its cross plattform future. MS included help files and other pices parts refrence Linux, no whether its MS or someone like Ximian with their mono project. The C# stuff is definatley cool. native speed and you can writer in any of the dot net languages you want VB C# and yes TCL and PERL have ports to the Dot NET runtimes, heres the deal even M$ says it, from a performance standpoint on a Win32 machine they will all run the same the language choice will be a matter of style.

    Some slashdotters out ther perpetually bash MS and I do too from time to time, I run Linux at work and home, but the fact is Im in computers to make money PERIOD, If I could make a living out of racing my motorcycles full time Id never touch a computer again other than to surf for parts or events.

    To the ends of making money at computers, C# will do great I am sure , the coders I know that have actually worked with it on a daily basis love it, and to all the NAYSAYERS out there that say "Oh just another MS product to have bugs" sure probably but the wholde of the VS 7 IDE and tools are written in C# , Im sure by the time its released it'll be pretty good. And best of all it will make ME MONEY, I write desktop apps , if its quicker and easier.more interoperable, which it is it has full inheretence.Im all for it. The fact that 3rd parties are already vigilantly porting the runtime to *nix systems tells you its not another Bob

    MS languages for the most part run superbly on MS systems, they suppert both sides of the enviroment. Guess what C# is another example, in XP there are already kernel optimization routines for the DotNET stuff,

    If you HAD to program and app for a MS system in a MS language, which would you preffer, C++, VB, VFP, well..... Or C# that even C++ programmers who use it on a regular basis say , (and from experience it does) rocks as far as MS languages go.

    --
    Sig went tro...aahemmm.....fishing........
    1. Re:C# is really kinda cool stuff by kelzer · · Score: 0, Flamebait

      Score 5 - Insightful?

      Please cancel my subscription to Slashdot.

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
    2. Re:C# is really kinda cool stuff by CDWert · · Score: 1

      What you've resorted to plagarism of my poorly spelled rant ?

      Least you could have done was fix my spelling errors, I suck at spelling. and math, thats why I became a programmer. With the minor sytax changes in C# I should be right on course from my C++ typos ....

      And to the MODERATORS , I AM THE ORIGINAL AUTOR OF THIS ARTICLE !!!, be kind....

      --
      Sig went tro...aahemmm.....fishing........
    3. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0

      Since you're experience is 1/2 *nix, 1/2 windows, and 0/2 Java, you don't really know what you're talking about. I just thought I should warn you.

    4. Re:C# is really kinda cool stuff by the_2nd_coming · · Score: 2, Interesting

      have you ever tried to run a half a million line Desktop Java app on windows

      yes actualy, I don't know the Lines of code but Jext is almost as robust as Emacs.

      Jext

      you have a vertual file hierarchy, an FTP client, a text editor with Hughlighting for almost every language and markup around, it has its own macro language, it has an embeded python interpreter, you can send e-mail, it divides your projects into seperate workspaces, and each workspace has its own Virtual file hierarchy. This is the text editor fo anyone who is in developing. what is realy nice is that it gets out of your way.

      --



      I am the Alpha and the Omega-3
    5. Re:C# is really kinda cool stuff by Steveftoth · · Score: 1

      I'll agree that MS tries to make things easy for people to develop for, but making Java programs easy to install is not only a possiability, it's a reality!
      Try to install ... ( on win32 )
      Forte
      LimeWire
      JBuilder
      Roboforge ( Java game )
      Daliworld
      or any Java app that uses the InstallAnywhere interface.
      and tell me that all Java programs are hard to install! Java Web Start is trying to make it even EASIER to install programs, with JWS, all downloading and install is handled for you. It even lets you run the app in a sandbox if you don't trust it. Something that all MS technologies cannot do.

      <sarcasm>But since you are out to make money and nobody wants a java coder you don't care about that.</sarcasm>

      BTW, who knows if C# is native ,bytecode, or both? I'm still confused on that point.

    6. Re:C# is really kinda cool stuff by kelzer · · Score: 1

      So some moderator modded my previous post down as Flamebait. Does that mean that moderator believes the original post deserved a 5? You've got to be kidding!

      Please, waste another moderation point on this one. Whatever you do, don't give that other post an "Overrated" because it is really incredibly insightful.

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
    7. Re:C# is really kinda cool stuff by Osty · · Score: 2, Informative

      BTW, who knows if C# is native ,bytecode, or both? I'm still confused on that point.

      Both, depending. This holds true for all languages targetting the .NET CLR. The different cases are:

      1. Application is distributed as native machine code. This is how binary-only applications are currently distributed. Upsides: Fast out of the box, installation only consists of copying files and registering components (in general). Downsides: not portable a la "Write once, run anywhere".
      2. Application is distributed as bytecode, installer compiles to native machine code. This is likely what will end up being the most popular. It's more akin to NeXT's "Write once, compile anywhere" idea, but with the compilation portion automated via an installer. Upsides: native speeds post-installation, portability. Downsides: Longer install times, potentially larger distribution files.
      3. Application is distributed as bytecode, run through a runtime using JIT compilation. This is essentially java. Upsides: portability, JIT compilation can do some optimizations at runtime that aren't possible at compile time (see Sun's HotSpot JIT). Downsides: Average case runtime is slow. Startup times and running times of important but less-frequently used code paths are slower.

      Item number 2 is likely the way things will go, because ISVs will be able to sell a single box of software and it will work on any platform with a compliant .NET CLR (assuming the code itself doesn't use any platform-specific extensions, but this caveat holds true for java as well). Plus, you'll get native performance, because the installer will actually compile the bytecode to machine code for you.

      For all supported languages, intermediate bytecode will always be generated (called IL, appropriately enough, for Intermediate Language). Whether you then compile that down to native immediately, do it at installation, or do it at runtime is up to the developer.

    8. Re:C# is really kinda cool stuff by kelzer · · Score: 1

      Thanks to the moderators that had a clue and modded the original post down to a 2, which was about what it deserved in the first place.

      If anybody has any spare mod points left, I'd appreciate one of my posts here being modded back up to it's original value of 1, just so I break even in karma. (This isn't karma whoring - I just can't afford to lose even 1 point).

      Have a nice day.

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
    9. Re:C# is really kinda cool stuff by HerbieStone · · Score: 1
      so to write a Win32 app your most viable options have been C, VB or some other monstrosity on a Win32 box like Java, have you ever tried to run a half a million line Desktop Java app on windows.
      Why is Java a monstrosity on Win32? Java works great on Win32 and *nix. We had once a pretty big project which was intendet to run on Sun on the server side and NT 4.0 on the client side. At the end of the project, we wanted to know if the client would also run under linux. It did. Without a SINGLE recompilation. We just used the bytecode from the NT-machine. Now show me what you need to do, when you do this with C.

      Or to throw a Java app together in a nice pretty IDIOT proof installer so that the person who thinks a CDROM is a coffe cup holder can install it with one of the nice pretty MS installers, Java in those aspects , well...it sucks
      Come-on, this is plain FUD and you know it. There are PLENTY of installers for Java-apps. A Simple search with Google reveals a mirad of good results.
      The C# stuff is definatley cool. native speed and you can writer in any of the dot net languages you want...
      Well, i wonder what makes you think that C# runs native speed. C# runs interpreted on a Virtual Machine just like Java does, PERIOD.
      ...the wholde of the VS 7 IDE and tools are written in C# , Im sure by the time its released it'll be pretty good....
      This is just plain wish-thinking. Show me a MS Product that really behaves how it is supposed to. Certainly not the first release. Maybe a later fix would then have kludged the ugliest bugs of the product.
    10. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0

      You may very well be right, I havent used the InstallAnywhere interface. It installs the enviroment too, checks threading and all the good stuff different Java interpreters, or one I have on my systme that might be an issue ? Im actully serious about the above questions. But my original post also points to the fact that Java can be cumbersome on the desktop for a number points, so can MS. I can can an app with VS for redistribution either via CD or the web in about 30 seconds flat, There is almost no learning curve, as with some of the other instalers Ive used. But anyway.

      I guess my point about making money only isnt exactly accurate, I enjoy it amd Im good at it, I like a challenge as well.

      About 6 years ago my dad an avid VB programmer came up with a pic of a bum with a sign
      its said "Will CODE VB for food" the subtitle said "VB programming in the next millenium" , how true.

      C# is the exact same as ALL the Dot NET languages, It can be wholly interpreted, if you so choose, or it can be differing levels of bytecode. All DOT NET languages REQUIRE the CLR, Common Language Runtime for execution, even the MONO project is simply aimed at porting the CLR.

    11. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0

      C# seems more to me like the best of Java and C++ without many of the sharpest corners.

      Interesting -- my reading of C# is that it's Java with the corners put back in -- operator overloading, and various junk that looks like it's there to make C++ porting (and Win32 API compatibility) easier.

      That's not a bad thing -- it's just a philosophical difference from Java which was intended to be easy-smeasy and maintainable for corporate programmers. (MS has VB.NET for that). C# puts in lots more abstraction which probably reduced LOC but also readability.

      Anyway, dollars-to-donuts that C# wins some 'systems programming' mindshare from C++ on Windows but doesn't go very far for coporate middleware. The real market war is between VB(.net) and Java, just like last year.

    12. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0
      C# runs interpreted on a Virtual Machine just like Java does, PERIOD.

      Completely wrong. You would have looked like a moron without it, but the "PERIOD" now makes you look like the fucking King of Morons.

    13. Re:C# is really kinda cool stuff by kill+-9+$$ · · Score: 1
      Java is bloated. I have experienced this just as you have. However, take a step back and use the old throw hardware at it philosophy. I have a half a gigabyte of memory in my machine. Guess, what, all these really supposed slow, bloated apps (Forte/Netbeans, OpenOffice, JBuilder), perform reasonably on my box now.

      So yes, java is a memory pig, much more than a C or C++ app. Lets face it though, a half gig of RAM isn't that much anymore (hence why I have it) and once you have the memory to avoid swapping it actually runs pretty well. Its not the most desireable solution, but its is a very attainable solution. I guess it boils down to how badly do you want to get Java applications up and running in your environment. I personally find the payoff of running Java appliations far outweighs a $150 worth of memory, if that.

      --

      -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
    14. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0

      C# does not run interpreted...

    15. Re:C# is really kinda cool stuff by Anonymous Coward · · Score: 0

      Java applications can be installed using nifty installers (see zerog.com). I have done several this way and they are indistinguishable from non-Java apps. Users have no idea that they are using Java, even the VM is installed for them. The bonus is that my apps work, unmodified on Mac, Linux, Solaris, and all versions of Windows.

      MS types always whine about the speed of Java. They always gloss over three facts. 1. You can compile Java to native code, if you want to, which makes it just as fast as C++. 2. You get something for the loss of speed, OS abstraction, and this is useful in a lot of cases. 3. Absolute speed is not always a concern. If it is then you shouldn't be using VB or C either you should write assembler.

      Personally, I like to do things that I find interesting. If a particular technology interests me, I work with it. Its not all about money with me. I can think of a hundred other, non-computer related, jobs I would rather do than code VB.

      If I had to choose between VB, C++, and C#, I would probably choose C++ as I would like to play around with pointers.

    16. Re:C# is really kinda cool stuff by Tony-A · · Score: 1

      Oh, I get it. C# doesn't run, with or without a "PERIOD".

    17. Re:C# is really kinda cool stuff by headsling · · Score: 1

      1/2 Gb of RAM for your PC ......... $150
      1/2 Gb of RAM for your Sun Server...$more-than-your-pc.00

  17. Ouch! by pi+radians · · Score: 3, Insightful

    Hey, I take offence to that!

    I've been forced to write sites in ASP/SQLServer on a number occasions because thats what the client asks for (they figure if its all IIS and VBScript it'll run better, I know, dumb). So before you decide to look down upon someone using C# or VB or anything else, realize that there are a number of factors that go into what technology is used.

    (I wish I could say my morals could standup to such a request, but low and behold, I want money too.)

    Seriously, why do you expect someone to only code in a certain language? I feel that the more you know, the better a job can get done. Just because its a MS language doesn't mean that it is useless. You should do what's best for the client.

    --

    sin(6cos(r)+5A)
    1. Re:Ouch! by Scott+Wunsch · · Score: 1

      Or you could try my solution when I had a client that insisted I use ASP: PerlScript. If you checkout ActiveState's Perl port, you'll find that it includes PerlScript, which basically ties Perl into the Windows scripting system alongside VBScript and JScript.

      This means that you can write ASP pages with Perl code in them instead of VBScript code! They just need to install ActiveState Perl on the server, which isn't much of a stretch.

      The other nice bonus is that much of the code you write this way will work equally well on a Linux server running Apache and Apache::ASP!

      --
      \\'
    2. Re:Ouch! by Anonymous Coward · · Score: 0

      It's not an eternal mystery why 'dumb' customers want to go with Microsoft -- the fact is that MS has been on the market the longest and has shitloads of mindshare because of that. ASP was the first 'web scripting' environment (ignoring SuckFusion) and MTS was the first easy-to-use applicaiton server environment. This stuff was on the market when everyone else was messing with CGI or scowling at CORBA. Since then Java and lots of other people have done a good job of copying them (JSP, Session Beans) and raising the bar.

    3. Re:Ouch! by DrSkwid · · Score: 1

      you could always quit

      that's what I did

      I got fed up of the vbscript, ado, activeX compile, reboot cycle

      oh, btw. vb script is useless. I did 5 long years of web based VB and now I've moved in the right direction (forward to python, back to C, php in the middle) I can't believe all the years I wasted. it felt good at the time writing C++ active x controls but soon as I learned a different trade I realised what a brain-dead world VB lives(ed) in. No native tcp control is what finally did it when i started network programming.

      I visited the world of DCOM for a bit, ugh. Jump on the "how shall we do it this month" bandwagon and daily MSDN reading

      it really is all too much trouble to keep up

      the layers and layers of complexity spin your head out.

      dump it now while you still have chance

      you really are not doing your clients ò?favours

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    4. Re:Ouch! by trilucid · · Score: 2


      Well put indeed. At one of my old developer jobs, the company was a 100% Microsoft shop. NT servers, IIS on the web side, ASP for scripting, MS-SQL Server for database stuff. Needless to say, I tried time and time again to introduce *anything* related to *NIX and/or open source software, without any luck.

      I tried bringing in PHP and Perl for scripting. I even set up a test server running NT 4.0 and ActiveState Perl, complete with a demo app that could be used for the customer's needs. Did they buy it? Nope. The customer was "sold" on Microsoft, and was convinced that anything else was second-rate.

      Interestingly enough, from talking with a couple of friends still working there, they actually have a PHP coder on staff full-time now, and are running a number of Linux servers for various purposes. While it's frustrating that they couldn't "see the light" while I was there, it's also good to see them expanding their reach. Their primary focus is still on NT solutions, but I can't entirely knock that, since they *do* keep up with security patches and such far better than most "home grown" admins I know.

      It all comes down to money. I run a web hosting company based on Linux. We don't do NT, period. Our customers are people who want Linux web hosting, plain and simple. There are hosts out there (lots actually) that only do NT. To each his own. All you can do is try to do the morally correct (in your own view, highly subjective) thing while still earning a living.

      Web hosting by geeks, for geeks. Now starting at $4/month (USD)!
      Yes, this is my protest to the sig char limit :).

    5. Re:Ouch! by Anonymous Coward · · Score: 0

      The beta of ASP came out in October of 1996. WebObjects 1.0 shipped March 26, 1996.

    6. Re:Ouch! by MaxVlast · · Score: 1

      I worked at a place a few years ago that was like that. They didn't watch me that closely, though, so I set myself up in a fully Unix environment and created really complicated translation layers to turn what i was doing into what the rest of the shop did. I finally got them turned onto Perl by tricking them into letting me give Java to other people. Then I made all of the support code in perl. They were stuck with it.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    7. Re:Ouch! by Anonymous Coward · · Score: 0

      Of course replacing VBScript for PerlScript does not solve any of the problems that ASP has.

      But it will definately make your code even more difficult to maintain. Which if that was your purpose, I congratulate you!

      hint: ASP is the glue that holds COM objects together

    8. Re:Ouch! by Anonymous Coward · · Score: 0

      In Hong Kong you would already be dead.

    9. Re:Ouch! by MaxVlast · · Score: 1

      And in Singapore, my ass would be red.

      --
      There should be a moratorium on the use of the apostrophe.
      Max V.
      NeXTMail/MIME Mail welcome
    10. Re:Ouch! by sg_oneill · · Score: 2

      Indeed, and ActiveStates python for IIS is simply flawless.

      Best thing about Python , is it's got that easy readability thing that made all the suits switch from specifying COBOL to specifying VB (Which I believe has taken the role of the "New cobol" , but for windoze only {ie business logic lang}

      Plus a good reason to encourage the suits to let you do the code in python is that its so damn easy-yet-powerfull that they don't have to lock down on a particular coder. Any new coder who can't ultra quickly learn python WILL NEVER learn to be a usefull programmer, due to mental deficiency.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    11. Re:Ouch! by clebin · · Score: 1

      I bet they were so pleased to discover that they asked you for ASP and you wrote it in PerlScript. It was probably a blind assumption of theirs that you would use VBScript, but even so... if you did that to me your services would not be required again.

      That's not say I like VBScript - in fact, I cannot believe anyone would design a language as poor after all the decades of research into good syntax.

      With C#/Db, M$ realised that Java was popular with progrmamers and basically sought to copy the syntax. That's not to there haven't been Java-like languages, but the two are often indistinguishable from each other.

      I just can't wait for MS people to disregard Java's role in the making C# by remarking they've never seen such a well-designed language (and so much faster than Java too, so who cares about the other OSes?)

      Chris

  18. Re:Run Away Run Away by DotComVictim · · Score: 1

    Please read this article with the same grain of salt you would read a Linux advocacy article from the CEO of RedHat.

    One should always be aware of any vested interest or bias of opinion from a news source. There are very few truly impartial third parties. The fact that the party in question here is Microsoft makes me question the motiviation no more than any other party.

  19. C# doesn't make any sense... by burtonator · · Score: 1, Insightful

    I don't know why anyone would be excited about C# unless they were also excited about Windows (I don't have to explain to anyone here why windows isn't too exciting).

    C# basically is a clone (some would say rip-off) of Java with none of the benefits.

    The Java world is actually doing very well now. We have a lot of solid Open Source projects (Jakarta, Tomcat). The standards that do exist are very robust (Servlet, standard API, etc) and there is a lot of brainshare here.

    There are tons of JVMs available. Can I run C# on Linux? FreeBSD? Solaris?. And if so can I port this code to another alternative non-MS platform? Linux and FreeBSD have had modern JVMs for a while now.

    We are also making significant progress on Java integration with GNU/Linux (AKA not the proprietary SUN Java VM but a Free Software VM meeting the same spec level).

    GCC 3.x will include support for 1.2 class JVMs (except for AWT but we are working on this). This means that all newer modern GNU/Linux machines will be able to execute Java code.

    I liken this to the proprietary SSH vs OpenSSH relationship. There is the proprietary Java VM from SUN which can be used on Windows, Solaris, etc. The Free Software community now has GCC (with GCJ), Jikes RVM, Manta (all OSS VMs), that they can use and still remain free (all of these examples are under the GPL)

    No thank you. I will stick with Java.

    Kevin

    1. Re:C# doesn't make any sense... by Anonymous Coward · · Score: 0

      "I don't have to explain to anyone here why windows isn't too exciting".

      No please. Go ahead. I am all ears. The windows world has indeed produced scores and scores of genuine hackers(not crackers) and reversers. May be you are right though... it should have been very boring.

      "C# basically is a clone (some would say rip-off) of Java with none of the benefits. "

      Wow. Truly insightful. What else? The sun rises in the east?

      "No thank you. I will stick with Java."

      So, why the FUCK did you apply for a position in microsoft..you hypocryte!!!!!

    2. Re:C# doesn't make any sense... by burtonator · · Score: 2

      > So, why the FUCK did you apply for a position in > microsoft..you hypocryte!!!!!

      Huh? What the FUCK (your word, not mine) are you talking about?

      I have never applied for a position in MS.

      Before you insult someone, make sure you get your facts straight.

    3. Re:C# doesn't make any sense... by Anonymous Coward · · Score: 0

      Microsoft has $32B in the bank. Sun is laying off people. Resistance is futile.

  20. Re:Correction: Java byte = C# sbyte by WeeGadget · · Score: 1

    A more careful reading of the article shows that the Java "byte" keyword == C# "sbyte" keyword -- Both are signed byte data types.
    C# has the unsigned byte data type which it labels "byte"... Java does not have unsigned byte.

  21. C# is really kinda cool stuff by Anonymous Coward · · Score: 0

    Language wars abound, and I have no interest in propogating another.But truth is Java has become bloated far beyond
    its original design as a tv box controller. The best comparison I heard was Java was C without the corners, just likebasic is fortran without the corners. C# seems more to me like the best of Java and C++ without many of the sharpest
    corners. I work in a split development world 1/2 *nix and 1/2 Win32 , none of us slashdotter want to acknowlege it but
    most of the desktop world is on windows, so to write a Win32 app your most viable options have been C, VB or some
    other monstrosity on a Win32 box like Java, have you ever tried to run a half a million line Desktop Java app on
    windows. Or to throw a Java app together in a nice pretty IDIOT proof installer so that the person who thinks a
    CDROM is a coffe cup holder can install it with one of the nice pretty MS installers, Java in those aspects , well...it
    sucks
    ....
    Of all the MSVC programmers I worked with once they all had a good chance to work with C# they said theyll never
    write another line of C++ again. For the windows platform it may indeed be great stuff, the one thing that piques my
    interest is its cross plattform future. MS included help files and other pices parts refrence Linux, no whether its MS or
    someone like Ximian with their mono project. The C# stuff is definatley cool. native speed and you can writer in any of
    the dot net languages you want VB C# and yes TCL and PERL have ports to the Dot NET runtimes, heres the deal even M$ says it, from a performance standpoint on a Win32 machine they will all run the same the language choice will
    be a matter of style.

    Some slashdotters out ther perpetually bash MS and I do too from time to time, I run Linux at work and home, but the
    fact is Im in computers to make money PERIOD, If I could make a living out of racing my motorcycles full time Id
    never touch a computer again other than to surf for parts or events.

    To the ends of making money at computers, C# will do great I am sure , the coders I know that have actually worked
    with it on a daily basis love it, and to all the NAYSAYERS out there that say "Oh just another MS product to have
    bugs" sure probably but the wholde of the VS 7 IDE and tools are written in C# , Im sure by the time its released it'll be
    pretty good. And best of all it will make ME MONEY, I write desktop apps , if its quicker and easier.more
    interoperable, which it is it has full inheretence.Im all for it. The fact that 3rd parties are already vigilantly porting the
    runtime to *nix systems tells you its not another Bob

    MS languages for the most part run superbly on MS systems, they suppert both sides of the enviroment. Guess what
    C# is another example, in XP there are already kernel optimization routines for the DotNET stuff,

    If you HAD to program and app for a MS system in a MS language, which would you preffer, C++, VB, VFP, well..... Or
    C# that even C++ programmers who use it on a regular basis say , (and from experience it does) rocks as far as MS
    languages go.

  22. Power of Java, Functionality of Windows by ClubStew · · Score: 5, Insightful

    I admit that Microsoft is once again trying to dup Java, but, if you like Java and wish to work with platform-dependant API's that do more with Windows than Java, C# is your answer!

    As the article mentions, C# has almost the exact same syntax and keywords that Java has (plus PERL's foreach operator...kudos). There is almost no learning curve. You can leverage the functionality of Windows with C# however, and it has great XML support; so, if you've worked with the MSXML parser, you'll have no problems working with XML in C#.

    C# deserves a little more credit than many give, at least if you're working in a strict Windows environment. It's worth a look.

    That's all I have to say, but I'll pile on the on wood for the flames that will arise!

    1. Re:Power of Java, Functionality of Windows by the_2nd_coming · · Score: 1

      if it has the exact same syntax as Java, then I would think that SUN can just squash C# from a copyright lawsuite.

      --



      I am the Alpha and the Omega-3
    2. Re:Power of Java, Functionality of Windows by Alpha+State · · Score: 2

      C# deserves a little more credit than many give, at least if you're working in a strict Windows environment. It's worth a look.



      If I'm working in a strict windows environment why would I not just use C/C++? I'm not trying to flame but I would like an answer as I've had no reason to even investigate C# since it was announced.



      To put it another way, platform independance has always been Java's biggest drawcard. What is then the attraction of C# - simply the integration with .NET?



      Even worse, if I write a program in c# it cannot be ported to another platform (as with C++), until C# starts working on it.

    3. Re:Power of Java, Functionality of Windows by Anonymous Coward · · Score: 0

      No one really says "leverage". I confidently predict that your post is astroturfing.

    4. Re:Power of Java, Functionality of Windows by ClubStew · · Score: 3, Interesting

      Granted, C/C++ is my language of choice on any platform (unless you're designing cross-platform code, which Java works great for). You have to admit, however, that C/C++ requires greater thought and strong fingers for all the typing you have to do. C# is an abstract language like Java and requires less (and, yes, it does hide more, which can be bad in some cases).

      Just like any language, each has its strengths and weaknesses. If you're looking for abstraction and rapid development on Windows, C# is worth a look. If you're looking for speed (and, seriously, once the .NET framework is loaded, C# isn't too bad on speed), go with C/C++ for faster code and lower-level calls and memory management and stuff.

    5. Re:Power of Java, Functionality of Windows by EEBaum · · Score: 1

      Took me a second to figure that your title was NOT sarcastic...

      I've always gotten the impression that C# has the learn-in-a-day simplicity of C++, the lightning-fast performance of Java, and the do-anything versatility of Visual Basic.

      --
      -- I prefer the term "karma escort."
    6. Re:Power of Java, Functionality of Windows by Anonymous Coward · · Score: 0

      To put it another way, platform independance has always been Java's biggest drawcard.

      No, that's just what Sun markets as it's biggest drawcard. But Java is obviously making huge inroads in the server space, where most people are just running it on Solaris with no intention to ever change platforms.

      Java's biggest advantage in that case is that the language is so much nicer than C++ for rapid development and it's easier to hire Java programmers than C++ programmers because the language is so much simpler.

      Same goes for C#, I can only assume.

    7. Re:Power of Java, Functionality of Windows by Jonboy+X · · Score: 1

      C# has built-in XML parser support. Java has any number of semi-standard packages for XML parsing, like IBM's XML4J. Eh. As a Java developer (yes, working for McNealy's cohort) I can tell you that the real focus has been on the enterprise/web developemnt stuff like J2EE, and a big part of its selling power is that it's a pretty open standard. You can pick and choose your app server, database software, or darn near any other software (or hardware) component, and it should still work. The Java language itself is tres cool, but that's not why business build solutions on it. It's close to the ubiquity and platform-independence of Perl, close to the performance of native code, and close to the code scalability of a pure-OO language. It's a nice compromise, but there will always be languages/environments that do certain things better.

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    8. Re:Power of Java, Functionality of Windows by Anonymous Coward · · Score: 0
      C# deserves a little more credit than many give, at least if you're working in a strict Windows environment. It's worth a look.

      After a couple of years, do you think Microsoft will really give you a choice?

      I don't understand why people get so fucking excited about C#. It is just another Visual Basic. Nothing new here. As such, it doesn't even come close to comparing to Java.

    9. Re:Power of Java, Functionality of Windows by tshak · · Score: 2

      Actually, unless you are doing driver writing or native GDI or DirectX calls, many have concluded that C# is just as fast, if not faster, then C/C++. This is all coming from tests with Beta2, so I'm sure the final release will be even more promising.

      Of course, I don't anticipate the Quake IV engine being written in C#!

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    10. Re:Power of Java, Functionality of Windows by Anonymous Coward · · Score: 0

      JAXP (and the sun/apache backend for it) is being included with core Java 1.4.

    11. Re:Power of Java, Functionality of Windows by Anonymous Coward · · Score: 0

      You unintentionally point out something profound. C# and Java are nearly identical in every way.

      The vast majority of Java programmers these days migrated from Visual Basic. C# is Microsoft's attempt to stem the tide of VB->Java migration.

  23. it's slashdotted...... by jeffy124 · · Score: 1

    .. hmm. 25hoursaday.com. They may need that extra hour to recover from the slashdot effect.

    --
    The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
  24. Go Here: by B00mZilla · · Score: 1, Informative

    I couldn't get to the /. link either, but this site works fine: http://www.kuro5hin.org/story/2001/11/18/152437/24

  25. Access Privileges by inepom01 · · Score: 1

    NOTE: The default accessibility of a C# field or method when no access modifier is specified is private while in Java it is protected. Actually, the default access modifier in Java if none is specified is package private, not protected.

  26. Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0, Offtopic

    Time and again ergo98 has posted comments that are heavily skewed in a pro-Microsoft light. Could he be one of billg's employees, trolling Slashdot for fun? It's worth considering at least.

    1. Re:Would you trust a Microsoft apologist? by DrPascal · · Score: 1

      This is the biggest pile of FUD I have ever heard. Just because someone is casting a positive light on Microsoft does NOT mean that they are working for them. He is simply making the argument that C# is abstract enough to run on OS' other than Windows, and that the parent post of his was uneducated about the inner working of C#.

      Having played with C# myself, I can say that it -could- have JIT compilers made for other OS' (and probably will), but the MS JIT Compiler will be the standard to compare/debug your codebase with. It'll be similar to Java in that respect (anyone remember "Write once, debug everywhere"), yet the MS JIT will have a little more pull than the other ones.

      How do we know you aren't working for a Microsoft competitor, and that is the only reason you are trying to downplay a positive comment? It's worth considering at least.

      Then again, we ARE on Slashdot, which is about as biased as Microsoft.com in some respects.

      --
      DrPascal: Not the language, the mathematician.
    2. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      Oh, so you want some now too, turfboy? You sound like a Ballmer-licker to me. SLUUUUUUUUUUURP.

    3. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      Then again, slashdot is not putting companies out of business and is not an illegal monopoly. Ergo is for the enemy who is doing their best to destroy linux, opensource, and competition.
      So you'll pardon me If I think he and MS should go to hell

    4. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      Name just a single example of a company slashdot has put out of business.... How empty can accuses be?

    5. Re:Would you trust a Microsoft apologist? by ergo98 · · Score: 2, Insightful

      Actually I'm hardly an MS advocate. For one I think they have a ridiculously lax attitude towards security (how many times do buffer overflows have to occur before someone says "Uh, maybe we should audit the IIS code where non-trivial stack variables are used....". I also am actually pushing at my company AGAINST a .NET initiative, or rather for at least seriously evaluating J2EE as a primary competitor.

      Having said that regardless of my approach for them, I'm not a zealot. That means that I'm not an AC wanker running around trying to expose MS employees because someone says something good about MS (and regardless of your religious zealot opinion a lot of things MS does and has done ARE quite impressive).

      BTW: I suspect you're just a Sun employee anyways.

    6. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      Slashdot put "Dave's Shareware" out of business.

    7. Re:Would you trust a Microsoft apologist? by LegendLength · · Score: 1

      He's a wallhacker too.

    8. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      What the hell is a "wallhacker"? Is that some geek code meaning "The person who uses this term is a real 31337 haxxor?".

      P.S. Quit masturbating so much LegendLength

    9. Re:Would you trust a Microsoft apologist? by LegendLength · · Score: 1

      Aww, how cute, an anonymous follower!

    10. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      Andover.net? (Ah, those were the days... back when a sellout was a sellout)

    11. Re:Would you trust a Microsoft apologist? by Anonymous Coward · · Score: 0

      thank you for your confession

  27. But what if.... by CoolVibe · · Score: 1
    the open-source initiative builds a C# workalike? If the language spec is known, and motivation is there, a C# for less restrictive environments (as in non-win32) is bound to pop up.

    It doesn't have to be based on Microsoft's code, you know. IANACW (compiler writer), but I think that sort of thing can be done. It's only a language. Look at python, or better yet, Jython (or whatever it's called nowadays). A Python byte compiler that creates java bytecode. Surely that can also be done with C#, I think

    Or even better (and probably harder to do) would be a C# compiler that creates machine code.

    Is this a good idea or is it just dead wrong?

    1. Re:But what if.... by spongman · · Score: 2
    2. Re:But what if.... by CoolVibe · · Score: 1
      *crawls back under the rock I came from* (duh, I knew about that... *slaps forehead*)

      But still, my point is kind of valid. I see lots of people moaning. If there is a GNU/OSS equivalent going to be out there, what are people going to be worried about? As we all know, nothing can out-feature open source... (and I don't mean that negatively)

      I for one am still a little skeptic, but more along the lines of the old: "Oh, god, not another language".

    3. Re:But what if.... by arkanes · · Score: 1

      This is essentially the basis of .NET - many languages, one runtime. All you need is a .NET compiler for the languages of your choice. VB .NET and C# both (can) compile to the same bytecode, which is then run (or compiler) by the .NET CRT. There are .NET compilers in the works for various other languages - Perl for certain, I believe also Python and Java.

  28. Java != Sun by RichiP · · Score: 5, Informative

    Although Sun engineers are handling the boards, the direction of Java is mostly influenced by the general public through the Java Community Process (See http://www.jcp.org/). Sun simply acts as an arbiter and caretaker.

    If there are any good ideas in C#, there's really no reason it couldn't be adopted by Java. Someone just has to submit a request

    1. Re:Java != Sun by Anonymous Coward · · Score: 0

      The jcp is just another name for "large corporate board". You have to pay $5000 to have any input at all or else you have to qualify for their "individual expert" status, which allows you to only input on one Java Specification. This is not a particularly easy way for members of the public to make their input - even members of the "Java Developer Connection" aren't allowed input - however it is much easier for the biggest software corps to have some say.
      Input on new specs isn't really nearly enough as a lot of the biggest changes needed to Java are in the implementations in their standard provided libraries. Personally, I'd just be happy if they'd allow the public to submit bug fixes or proposed code changes - not promise to use them but provide an easy mechanism for their submission and perhaps allow public forums on some of the larger changes, or in class additions. That's the kind of input I value most. Instead I end up having to rewrite their classes because of bugs or performance problems and if time doesn't permit that I just end up with Bugzilla entries saying "Bug in Java codebase, see java bug #suchandsuch." I haven't been able to close one of those bugs yet.

    2. Re:Java != Sun by tshak · · Score: 2

      Right, and that's why Allaire, IBM, and others are paying huge royalties to Sun for their Java Application Servers.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:Java != Sun by Kerg · · Score: 2

      Actually I doubt IBM is paying huge royalties for their J2EE implementation. Just search the J2EE related news articles that appeared about 12 months ago to find out why.

  29. deterministic finalization is absent by Anonymous Coward · · Score: 0

    Too bad C# does not have deterministic finalization - Java also made that mistake. Deterministic finalizations greatly reduces the amount of code you have to write, makes the code more threadsafe and you don't have to worry anout non-memory resource cleanup.

  30. urm yeah, 'up and coming dev guys' take some advic by Anonymous Coward · · Score: 0


    if you are a hobbiest, if you are sitting in your dorm room and want to learn something 'neat', learn java. If you want to make money, learn C/C++ in *nix or windows, or c#.

    java is a toy

  31. Oops!!! Nevermind. by B00mZilla · · Score: 0

    Didn't realize they were linking to same damn page. Sorry. Well, hell, I'm never modded up anyway, so who cares?

  32. Big companies... by Eusebo · · Score: 4, Insightful
    I work for a rather large international bank and I can say we've been moving away from Microsoft as fast as you can say "dot net". From what I've seen this is true of many of the other firms in the financial sector as well. I suspect a large part of the reasoning is not the superiority of Java, but rather is the "anything but Microsoft" syndrome in effect. I seriously doubt that C# will be considered here as a replacement for Java any time soon.

    I have a feeling that C# will be adopted by Microsoft's technology partners, but why would any firm that has spent time and money moving away from Microsoft products go running back because of a new product offering? Its not the products we're trying to get rid of, its the company.

    --
    It is quite simple
    Haiku should not be funny
    Try a Senryu
    1. Re:Big companies... by Anonymous Coward · · Score: 0

      Perhaps, being bankers, they have been reading all of the recent press releases concerning the subjects Microsoft, privacy and security.

      Examples are the Microsoft's attempts to keep security holes private and top secret even while all the crackers MUST know, patches that don't patch and patches that break other applications.

      Yeah, what a mystery it is that bankers are deserting Microsoft!

    2. Re:Big companies... by Anonymous Coward · · Score: 0

      we in the telecom sector have been dumping sun and java, so, I guess it all depends

    3. Re:Big companies... by Anonymous Coward · · Score: 0

      Really?

      The name of your large financial bank wouldn't be Al Qaeda, would it?

      If so, I could understand the desire to wish to eliminate Microsoft.

    4. Re:Big companies... by Anonymous Coward · · Score: 0

      I have do doubt the terrorists have MS in their cross hairs. It's just a matter of time before the big one drops on redmond. Comments like yours don't help though.

  33. I'm impressed by C# -- the language by GCP · · Score: 5, Insightful

    I've been a fan of Java since it was still in alpha, in early '95. I even wrote a piece of the Swing API. I'm still a Java fan (and developer), but sadly not for GUI apps. MS ("we own the client") and Sun ("we're not going to let this become just a better way to write Windows apps") collaborated to kill Java as a viable way to produce commercial-grade consumer GUI apps.

    We need a modern, productive system for producing new high-performance GUI apps: apps that look and feel as if they'd been written in C++ -- without the crashes and slow dev cycle. I'd give up some of the flexibility of C++ (you can write drivers, create an OS, build a browser, it's a dessert topping AND a floor wax) for something truly optimized for what matters most in creating superb GUI apps quickly and well.

    I've had high hopes for Eiffel and some others to evolve into the successor to C++ for GUI apps, but it never happens. The inertia of programming languages is immense.

    The next to step up to bat is C#. I like the language a lot and think it lends itself to great dev systems. I'm suspicious of the bytecode aspect, though. ("Faster than compiled!", "It actually is compiled!", etc. Yeah, so why isn't Solaris written in Java?) I'm afraid that aspect will still require that "serious" apps be written in C/C++.

    I like even less that it may remain Windows-only. If it does remain Windows only (for all practical purposes), I suspect the blame will belong just as much to MS haters dismissing it primarily out of bigotry as to MS for optimizing it for their own platforms.

    I'd like to see the open source community look at it with the same eyes as if it had come out of some smelly hacker's basement.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:I'm impressed by C# -- the language by Anonymous Coward · · Score: 0

      I used to agree that java GUI's sucked, but thats all rapidly changing. They're plenty of great, fast, Swing interfaces (look at swing sightings at java.sun.com somewhere) as well as some bulky slow ones (look at swing sightings again :). I'm quite happy with JEdit and jPathReport and many other programs, and quite unhappy with Forte-like memory hogs.

    2. Re:I'm impressed by C# -- the language by rbeattie · · Score: 1


      If you're looking for a faster java GUI library, try SWT from IBM (now Eclipse).

      In the /. article a short while ago about Eclipse, the new open source IDE for Java (and other things) released by IBM it mentions SWT. It's open source and comes with the Eclipse download. The idea is that it makes JNI calls to the base OS for the GUI, so it's fast. I've just started playing with it and it seems to do a lot of things that SWING does, but just a whole lot faster. It even includes the ability to work with OLE docs, etc.

      I can't say much more about it because I haven't had much time to play with it much. But also SWING is supposed to be 30% faster in Jave 1.4 - whatever that means - and SWT seems like a cool idea. I think that the Java people are sick of not being able to create proper GUI apps and are starting to do something about it.

      -Russ

      --
      Me
    3. Re:I'm impressed by C# -- the language by glwtta · · Score: 1

      I'd like to see the open source community look at it with the same eyes as if it had come out of some smelly hacker's basement.

      Then for the universe to maintain it's balance, MS would have to view smelly basement hackers with the same eyes as they view... well, themselves. One of the biggest gripes that smelly basement hackers have at the moment (myself included) is that Windows is so dominant on the desktop - embracing Windows only technologies (in the hopes that MS might later bestow them on others less worthy), just doesn't seem like a good way to change that.

      Yep, it's a political thing that is interfering with technological advancement - but that's the world we live in. Capitalism vs. Socialism (in the software development arena) continues.

      --
      sic transit gloria mundi
    4. Re:I'm impressed by C# -- the language by DSCreat · · Score: 1

      "Faster than compiled!", "It actually is compiled!", etc. Yeah, so why isn't Solaris written in Java?
      I'm so tired of hearing this speed argument over and over again. Solaris is an OS; OS needs to manage memory; Java hides memory management. Also, some native code should be there to provide the first layer over IO. Right tools for the job, man!

    5. Re:I'm impressed by C# -- the language by Anonymous Coward · · Score: 0

      How foolish to be impressed by C# the language, since it's largely a blatant clone of Java (whether that's a good idea is another issue).

      Most of the new, dare I say, "innovations" in the language are just syntactic sugar. Nothing precludes Sun et al from deciding that some of this syntactic sugar should be borrowed and added to the Java language. Being syntactic sugar, most of it could be easily added without breaking a single line of existing Java code.
      I'm not saying copying a successful language is a bad thing, just that Java has been gaining steam for 5 years until C# is billed as the latest greatest new thing.

      As far as Java Swing, Java long ago lost the battle for client apps. This is most sad because Swing is such a clean API to code GUIs in.

      On the positive side, the browser is increasingly becoming the client UI of choice, and at least for Web services, Java servlets/JSP will continue to gain market share. In this wrinkle, IE is the platform (at least for 90% of folks), and Java is the implementation language behind the scenes spitting out HTML (yes there are plenty of other alternatives to Java/JSP to build Web-based systems).

      I think the threat against Java here is that servlets and JSP are simply the foundation or middleware to build Web-based systems. JSP still doesn't have a standard tag library. From what I've heard, ASP.Net/WinForms will have a leg up in supporting custom UIs that target IE-only browsers. Since IE is already dominant, it's just a matter of time before Web developers eschew standard XHTML/CSS, and instead choose IE-proprietary features.

    6. Re:I'm impressed by C# -- the language by cyberlync · · Score: 1

      I work with java every day and for client side apps it is slow. There is not way around it, the vm startup time alone is enough to frustrate most users. Of course, none of this applies on the server side.

      --
      I'm a programmer, I don't have to spell correctly; I just have to spell consistently
    7. Re:I'm impressed by C# -- the language by Steveftoth · · Score: 1

      Another reason that java is not the language of choice for IO, all io is blocked! At least until version 1.4

    8. Re:I'm impressed by C# -- the language by sleepingduke · · Score: 1

      "The idea is that it makes JNI calls to the base OS for the GUI, so it's fast."

      But that doesn't make it cross-platform, it just means it's a fast Windows only thing. There is a huge amount of work involved in adding a higher level api on top of the JNI stuff, and ensuring that code will behave in an identical manner on every platform.

      I believe Swing is 30% faster in JDK 1.4 because Sun ignore their own api internally and make use of Java's dynamic programming/reflection capabilities. Sun have tended to use Java as though it is a static language like a stripped down C++.

      For example, why would you want to use a class called 'EventListerList':

      "This utility class is use by many Swing classes to maintain lists of event listeners..."

      Why do I want to maintain lists of event listeners, and forward events - isn't that the sort of thing the GUI toolkit is supposed to do?

      Microsoft wanted to add delegates to Java, which seems perfectly sensible to me, as it would mean less subclassing. And I'm sure the event handling in .NET isn't a DIY kind of thing.

      -- Richard Dale

    9. Re:I'm impressed by C# -- the language by rbeattie · · Score: 1


      The Eclipse stuff also includes .so libraries for Linux/*nix too, so it's not only Windows.

      In my opinion this is a good direction to take. If you want to do sound in Java, for example, you need to have platform specific solutions (except for the most generic uses). The same for GUI stuff...

      But what's a delegate? And why is it useful in Java?

      -Russ

      --
      Me
    10. Re:I'm impressed by C# -- the language by Anonymous Coward · · Score: 0

      And Java is a subset of C++, so what's your point?

      Microsoft could simply claim that they stripped down C++ and added pascal style intermodule dependencies and garbage collection, both logical things to do for an apps level language.

    11. Re:I'm impressed by C# -- the language by GCP · · Score: 1

      "How foolish to be impressed by C# the language, since it's largely a blatant clone of Java"

      Almost everything about Java was taken from some prior language, yet that doesn't bother me. I was impressed by Java. It put a lot of useful features into a single language. Much appreciated.

      C# is a better Java (as a language). An improvement on something that was already impressive is more impressive. They copied the things I liked, and added some more things I like. Woohoo.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  34. False by Anonymous Coward · · Score: 1, Informative

    How nice of you to engage in FUD. You've heard the term? Fear-Uncertainty-Doubt

    So allow me to eliminate some of your FUD, right here, right now.

    It's true that as of right now the .Net platform only runs on a subset of Windows products(i.e. they do not intend to support Windows 95), and there is debatable evidence that it will support other platforms.

    This notion that it requires Windows Messenger and .Net passport is absolutely false. No such requirement exists, and none shall ever exist. To make such a claim is to prove you have no understanding of what .Net is.

  35. Multiplatform increasing in importance by GunFodder · · Score: 4, Insightful

    It sounds like C# has some nice features that Java doesn't, but I have my doubts that Microsoft will make it multiplatform. And that is becoming more important as the range of computing devices widens.

    Servers tend to run Unix or legacy OSes. Embedded devices run Palm OS or a free Unix like Linux or BSD. Phones run all kinds of custom software. The only platform that Windows rules is the desktop, and that market segment just shrunk for the first time in history. How can C# dominate if it only runs on one type of device?

    1. Re:Multiplatform increasing in importance by Anonymous Coward · · Score: 0

      How can C# dominate if it only runs on one type of device?

      Simple... that one type of device accounts for 90% of the computing world.

    2. Re:Multiplatform increasing in importance by Malcontent · · Score: 2

      Correction 90% of the desktop software. A market getting smaller every day.

      --

      War is necrophilia.

    3. Re:Multiplatform increasing in importance by Anonymous Coward · · Score: 0

      Right, because Java has done such a wonderful job of unifying all of those platforms.

  36. my $0.02 by vscjoe · · Score: 5, Insightful
    I think from the level of people who make decisions about what programming languages to use on commercial projects (this includes me), the technical distinctions between Java and C# are of little concern: the languages are so similar that they are basically interchangeable. What matters is who supports it, what libraries are available, how mature are the implementations, whether it's a single-vendor or mult-vendor solution, how well it integrates with the platform, and how many programmers are available.

    For pure Windows programmers, C# wins there and will probably be picked up by lots of VB and VisualC++ programmers. But people who live in that world are already not using Java. For everybody else, Java seems to win hands down. I think C# will neither be a complete failure nor will it do much harm to Java.

    1. Re:my $0.02 by glwtta · · Score: 1

      I absolutely agree, from what I've seen so far, what C# is doing is brinning the features of a modern language (eg Java) to Windows development.

      The battle for the enterprise platform will be fought on the level of .NET vs J2EE (plus whatever else) - and most likely in broader than that: MS vs Sun vs "Community", not something as trivial as a consideration between two nearly identical languages.

      C# seems to be nice and have a few things Java doesn't, if they do prove to be popular, I can't see them not finding their way into Java (unless we get to the point of patented language constructs by that point, of course)

      --
      sic transit gloria mundi
  37. not quite closed by jeffy124 · · Score: 2

    Disregarding the fact that Java and C# are both "closed" languages

    While I cannot speak for C#, I can dispute your comment about Java. You can download and view the source to the JVM and other Java tools. But Sun's so-called "Open source" disallows distribution of changes to the code. (so you're partially correct)

    But users can send in ideas via their BugParade. See http://developer.java.sun.com/developer/bugParade/ index.jshtml for more info on bugs and RFEs (Requests for Enhancements). Some of the suggestions are finding their way into the baseline - like generics (currently in development) and asserts (in 1.4 beta).

    I dont if that can be done with C# - but given MS's track record, I would be surprised if they do.

    --
    The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    1. Re:not quite closed by Anonymous Coward · · Score: 0

      The fact that Sun can sue you at any time for distributing a JVM that they don't like is proof enough that they are closed and proprietary.

    2. Re:not quite closed by jeffy124 · · Score: 1

      the fact that they look to outside the company in some of the development of Java shows some openness. Plus they use open standards like XML and SOAP - not proprietary ones like MS traditionally uses.

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    3. Re:not quite closed by MrBoring · · Score: 1

      I thought XML and SOAP were very tightly integrated with .NET. Also, keep in mind that MS is a decision maker on the XML board, so it's not like they're totally against it.

    4. Re:not quite closed by Anonymous Coward · · Score: 0

      Dude, Microsoft, along with two other companies, FUCKING INVENTED SOAP. Now go get yourself a clue already.

    5. Re:not quite closed by jeffy124 · · Score: 1

      they are

      but i never said MS was against it - just said that Sun uses open standards and used those two as examples.

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    6. Re:not quite closed by jeffy124 · · Score: 1

      Dude - I never said MS was against SOAP. I just used SOAP as an example of a standard Sun follows. Now YOU get a clue.

      --
      The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
    7. Re:not quite closed by Anonymous Coward · · Score: 0

      Goddamn. You're an idiot

    8. Re:not quite closed by Anonymous Coward · · Score: 0

      Shut. The. Fuck. Up. IDIOT

  38. Re:urm yeah, 'up and coming dev guys' take some ad by easter1916 · · Score: 2, Informative
    If you want to make money, learn C/C++ in *nix or windows, or c#.
    How does $100K/year sound to you? I'll stick with Java, thanks.
  39. Java vs. C# by Glock27 · · Score: 1
    From a technical perspective, I'd like to see Java get some of the features of C# (only better of course;). Operator overloading and lightweight classes are both good ideas (although operator overloading can be done now with a preprocessor like jpp). Perhaps these features will make it into one of the Java clones like gcj.

    Regardless of the technical issues, I think everyone involved in software development should think long and hard before committing to a Microsoft-inspired approach. Microsoft's track record on getting people to buy into platform lock is clear. It is in your company's best interest to avoid Microsoft lockin in almost every case.

    One of the saddest things that's happened in some time is the Mono team's committing to C#. It should have been gcj. Shame on them for encouraging the use of Microsoft's platform. IMO, Ximian can be well assured that Microsoft will either change, patent or extend things until Mono is irrelevant in the end - after lots of Open Source energy has been expended on that dead end.

    On the other hand, Java continues to gain momentum in almost every area. There are good VMs available on every important desktop platform (as well as most embedded and server platforms). Go forth and code! ;-)

    299,792,458 m/s...not just a good idea, its the law!

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  40. checked exceptions by Anonymous Coward · · Score: 0

    The absence of checked exceptions in C# is stupid. Checked exceptions are one of the correctness-helper thingys that has made Java so popular in the enterprise computing world. C# is like a Java without the Bondage & Discipline that makes Java so suitable for use for business logic. Java is great for mixed-experience teams of porgrammers, unlike C#, which combines most of the disadvantages of C++ with most of the disadvantages of Java.

    1. Re:checked exceptions by Anonymous Coward · · Score: 0
      Checked exceptions rule. The article said that in C# you would have to document your exceptions so other programmers would know what to do when they got them. With Java it's not an issue because the code is self-documenting in that respect.

      As for the argument that there would be too many exceptions to keep track of, I say you have a problem with how you approach programming if that's your thinking. If you can't handle well-organized, comprehensive error checking, why should anyone trust you to make a well-organized, comprehensive, error-free program?

  41. Re:urm yeah, 'up and coming dev guys' take some ad by Anonymous Coward · · Score: 0

    How does $100K/year sound to you?

    Piddling.

  42. Re:urm yeah, 'up and coming dev guys' take some ad by Anonymous Coward · · Score: 0

    How does $100K/year sound to you?

    Like a sad excuse at waving your small dick for the approval of a minor AC troll.

  43. Isn't this due to the GC model? by Anonymous Coward · · Score: 0

    I may be mistaken, but I recall this issue being based upon the garbage collection implemented by the runtimes for the languages.

    1. Re:Isn't this due to the GC model? by Anonymous Coward · · Score: 0

      GC and deterministic finalization are orthogonal concepts - they can co-exist. A determinstic "destructor" if you will can call a different function than the finalize method - perhaps Destroy() or something. Deterministic finalization need not be concerned with what other objects may be pointing to that object - it is only a contract to call a certain method when you either go out of scope or when an expception is thrown. Here is a C# language proposal from Microsoft for deterministic finalization. Here is an example:

      using (File f = new File("c:\tmp")) {
      byte[] b = f.Read();
      }

      Personally I think the parens and the block following the using clause are useless syntax that only add more unnecessary verbosity. I think the following would suffice:

      using File f = new File("c:\tmp");


      and the destructor would be called when it went out of scope (just as in C++). Calling Dispose() directly all over the place in try/finally blocks is not only error-prone in my opinion but makes the code less readable and significantly larger.

    2. Re:Isn't this due to the GC model? by Anonymous Coward · · Score: 0

      Try this link as well for a good case for adding deterministic finalization to both C# and Java.

    3. Re:Isn't this due to the GC model? by Anonymous Coward · · Score: 0

      Sadly, it seems that Microsoft is going with the awkward 'using (v1 = v2) { /* code */ }' syntax instead of 'using v1 = v2; /* code */' syntax. When you many such objects to be deterministically finalized this makes for the following ugly code in C#:

      using (File f1 = new File(@"c:\tmp1")) {
      using (File f2 = new File(@"c:\tmp2")) {
      using (File f3 = new File(@"c:\tmp3")) {
      using (File f4 = new File(@"c:\tmp4")) {
      // code
      }}}}

      Instead of:

      using File f1 = new File(@"c:\tmp1");
      using File f2 = new File(@"c:\tmp2");
      using File f3 = new File(@"c:\tmp3");
      using File f4 = new File(@"c:\tmp4");
      // code

      // Dispose methods called at end of block
      // in LIFO order (f4, f3, f2, f1)

  44. Interesting, but there's an error... by ncc74656 · · Score: 3, Informative
    From the linked article:
    In languages like C and C++, each subarray of a multidimensional array must have the same dimensions.
    I'm fairly sure you could do something like this in C or C++:
    int** foo=(int**)malloc(sizeof(int*)*2);
    int* foo[0]=(int*)malloc(sizeof(int)*3);
    int* foo[1]=(int*)malloc(sizeof(int)*9);
    That will set up a jagged array with the same dimensions as in the given C#/Java example. It will be addressable in the same manner. It won't have the bounds checking, but I suspect that the comment regarding Real Programmers and strong typing could be extended to bounds checking. :-)
    --
    20 January 2017: the End of an Error.
    1. Re:Interesting, but there's an error... by MikeTheYak · · Score: 2

      That's not a multidimensional array. That's an array of arrays. Two different creatures.

    2. Re:Interesting, but there's an error... by ncc74656 · · Score: 2
      That's not a multidimensional array. That's an array of arrays. Two different creatures.
      Strictly speaking, C doesn't do multidimensional arrays...but when you can access an element as (for instance) foo[1][6], what's the practical difference? It behaves in the same manner as the Java example (even to the point of having been dynamically allocated). Trying to access foo[0][6] will either return invalid data or will segfault (odds are good it'll return foo[1][3], but I wouldn't bet on it). The commands to set it up are somewhat nasty, but it wouldn't be C if they weren't. Does Java support accessing an element as foo[1,6]? That would be a true multidimensional array...I've run across those in Pascal and even in BASIC, but C and its descendants (including Java) AFAIK has no direct equivalent.
      --
      20 January 2017: the End of an Error.
    3. Re:Interesting, but there's an error... by Fjord · · Score: 1, Redundant

      I agree with you, but then the Java and C# examples of "jagged arrays" aren't multidimensional arrays either: just arrays of arrays.

      --
      -no broken link
    4. Re:Interesting, but there's an error... by Fjord · · Score: 3, Informative

      This isn't right. C can do truely multidimensional arrays. If you say char[30][20] x it does one allocation of 600 contiguous bytes. When you use the array like x[10][10] it computes the full offset as in Pascal and BASIC, and then does a single pointer add. Here is an ok page that talks about C multidimensioned arrays.

      But Java and C# don't actually let you have jagged multidimentional arrays like this. They have like you said in your first post, an array of pointers, which is valid in C. One wonders what the writer of the article thinks argv is (typed char*argv[])

      --
      -no broken link
    5. Re:Interesting, but there's an error... by man_ls · · Score: 3, Informative

      Multidimensional arrays in Pascal are childishly easy, even in insanely large numbers of dimensions.

      type xarray=packed array[0..20,0..20] of integer;
      var data:xarray;

      That's a multidimensional array for you, with a data type so you can pass it to a function.

      If you'd wanted, but didn't feel like passing it to functions (i.e. no data type so it couldn't pass correctly) you could write

      var data:packed array[0..20,0..20] of integer;

      and accomplish the same thing. Either is accessible with a somple

      data[x,y] structure, that can be controlled by FOR/WHILE loops, IF statements, and the like. Last year, I was working in truely 3-dimensional arrays in PASCAL to store data for an airline seating chart.

      type xarray=packed array[0..20,0..20,0..20] of integer;
      var data:xarray;

      data[x,y,z]

      And even 4+ dimensional arrays "worked" but I'll be damned if I could visualize them in any coherant way.

      type xarray=packed array[0..20,0..20,0..20,0..20] of integer;

      It may have been a fluke that it worked at all, but I did a relatively simple program to fill up each space with random data and writeLn() it out, just to see if it worked. For that big of a data structure, you could probably do much better using records, or seperate linked arrays if Pascal can do such a thing.

      I've never done any programming work in BASIC so I can't speak for it's handlig of multidimensional arrays. I don't recall them being too hard from a program I looked at though, something to the effect of

      DIM variable%type% AS array (x,y) or something.

    6. Re:Interesting, but there's an error... by Anonymous Coward · · Score: 0

      bounds checking is easy enough to write.. I wrote a debugging allocation class to handle that.. but bounds checking is slow so when i want the final program I pull my class and put non bounds checking non leak checking allocation in because its much much faster

    7. Re:Interesting, but there's an error... by ncc74656 · · Score: 1
      I've never done any programming work in BASIC so I can't speak for it's handlig of multidimensional arrays. I don't recall them being too hard from a program I looked at though, something to the effect of

      DIM variable%type% AS array (x,y) or something.

      Nothing like that at all...more like this for floats:
      DIM A(20,10)
      Append $ to the array name for strings or % for integers. At least that's how the old-school Microsoft BASIC on various 8-bit boxen worked...maybe Visual BASIC is different, but what little of that I've seen bears about as much resemblance to BASIC as Osama bin Laden does to a saint.
      --
      20 January 2017: the End of an Error.
    8. Re:Interesting, but there's an error... by Ayende+Rahien · · Score: 1, Redundant

      Actually, that isn't what you'll call a multidimensional array, you know.
      It works the same, though.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    9. Re:Interesting, but there's an error... by sg_oneill · · Score: 2


      Mod me offtopic for the .sig reply but....

      Did you know that this...

      "

      Pacifism is objectively pro-Fascist..."he that is not with me is against me."

      - George Orwell

      "

      was essentially Orwell paraphrasing Leon Trotsky (who wrote the rant "Passivism is the tool of imperialism)(Either in context of passivism to the capitalist west or in context to Hitler.. can't remember)

      Bet you didn't know that. :)

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    10. Re:Interesting, but there's an error... by Anonymous Coward · · Score: 0

      The sad thing is that VB still supports $ and % for type declarations, although it's obviously not preferred. (QuickBASIC compatibility was only dropped at v.5 or so...)

  45. foreach...kudos by GCP · · Score: 3, Interesting

    In the alpha days of Java, I suggested to Sun that they incorporate some very popular Perl features, such as a foreach and containers that allowed for such things as "foreach char ch in myString" or "foreach int i in myIntVector" or "foreach int i in 30..1", etc.

    The senior designers repeatedly treated such suggestions with contempt. Arthur van Hoff told me, "If you want to use Perl, just use Perl!"

    The MS people I spoke to in the early stages of C# were very interested in input like this. Where Sun's attitude toward "why can't we have X?" was "because we said so", MS's was "hmm, that would be popular, I wonder if we could find a way...."

    Say what you will about MS, one of their standard techniques for locking you in is to try to make what people are asking for. Contrast this to Apple and Sun ("we're your superiors, so use what we tell you to use"), and Linux ("make it yourself, luser!").

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:foreach...kudos by Weird+Dave · · Score: 1

      In perl, "foreach" is an alias for "for". They do the exact same thing, except that one might read easier in the source code. Not really any point here, just thought you'd think it was interesting.

      --

      Grumble, Grumble
    2. Re:foreach...kudos by MrBoring · · Score: 1

      I think it takes courage to say something nice about MS on this site. Like a prior post said, if you use Windows, C# would be worth considering. It appears to provide more libraries, as part of the base offering, than C++, while offering additional protection and stability. Additionally, if I'm not mistaken, you get the GUI building tools which I've always found painfully easy to use. Contrast that with Sun, who doesn't have such features and makes you manually type in all the AWT/Swing stuff by hand. I'm sure there's supplemental products out there which might alleviate this, but it's still not as easy as having it built in.

      Another point about the FS community bashing MS. If the oss community doesn't like C# because it's "closed" and made by MS, why doesn't it create it's own Java like language instead of relying on Sun? Seems to me that Sun still controls Java, hasn't truely made it an oss language, it has only made it available for free.

      Btw, does anyone else not like the .NET name? It's petty, but how about something that doesn't sound internet related.

    3. Re:foreach...kudos by Anonymous Coward · · Score: 0

      I think the point is that C# probably inherited foreach from VisualBasic, not Perl.

    4. Re:foreach...kudos by Anonymous Coward · · Score: 0

      I hope some of these points are relevant:

      (1)-I would hope that MS would contribute something new to the C# language besides the name, with 5-7 years of added time and a very, very large money bag ($$$)!

      (2)-Evolution works in bits. Sun added enough relatively new things back then. A "foreach" might throw a significant monkey wrench into the mix - specifically, a sacrifice in runtime performance in remaining platform neutral (see end of point (3)). "Foreach" is not the same as "for" even if both are implemented the same in Perl(?). Perl, like other languages used mainly for scripting, has extra runtime "baggage" to simplify life but with certain costs, so a Perl "for" really is a "foreach" in disguise(?) and not a C/Java "for". All this meaning that it's possible that "for" may have been a feature not worth the trouble or possible (as seen in 1995) while keeping programs running efficiently enough across different platforms.

      (Today, despite what they may say, I don't think MS is convinced that C# can be made efficient and cross-platform any more than Java can and possibly less. Ofcourse, you can focus on the apparent efficiency (if this is even true) of .Net programs that get run on Windows only.)

      (3)-Adding to the previous point, MS needs to sell to the developer crowd PERIOD (considering their current loss of developers to Java and their tendency to oversell). They are less likely, I think, to promise what they think is deliverable, as oppossed to what is desireable by the developers. If something needed to get sacrificed along the way, I am sure they will do there best to keep it quiet, and it will be in the area of: programs not running similarly well (or running at all) across multiple platforms.

      (4)-Finally, not everything requested has to be fulfilled. Why, Microsoft, more than many others, tends to fulfill requests only when it is really important to it's bottom line. Maybe that's why I'm still waiting for them to fulfill my order that they show honesty, respect, and proper business ethics - because it hasn't been that $$$$-viable. ( I didn't actually ring them up to ask this, should I have?)

      >

      Not everyone working on Linux responds this way. And for some that may and work for no pay - they do so to enjoy themselves not to cater to others' wishes they may not be willing or able to handle enjoyably - thus the "make it yourself, [Dude or Dudette]".

      "Make it yourself" can be:
      -Prove it can be done if you say it can. I don't know how or don't think it can be implemented very easily or correctly.
      -I don't have time to do what I think is important much less what I don't think is important.
      -I'm the retard. I'm the real "luser", but it does sounds better saying it to someone else!

      .Net is a Microsoft standard. That is what is special about it. It may contribute things here and there but is mostly what already exists (Java-JVM, CORBA, UNO, ..), and it is definitely better than what MS had to offer within their family of standards (old Visual Studio). .Net is a Microsoft standard. That's really what is special and different about it. It is meant to stay amongst MS products and is not for a heterogeneous environment despite their sell. Deficiencies in the more public standards can usually be remedied, but I don't think MS has any true interest in having their platform be "open" and platform agnostic ("XP" is what they do, despite what they say about .Net and interoperability).

    5. Re:foreach...kudos by Anonymous Coward · · Score: 0

      I have to agree with many of your points. While coding some Java today, I found myself muttering, "...those idiots at Sun must live in a freaking laboratory..." because some of the paradigms in Java appear to be developed from a non-real world perspective.
      Example: I'm trying to send a dynamic (depending on what state the user is in) jpeg to a web browser. Sun's JPEGImageEncoder class only handles BufferedImage, but since the jpeg selected is dynamic and a preexisting file, their Toolkit.getDefaultToolkit().getImage() returns an Image class. Well, typecasting Image to BufferedImage didn't work. I found a work around, but that was a pain.

      And let's not forget that, as Sun says JSP wasn't designed to handle this type of work (i.e. JSP's text only) so you've got to use servlets instead of JSP to send dynamic image content back.

      Then there's the fact that on Unix/Linux, you've got to have an X server running in order to use Sun's AWT to do any type of image manipulation even if you are not displaying it on the server, i.e. Apache sends back the data to the client web browser. Sun didn't fix this annoying "feature" until JDK 1.4 beta with the new headless mode. InfoMagick does not require a GUI to be running in order to resize or thumbnail images, so why should Java? The fact that it took Sun this long to recognize this is a major flaw of Java and to address this staggering, and shows that Sun does not listen to real world developers.

      Although my stuff runs off Linux servers, I suspect M$ will kick Sun's ass at some point.

    6. Re:foreach...kudos by Yazheirx · · Score: 1

      Say what you will about MS, one of their standard techniques for locking you in is to try to make what people are asking for. Contrast this to Apple and Sun ("we're your superiors, so use what we tell you to use"), and Linux ("make it yourself, luser!").

      I disagree with your take on Microsoft it seems as if Microsoft's mantra is more akin to - "If we do this we will take market share from Sun and/or Linux? Ok"

      --
      More of my thoughts
  46. In the end, does it matter? by sterno · · Score: 1

    Ultimately the people using these languages tend to base their decisions on the platforms they wish to use and less upon the language. If you are running a Unix/Linux environment you aren't going to seriously consider C#, and for the most part doing work in Java under windows is more trouble than it's worth.

    I think you'll see that in the long run VB, VC++ shops are going to use C#, and Java shops are going to run Java regardless of the inherent capabilities of the languages.

    --
    This sig has been temporarily disconnected or is no longer in service
  47. I resemble that comment! by Erris · · Score: 0, Flamebait
    You should do what's best for the client.

    How can anyone say that IIS is good for a client? Constantly rebuilding virus infested desktops is good for no one. While you have to give the poor devil what they ask for, you might try a few predictions so that when things go south you can come in and fix thing right. Good luck.

    Security sure is a bitch when you don't have real user accounts.

    --
    DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
  48. Re:urm yeah, 'up and coming dev guys' take some ad by easter1916 · · Score: 1

    Well, I'm more than happy with it.

  49. Re:urm yeah, 'up and coming dev guys' take some ad by easter1916 · · Score: 1

    And you respond to that? Hmmm.

  50. w00t? no dynamic class loading? by mnf999 · · Score: 4, Informative

    I did not know that (and couldn't read the full description as the site is totally /.ed :(

    I design JBoss, the leading J2EE server and at THE HEART of it is the capicity to dynamically deploy new applications on our application server. I mean that is what application servers are ALL ABOUT.

    in fact (plug) in JBoss we go the extra mile and allow you to hot-deploy (dynamically add classes) the server classes themselves, which neither IBM nor BEA, nor Oracle do.

    So I was curious to know who would win the .net webservices race but it is extremelly clear in my mind, J2EE frameworks will deliver with webservices easier than any C# framework will

    Why? well imagine that ANY time you change your class in C# YOU NEED TO REBOOT THE APPLICATION SERVER, yes, boys and girls that is the simple thing that "dynamic class loading" affords you, without it, the VM is tied to whatever you have at startup.

    GEEEEZZZ!

    --
    The real mnf999 always posts as anonymous coward
    1. Re:w00t? no dynamic class loading? by SamBeckett · · Score: 1

      I don't particulary like C# or Java, but I do some development on engineering web applications with Java servlets.

      Dynamically updating an application server is no big deal in my mind-- the only time it is _really_ useful is during development. Otherwise, it's a "nice" bonus, but not entirely useful.

      LISP and other interpreted enviornments have had this feature for years-- look where they are now.

    2. Re:w00t? no dynamic class loading? by Anonymous Coward · · Score: 0

      Actually, you can do dynamic class loading in C#. Or any .NET language for that matter. But it's good to know that the "designer of JBoss" takes what Dare Obasanjo decides to post to Slashdot as fact.

    3. Re:w00t? no dynamic class loading? by glwtta · · Score: 1

      Yeah well being a developer the part where it is very useful interests me a great deal.

      I worked for a company where we had our (more science related stuff) programming group - using WebLogic 6 - and the general IT group (which did more infrastructure stuff) - using WebLogic 5 (no hotdeploy, at least they couldn't get it to work) - what's more, the 5 or so people in that group all used the same Linux box for their development stuff: "Build. Deploy. Reboot Server. 'Oop forgot something'. Repeat" X 5!! (they also didn't use Cafe with WL - silly people)

      --
      sic transit gloria mundi
    4. Re:w00t? no dynamic class loading? by Anonymous Coward · · Score: 0

      I may be misinterpreting dynamic class loading but from reading some of the replies I get the impression that the server needs to be rebooted any time a code change in introduced to a running application.

      ASP.NET handles code changes by spawning a new process. New requests are handled by the new process. Existing requests are allowed to complete on the old process. The old process is destroyed once it finished with its requests.

      Nowhere in this process is a reboot (or even a restart of IIS) required. I've found this very useful when developing or performing hot upgrades to a running application.

      Again, this may not address your issue but it might address some of the replies.

    5. Re:w00t? no dynamic class loading? by purplemonkeydan · · Score: 2

      Bullshit.

      If you're doing web services, you don't need to shut down the server. You can just copy the .asmx and and .dll's right over and they will be picked up immediately.

      No shitty XML, EAR, WAR, JAR, BAR, ZAR, XAR, PAR ... files. Just copy the files over.

    6. Re:w00t? no dynamic class loading? by tshak · · Score: 2

      I love how this unfactual stuff on /. get's modded up. I've been developing for .NET Beta 2 (ASP.NET/C#)since August and my deploy script consists of XCOPY. I just overwrite the DLL's and it's done. I've never had to reboot the server here.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    7. Re:w00t? no dynamic class loading? by wadetemp · · Score: 1

      Please, someone mod this comment down. This is a very uniformed comment, and somewhat self promotional as well... a bad mix. .NET dynamically loads EVERYTHING. If running a web application or a web service, simply replace one of the "code behind" DLLs and the next time someone hits your website, it will be running with the new DLL (if that's what you want; you can tie to a specific version too if that's your desire.) In fact, the same is true with client side apps, and apps that pull code off the server. Put a .NET assembly at http://intranet/thing.dll, and any software that uses Assembly.LoadFrom("http://intranet/thing.dll") can have the same capability. Granted, this client side behavior is not as granular as you might say, but it is possible to dynamically load each time you create an instance of the object if you want. You just have to be careful with casting when you're playing with the "same" object that game from different versions of the same assembly.

      Plugs based on misconceptions are not very effective.

    8. Re:w00t? no dynamic class loading? by Malcontent · · Score: 2

      How do you overwrite the DLL? If it's being used don't you have to wait till at least a restart of the application if not a reboot?

      --

      War is necrophilia.

    9. Re:w00t? no dynamic class loading? by sg_oneill · · Score: 1

      Obviously you know something I don't know...

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    10. Re:w00t? no dynamic class loading? by Anonymous Coward · · Score: 0

      He's talking *App Server*, not *Web Server*. Nobody cares that you can dynamically reload a script stored on a drive any more than they care that you can dynamically load the latest html page from from a drive. Loading precomiled code is a far different thing...

    11. Re:w00t? no dynamic class loading? by tshak · · Score: 1

      You simply copy over it. This is a DLL in .NET (C# or otherwise). Not a COM object, for example.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    12. Re:w00t? no dynamic class loading? by Saint+Stephen · · Score: 1

      I love reading comments like this. Blah blah blah YOU HAVE TO REBOOT THE SERVER blah.

      That's so full of shit your eyes must be brown. All it demonstrates is your lack of knowledge in how to do your job. For one thing, even if the dll was locked, all you have to do is cycle the process. But .NET uses Shadowcopy to load the dll, so the original dll is never locked.

      Dumbass.

    13. Re:w00t? no dynamic class loading? by STSeer · · Score: 1

      Loading precomiled code is a far different thing...

      it's not far different, it's identical to what ASP.NET does actually

  51. Having used .NET by f00zbll · · Score: 3, Informative
    I haven't used C#, but I am using .NET on a project. From my experience so far, the .NET platform has a long way to go. It's good that C# will make things easier for developers, but like all languages with wide adoption, bloat will inevitably occur.

    The first release of .NET will still be 2-3 releases from full fault tolerance and enterprise level computing. There are alot of complicated processes in enterprise computing and Microsoft's .NET platform as it stands today is far from meeting those needs. Microsoft has yet to define really useful modules and standards for complex processes that span multiple systems which include legacy VMS systems and modern solaris 8 applications.

    SOAP is great for simple processes, but it is far from adaquate to handle distributed and transactional processes. Using standards like UDDI is a great step towards easing multi-platform integration. Instead of having different divisions of the same company design different API for publishing resources, it will be easier to have a common way of doing those things. It is not uncommon for financial institutions to store information differently. Take a simple think like address. Some places may store the number in a separate field, while others may replace "jr" with "junior". Anyone who has worked with large mixed environments knows this fact. SOAP is a message centric way of doing things. It is not designed for complex processes. The stuff IBM is building around SOAP is more complete than Microsoft's offering, but then again IBM has been at services longer.

    1. Re:Having used .NET by wadetemp · · Score: 1

      So, not having used C#, exactly what parts of .NET have you used? The only thing I think you have said that .NET does not have over IBM's implementations is UDDI (at least I think that's what you're saying.) And that's not true. the .NET framework does include UDDI, and MS's own DISCO system which takes UDDI a step further. Can you please elaborate?

    2. Re:Having used .NET by Malcontent · · Score: 2

      Yesterday I was trying to write an app using VB. I was using the Microsoft.XMLHTTP control but kept getting an error message that said "bad variable type". This was very perplexing to me because I had copied the code from the MSDN web site and was testing it. I spent hours on MSDN, google, and support.microsoft.com trying to find out what this error meant (try typing it into groups.google.com one day) but there was no explation anywhere. After a while I gave up and dug up the winet.dll documentation and wrapped my own VB class on top of that just to duplicate one method of XMLHTTP object. What should have taken a few minutes took about 8 hours.

      This is not the first time this has happened to me. I have spent many hours on google looking to find out what they cryptic error message means and not finding a solution. Alas I am being forced to use this crap but I figure if they don't mind lost productivity then I don't either.

      Perhaps this is what the author means when he says it's not "enterprise ready".

      --

      War is necrophilia.

    3. Re:Having used .NET by sg_oneill · · Score: 1

      It's probably some sorta loopy reference that needs to be menu'd in.
      Loathsome system. If It aint in ASCII , I don't trust it. Took me hours to work that out... Of course you could always use python :)

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    4. Re:Having used .NET by Malcontent · · Score: 2

      Actually I used php to test to make sure the URL was correct and whatnot. Windows development is a drain in productivity unless you use python, perl or php.

      --

      War is necrophilia.

    5. Re:Having used .NET by wadetemp · · Score: 1

      I'm not quite sure I understand your comment, but I'll take a shot at solving your problem: All project settings and references are defined in the project files (.vbproj and .vbproj.user.) They're XML. ASCII if you like. *Everything* you can do with a menu in VS.NET you can do in a text editor, and in some cases you can do more by editing the files directly in a text editor.

  52. Java all the way! by dom_runner · · Score: 1

    Why choose a vendor locked in language, when you can have; write once run everywhere (these days this is more true than ever); program for the webb, 3G mobile solutions (J2ME), desktop, embedded systems etc etc and no vendor lock in! The day MS can show me something equivalent to this I will at least consider their solution!

  53. .NET and Google.com searches by Anonymous Coward · · Score: 0

    Try to do a search of ".NET" on Google - you can't! What a poorly chosen name for a product line Microsoft!

  54. Re:Look closely, M$ still wants you to program COM by Anonymous Coward · · Score: 0

    I bought "Professional C#" (Wrox) specifically because it was a C# book and not a VisualStudio book (well there's 1 chapter on VS, but it's otherwise heavy on notepad and the commandline)

    However, this book was based on the SDK betas was probably primarily written before VS7 betas got wide release. My fear is that the C# book market will go the way of VB and become "How to Use the Wizards".

    But, there is some light at the end of the tunnel. Working in MS shops over the last few years, very few programmers use the utter crap that MS pumps out and instead stick to the core tech -- I've seen hardly any InterDev templates and VB 'web classes'. That's not to say that people don't use that shite, just that it's less common than MS asskisser club makes you think it is. (And the funny thing is that that anyone who did use that crap needs to rewrite from scratch for .NET!)

  55. So how exactly... by Anonymous+Brave+Guy · · Score: 3, Insightful

    ...do you use a language that won't even properly exist until February next year, when Visual Studio.NET will actually be released?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:So how exactly... by ergo98 · · Score: 3, Informative

      Well given that Beta 2 has been available for closing on a year now, and I've had RC1 on my machine for about a month now... That's how I use C#.

    2. Re:So how exactly... by Anonymous Coward · · Score: 0

      XML is listed in yafla.com's meta tags.
      Wonder why ergo98 can't seem to get a Doctype declaration in that there web page. Nor can he get a character encoding.

      and just what the hell are interoperating properties?

    3. Re:So how exactly... by Anonymous Coward · · Score: 0

      Wow a Slashdot stalker. Talk about the epitome of "fucking loser".

    4. Re:So how exactly... by Anonymous Coward · · Score: 0

      Oh yeah well Linux has changed a lot over the last year and by your logic NO ONE is using Mozilla!

  56. My take by nebby · · Score: 5, Interesting

    I've been a Java programmer since JDK 1.0 came out, though I've really done most of my Java coding with server side servlet stuff since the GUI library has, and probably always will, suck the wanker.

    I just recently picked up C# about a month ago. The learning curve from Java was pretty damn low, only with a few different naming conventions and new language constructs. Things such as indexers, delegates, and the like (all of which I feel are positive additons to the language.) The event model, to my surprise, is better than Java.

    Then after learning the language itself I started looking into Windows Forms and nearly spooged my pants. Finally Windows progammers get a clean framework of GUI controls with a powerful modern language behind it (ie, not C++ or VB.)

    Usually if you wanted to make a powerful Windows app you were forced to use C++ since VB didn't really cut it. Now you can use C#. Complex Windows apps are going to be a whole lot easier to write now, nevermind the fact that they'll be able to do remote method calls via SOAP, and be deployed effortlessly (ie, create a Windows Installer in like 3 clicks or something.)

    I have to say, for the stuff I'm writing that I don't need cross-platform compatibility (which I did surprisingly find to work in the case of servlets) .. C# and the .NET framework wins hands down.

    --
    --
    1. Re:My take by alext · · Score: 1
      Ah! Another chance to post the link to IBM's SWT native GUI library.


      Two more and I think we've got a record...

    2. Re:My take by Malcontent · · Score: 3

      You could have used Delphi all along but you seem to think that only products you can use on windows are MS products.

      --

      War is necrophilia.

  57. Langs the same. Companies differ. by mactari · · Score: 4, Interesting

    I've done a little C# programming and I've done more Java programming. Heck, I've even done some J# (http://msdn.microsoft.com/downloads/default.asp?U RL=/downloads/sample.asp?url=/msdn-files/027/001/7 54/msdncompositedoc.xml) programming.

    The things that make these two different as a language are pretty trivial. As a Chem. Eng. professor told me when I asked if I needed to bother with FORTRAN when I already knew Pascal, "They're all different dialects of the same langauge".

    The only real difference is that you'll want to use the dialect best suited to your particular programming task. If you want to leverage code written in .NET quickly and easily and build off of a Web Service on another office's server or if you have hoardes of legacy COM code, you'll use C#. If you have a giant UNIX server farm running JSP you'll use... That's right! Java. If you're a madman who likes to make Frankensteins in your spare time, you'll use J#. :^)

    The biggest difference isn't syntaxical. It's the mindset of the companies behind the code. No matter how many times MS wants to claim C# isn't a Java clone, the point is it's a well-done language based on lessons learned by programmers who are familiar with Java. My only fear is that C#, an excellent language in theory by anyone's measure, is going to be wrung through Microsoft's "profit maximization machine" and be made to do things that, in practice, aren't the best.

    The neat part is that people familiar with C#'s concepts will also be able to quickly learn Java! I wouldn't be too surprised to see some VB programmers turned C# developers start to think, "Hey, you know it wouldn't be that hard to run this on [Linux/OS X/etc] by implementing this idea in Java!"

    --

    It's all 0s and 1s. Or it's not.
    1. Re:Langs the same. Companies differ. by Ozx · · Score: 0

      Good thing that's your Chemistry professor, and not your Computer Science professor, or what he says might actually matter...

    2. Re:Langs the same. Companies differ. by Anonymous Coward · · Score: 0

      Yeah, because Chemical Engineers still don't use computers, just sliderules.

    3. Re:Langs the same. Companies differ. by Tony-A · · Score: 1

      Nah, the Chem prof's right.
      Learn Pascal. write FORTRAN. That works.
      Learn FORTRAN. Write Pascal. Doesn't really work.
      The Chem prof's probably seen the results many a time.

  58. Obasanjo by Anonymous Coward · · Score: 0

    By any chance are you related to H. E. President Olusegun Obasanjo of Nigeria? I've been getting these emails, and if they are for real these Nigerians will deposit very large sum of money into my bank account.

    Can you verify if this is for real? Here is a sample of the emails I have been receiving. They seem to be very persistent, so I figure they must be desperate.

    To:
    Subject: ASSISTANCE.
    MIME-Version: 1.0
    Content-Type: text/plain;charset="iso-8859-1"
    Content-Transfer-Encoding: 7bit

    CONTRACT REVIEW PANEL,
    10 ADEKUNLE STREET,
    APAPA- LAGOS,
    NIGERIA.

    FROM:BARRISTER DANLADI SAMBO.
    ATTN:PRESIDENT/CEO.

    First,I must solicit your strictest confidence in this transaction, this is by virtue of its nature as being utterly confidential and top secret.

    I am the Legal adviser to the Contract Review Panel instituted
    by H. E. President Olusegun Obasanjo to probe/review all Contracts
    executed and payments made during the regime of late General
    Sani Abacha. I have been mandated by my colleagues on the Panel
    to seek your assistance in the transfer of the sum of US$18.5
    Million into your Bank Account. As you may know, the late General
    Abacha and members of his government embezzled billions of dollars
    through spurious contracts and payments to foreigners between
    1993 and 1998 and this is now the subject of probe by my Panel.
    In the course of our review, we have discovered this sum of
    $18.5illion, which the former dictator could not transfer
    from the dedicated account of the Central Bank of Nigeria before
    his sudden death in June 1998. It is this amount that my Colleagues
    and I have decided to acquire for ourselves through your assistance.
    This assistance becomes crucial because we cannot acquire the
    funds in our names and as government officials we are not allowed
    to own or operate foreign bank accounts. We have thus developed
    a, fool proof, legal and totally risk free scheme through which
    the fund can be transferred to your nominated bank account within
    a very short time. The scheme is to use our position and influence
    on the Panel to represent you as a foreign Contractor beneficiary
    of the funds. We shall arrange all documentation to support
    this claim and get Approval for the transfer of the funds for
    your benefit on our behalf. The scheme is perfected to be 100%
    risk free and we are sure the funds can arrive your Account
    within 10-14 working days from when you agree to assist us.
    You should acknowledge the receipt of my mail through the above
    e-mail address so we can further discuss the modalities of your
    cooperation and negotiate the charge for the usage of your Account.
    You definitely have a lot to benefit from this transaction as
    we are prepared to give you 30% of the total funds as
    soon as you secure it in your account.

    Please, endeavor to send me an e-mail indicating your interest
    as to enable me furnish you with my confidential telephone/fax
    number through which we can communicate with you in confidence
    (in your response) as the need for secrecy is great to this
    transaction.

    We expect your urgent response.

    Yours faithfully,

    BARRISTER DANLADI SAMBO.

  59. Re:C# cross platform future by Anonymous Coward · · Score: 0

    C# has as much (or less) cross platform as NT has/had.

  60. Ironic by HL · · Score: 1

    Isn't it ironic that a site called 25hoursaday is down?

  61. I would thing that would be a drawback too, but... by broter · · Score: 1
    • ...imagine that ANY time you change your class in C# YOU NEED TO REBOOT THE APPLICATION SERVER...

    It seems that most of the MS IIS admins I know don't think anything of it. Here at UCLA, they bring the whole URSA (student services) website down for hours on end during the weekend for maintainence and improvements (it runs on MS, IIS). My suggestion that you shouldn't need to bring your whole site down to tweak it didn't even get a reply.

    Funny, but it seems to be the culture. I wonder if most people would care whether MS's stuff stayed up even if they made it as good as a Tandem (?).

    I still haven't figured this one out.


    -RB
    --
    "One man can change the world with a bullet in the right place."
    - Mick Travis, "If..."
  62. Re:Correction: Java byte = C# sbyte by Anonymous Coward · · Score: 0

    Java doesn't have any unsigned types.

  63. Functionality of Windows? by Merk · · Score: 3, Flamebait

    Stupid slashdot lameness filter. Shouldn't a geek site support a means of posting source code??

    Gee, you mean like being able to generate an app that causes a BSOD using a java-like syntax?

    All kidding aside, there are some cool ideas in the language. Support for enumeration is one. Currently most enum-type things in Java are done with integers, and so you have to do bounds checking whenever you get a value. The foreach operator is another nice one. It's a minor change, but it makes certain loops much quicker to write and much more readable. I also like operator overloading. It has never seemed right that in Java "+" concatenates strings, which are objects, but they're the only special object in the system. I admit that in C++ doing operator overloading properly can be hard, but it's a really convenient OO feature.

    The C# way of multiple interface implementation seems like it could be good, but will mostly just cause programmer errors.

    public interface ITeller
    {
    void Next ();
    }

    public interface IIterator
    {
    void Next ();
    }

    public class Clark : ITeller, IIterator
    {
    void ITeller.Next () {
    }
    void IIterator.Next () {
    }
    }

    To me that just looks like a bug waiting to happen. Under occasional circumstances it means you can do something you couldn't otherwise do, but this just looks dangerous to me.

    Mostly though I look at C# and say to myself: "Shouldn't a language that was designed years after Java be better than Java?". Java got rid of the preprocessor. This is a good thing, C# brings it back. That's a bad thing. (I know, conditional compilation is nice, but don't do it with a preprocessor, ick!) And what about reflection and dynamic class loading? Those are some sweet features, especially in a networked language, but in C# they're missing/gutted.

    And then there's just wierd-ass syntax pollution:

    [AuthorAttribute ("Ben Albahari")]
    class A
    {
    [Localizable(true)]
    public String Text {
    get {return text;
    }
    ...
    }
    }

    I can accept the strange getter/setter method, though I think it's dumb. It's just vb-like, with a strange and confusing mix of methods, functions and subroutines. But what's with that array-like crap? Btw, that's also how synchronized methods are declared.

    I wonder if Sun would ever agree to put some of the nice features into Java, or if the language is essentially frozen, and they're going to work on the APIs.

    Btw, the MSXML parser? It's certainly MS, and certainly not XML.

    1. Re:Functionality of Windows? by nebby · · Score: 2


      The C# way of multiple interface implementation seems like it could be good, but will mostly just cause programmer errors.

      The case you mentioned is when two interfaces have the same method declarations. This is by far a rare case, and probably is negligable. The "feature" you point to is just the workaround for explicit overriding Microsoft included, something which, I think, is impossible to do in Java since it won't let you implement two interfaces with identical methods. It's definitely not something to worry about or note as a problem though.

      The bracket'ed stuff is meta information about the chunk of code itself. It's like "smart-commenting" such that other tools can use the data held within. Instead of reserving tons of keywords for things like sychronization, web methods, and god knows what, a lot of stuff uses the attribute feature. I don't see a problem with this, I think it's just because you're not used to it.

      The getter/setter methods are a good thing for tired hands sick of writing method declarations over and over for each member of the class, IMHO.

      You can instantiate objects on the fly, in fact, you can even create new classes and MSIL code on the fly using the Compiler classes! Advanced reflection stuff is all there.. working with Assembly meta data all the way down to method meta data.

      I think you just need to find a better C# book.

      --
      --
    2. Re:Functionality of Windows? by tshak · · Score: 2

      To append your comment on getter/setter methods or "Properties" in C#, it goes beyond just "cleaning up the code". It allows for a cleaner OO design because it clearly seprates properties and methods.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:Functionality of Windows? by Anonymous Coward · · Score: 0
      It allows for a cleaner OO design because it clearly seprates properties and methods.

      And wonderfully confuses them with object fields.

      That's not clean, that is a fucking mess caused by unneeded syntactic sugar.

    4. Re:Functionality of Windows? by Anonymous Coward · · Score: 0

      ...I think, is impossible to do in Java since it won't let you implement two interfaces with identical methods.

      BZZZTT!! Wrong. Try again. Compile the following if you don't believe me.


      public interface If1 {
      public void test();
      }

      public interface If2 {
      public void test();
      }

      public class IfImpl implements If1, If2 {
      public void test() {
      //do something
      }
      }

    5. Re:Functionality of Windows? by ClubStew · · Score: 2

      Right, but how do you control which interface method you use? C# lets you distinguish between the two.

  64. ADD FOREACH TO JAVA! by Nicolas+MONNET · · Score: 1

    Seriously. Everytime I have to write for(int i; i<a.length;i++) dosomething(a[i]); I find it so unnatural.

    Note that this is not exactly a "Perl" functionality, it was avaible in ksh and Lisp languages before that.

    Java (and C# as well it seems) are sooooo fucking verbose, I understand not everybody likes this feature in Perl, but there's something to learn from Perl's popularity, isn't it?

    There are common idioms (such as the "for" I listed above that's equivalent to foreach) that are much more readable if they are easily told apart from more complex things.

    For instance, the for(;;) statement of C/C++/Java/Perl/C# might be much more flexible than Basic's FOR var=N TO M, but the latter makes it clear what you're doing; while the former might have a subtle difference (such as <= instead of <) that's not immediately obivous.

    Perl offers some very interesting shortcuts that increase readability: foreach (1..100) { dosomething } *is* more readable than the java equivalent.

    And when you need greater flexibility, the more complex form is available as well.

    1. Re:ADD FOREACH TO JAVA! by Anonymous Coward · · Score: 0
      You have a syntax error - i is not initialized.

      Perhaps you find the syntax annoying, but most real-world projects I've workded with require more than a standard iterator.

      Can you do this a better way?

      -- java--

      String[][] str;
      //filler code...
      for(int i=str.length(), j=1; --i>=0;) {
      if (str[i][j].equalsIgnoreCase("someval")) {
      i--;//skip the next string
      continue;
      } else {
      if (j < str[i].length()-1)
      j++;
      else
      j=1;
      }
      //maybe do more stuff...
      }


      -- VB --

      Dim str as String()
      ' filler code...
      Dim i, j as Integer
      j = 1
      For i = UBound(str) to LBound(str) Step -1
      if StrComp(str(i,j), "someval", vbTextCompare) Then
      i = i - 1 'skip the next string
      goto continue
      Else
      If j < ubound(str(i)) - 1 Then
      j = j + 1
      Else
      j = 1
      End If
      End If
      //maybe do more stuff...
      :continue
      Next i


      Now, the VB code is 4 lines longer, 79 bytes larger, and no more readable than the Java(tm) alternative (at least to any competent programmer). As far as foreach goes, I don't normally have the luxury of such simplistic loops. There are some cases where it would be useful, but half the time it would eventually have to be replaced when greater functionality is needed. The only use I can see for them in real software is for output purposes, mainly in debugging.

    2. Re:ADD FOREACH TO JAVA! by Anonymous Coward · · Score: 0

      You have a syntax error - i is not initialized.

      That's a semantic error, not a syntax one.

    3. Re:ADD FOREACH TO JAVA! by Anonymous Coward · · Score: 0

      In java, it will not compile, hence I think of it as a syntax error, but that is a good point.

    4. Re:ADD FOREACH TO JAVA! by Anonymous Coward · · Score: 0

      your right, been thinking in c++ too long :)

  65. Re:C# is a revolutionary paradigm by Anonymous Coward · · Score: 1

    You gave yourself away already in the title, when you used the words "revolutionary paradigm"!

    My first thought was, "Oh no! Another Microsoft cheerleader."!

  66. C# is slightly better than Java by peter303 · · Score: 2

    Fixed a few things that annoyed me.

    However, this doesn't justify establishing an entirely new, closed language system for developers to have to deal with. I am disgusted that Bill and Scott could get together to resolve their differences. Now they've forced tens of billions of dollars of wasteful duplication on the world.

  67. C#? Java?! A true coder needs not these things. by Anonymous Coward · · Score: 0

    Verily, but for us, we need only the mothertongue, C, and her bastard child, C++.

    Forsooth, may those who fall under the spell of the Twins of Evil be damned for all time!

    Forth gcc!

  68. You are missing the point by Acy+James+Stapp · · Score: 1

    Arrgh, have you ever actually built a large program?

    How about this?
    class Proxy
    {
    private ProxiedObject target;
    public int size {
    get {
    return target.size;
    }
    set {
    target.size = value;
    }
    }
    }

    proxy.size *= 2;

    Now how nice is that? There are numerous and sundry uses for properties. I didn't know about them until I read that article and they alone are going to make me learn C#. Network, database, and adapter pattern proxying, transparent access to calculated values, all are extremely useful tools which I am dying to use. Any programmer whose life is not simplified by this is not a professional programmer, IMHO.

    Acy

    --
    -- Too lazy to get a lower UID.
  69. Slashdotted! by hugg · · Score: 3, Informative

    For those who feel like they're downloading the page over a 110-baud modem with an acoustic coupler located in the same room as a Disaster Area concert, here are some other similar comparisons.

  70. I wish it were true! by good-n-nappy · · Score: 1

    The problem is that "the pure windows programmers" are a pretty big slice. Your assessment of VB and VC++ might be slightly overgeneralized since I'm a pure Windoze hacker (for the moment) and I only use Java.

    I don't know the exact numbers but I do know that Sun has sunk a truckload of time and money into JDK development on Windows. You could argue that this is just to support applets but how many JRE 1.2+ applets have you seen?

    I'd love to see M$ fall flat but I don't see it happening. The main benefit of Java on Windows was a great language with good libraries. Well, M$ stole the language and they're guaranteed to have better access to the OS. Sadly, it looks like Java may be relegated to the niche you described.

    --
    Never underestimate the power of fiber.
    1. Re:I wish it were true! by Malcontent · · Score: 2

      As long as it only runs on windows then it's just another VB or Delphi. All the VB developers will have to switch (they have choice VB is dead) and maybe some of the VC++ people will switch but that's it. Nobody uses Java to write GUI apps and for them there is no motivation to switch to another language.

      --

      War is necrophilia.

    2. Re:I wish it were true! by vscjoe · · Score: 1
      Actually, I view Windows-only client programming as kind of a "niche"--a big niche, but a niche. Also, Windows programmers brought up on C# will have a very easy time picking up Java and becoming bilingual.

      And Sun may take competition from C# as an incentive to improve Java and also make it better for desktop applications. Sun has been dragging their feet on VM sharing, compiled code caching, genericity, and a few other features.

    3. Re:I wish it were true! by good-n-nappy · · Score: 1

      I disagree that nobody uses Java to write GUI apps. I think if you look in the right places you will find large niches of people using Java (including myself). Especially in one of the fastest growing areas in Computer Science - Human Computer Interaction.

      The thing VB and Delphi can't give you is a customized GUI. They're great at making cookie cutter GUIs but they give you very little control over, say, rendering. VC++ gives you the control but introduces all kinds of other complexities.

      So if you're saying WIMP is the way of the future, then by all means, VB and Delphi will fill the bill. If not, then I think Java (and maybe C#) have a place in GUI development.

      Also, if Java is not being used to write GUI apps, I'm wondering why Sun would go to all the trouble of making Swing, their extensible GUI toolkit?

      --
      Never underestimate the power of fiber.
    4. Re:I wish it were true! by Malcontent · · Score: 2

      I don't know how big of a field computer science human computer interaction is but it sounds like a small community of acedemic researchers. Yes I have seen some nifty apps and even applets coming out of acedemia and the govt but I don't think you will be able to convince anybody that it represents a significant percentage of the applications written in java.

      "Also, if Java is not being used to write GUI apps, I'm wondering why Sun would go to all the trouble of making Swing, their extensible GUI toolkit?"

      Sun developed swing in order to encourage user apps written in java. it was a failure by and large. Not because swing is bad (it's quite good) but because it's slow and acts oddly and looks weird. Maybe these are acceptable trade offs to get a cross platform gui library but not many people bought into it. maybe the new IBM classes will kick java developers in the butt to develop user apps but I am not holding my breath. As it stands java is mainly used for non gui apps for which it's an excellant product.

      --

      War is necrophilia.

  71. Mentifex, you ignorant slut! by Anonymous Coward · · Score: 0

    Every fucking story is your excuse to promote your total piece of shit Mind project, isn't it?

    NOBODY FUCKING CARES!

    You've never accomplished a single thing, you're a crackpot. Go do something worthwhile, like flip burgers at McDonalds.

  72. Alternate Site For Article... by Carnage4Life · · Score: 4, Informative

    Get it here

    PS: Mirrors encouraged, so if you manage to grab it and can host it at a site with beefier bandwidth, go ahead.

  73. Know why? by Anonymous Coward · · Score: 0

    You can't afford to lose even 1 point because you are a moron who doesn't post anything worth hearing.

    The sooner you post at a base score of '0', the better for all of us.

    That's how moderation works.

    1. Re:Know why? by kelzer · · Score: 1

      I'm a moron, and yet the post which was originally modded up to "5 - Insightful", which is what I was complaining about, currently has a score of 1.

      The true morons were those who modded that crappy post up to a 5. Hopefully, they too will lose karma after some meta-moderation.

      Unfortunately, you won't, because you're such a chicken-shit you had to post as an AC.

      --

      ---------------------------------------------
      SERENITY NOW!!!!!!!!!!!!!!!!
  74. History by anotherbadassmf · · Score: 0, Flamebait

    Microsoft has a history of taking a nice, simple technology and fucking it up by making it inelegant and incompatable.

    C# is no exception.

    I am starting to think that perhaps the purpose is not to be incompatible to lock ppl into Windows, rather that they have some strange breed of ppl who know no better than to make some real ugly shit. One rotten apple spoils the barrel, I guess.

    Kinda feel sorry for them ...

    1. Re:History by Anonymous Coward · · Score: 0

      Microsoft stands for everything America really is.
      They take a non-profitable, dying piece of technology and make it successfull and useful. I mean there should be some kind of reason why they're making so much money. Frankly, i see your remarks as nothing more than a simple case of unsupported microsoft-bashing so often seen on this website.

      What are you, some kind of US-bashing muslim fanatic?

    2. Re:History by anotherbadassmf · · Score: 1

      You're right, what side is this shithead on anyway?
      You're either with us or against us.

    3. Re:History by Anonymous Coward · · Score: 0

      Well a reliable source in the CIA told a friend of mine that C# was actually written by a group of Taliban terrorists in an attempt to destroy the internet!

    4. Re:History by Anonymous Coward · · Score: 0

      Duh ! Your obviously under the CIA's new mind control drug -- the CIA actually wrote it, to hack into your machine.

    5. Re:History by Anonymous Coward · · Score: 0

      Since when has java ever been "dying?" It may have been in the doldrums for a short while, but it came back with 10x the force at the birth of J2EE. Begone, trollish nincompoop.

  75. another mirror by Lord+Omlette · · Score: 3, Informative

    here.

    It'll be off the front page tomorrow, so all these mirrors shouldn't be needed...

    --
    [o]_O
  76. Re:Why do I get the sinking feeling (revisited) by GISboy · · Score: 1

    The funny part is that web developers loves java (or so I understand) but hates the "speed" or lack thereof.

    The thinng that made "people like java's speed" on windows was window's specific acceleration.

    The thing that always struck me as odd was there were no "libraries" or "includes" that were platform specific for acceleration purposes on other hardware.

    Simple reason being is sometimes *perception* is the only thing that matters.
    Witness os X.1.1... the .1 release just kicked, because the interface was usable...let me rephrase that, usable it is, but "responsive" was needed.
    I forget who pointed it out, but the gui was slow, but the subsystems were ok.
    Also the "tie-ins" like renice only affected command line utilities and not gui utilities.

    I had to re-read some of the responses a second time and noticed that Microsoft and standards were mentioned in the same breath.

    Maybe I am thinking too far ahead, or perhaps way off base, but people are developing, it seems, to be .NET compliant and not the other way around.

    The reason this "seem so wrong" is instead of "Embrace, Extend, and Extinguish" it is along the lines of "Develop, Distract and Destroy"... same, ends, different means.

    IOW, Hey, here is the framework to .NET...go for it! People develop according to whatever spec is sent out, .NET is still looks, smells and tastes like beta, because it is beta.
    Betas change. And so will the "rules" of .NET I think.

    I dunno, perhaps a slogan to plant should be:
    "Didn't your parents always tell you *NEVER* run with # objects?"

    Neuron misfire of the day:
    MSN has a Butterfly. Passport is part of .NET.
    So, when passport is needed for MSN..would that be a Butterfly.NET?

    (Where did that come from? {shrug}

    --
    If it is not on fire, it is a software problem.
  77. Why even use ints? Or new classes? by loganpd · · Score: 1

    You don't even need a separate class to be instantiated. Just use Strings.

    public final static Direction NORTH = "NORTH".intern();
    public final static Direction SOUTH = "SOUTH".intern();
    public final static Direction EAST = "EAST".intern();
    public final static Direction WEST = "WEST".intern();

    1. Re:Why even use ints? Or new classes? by gibara · · Score: 1

      But then you lose the type safety which 'defines' the enumeration - and your example can't possibly compile either.

      --
      Programmers of the world unite, you have nothing to lose but your strings.
  78. Symbols by loganpd · · Score: 1

    Of course the real problem is these languages do not have symbols as a data type. In Smalltalk... #north #south #east #west In Lisp... 'north 'south 'east 'west

  79. But it ain't free... by Anonymous Coward · · Score: 0

    Why pay M$ significant money for a GUI when I get Swing, Jakarta, etc. for free?

    1. Re:But it ain't free... by Anonymous Coward · · Score: 0

      Because Java GUIs suck!!! Why haven't we seen shink-wrapped Java GUI software?

    2. Re:But it ain't free... by Anonymous Coward · · Score: 0

      Obviously you've never heard of JBuilder. Well, at least it's shrinkwrapped in university bookstores, but I doubt you'll find it at your local retail superstore.

  80. We don't hate the language--it's the company... by Anonymous Coward · · Score: 0

    We dislike the company, not the language. C#, since it is a Java knock-off with a few extras, is like Java 2.0 as far as the language goes. It has some nice improvements--sort of like whe Interfaces were added or Swing replaced AWT. But there's the rub. The problem is the company which made it only made it to work tightly with Windows and Windows only. They have so tighly coupled Windows to the langauge, I wonder how it can be ported to other plstforms. Still I'd use a C# that ran on Unix, Linux, BSD, and OSX. When they bring out the multi-platform Swing equivalent, I'll give it a try. Until then, Java does quite nicely thank you.

  81. Re:Correction: Java byte = C# sbyte by Fjord · · Score: 2

    Java doesn't have any unsigned types.

    Actually, it does: the char type is unsigned. But Java doesn't really need any unsigned types because it has the >>> operator.

    --
    -no broken link
  82. ANSI/ISO My Ass by Anonymous Coward · · Score: 1, Informative

    The only "standards" body C# has seen is ECMA which seems to be a rubberstamper for whatever MS wants to push.

  83. Re:Look closely, M$ still wants you to program COM by Anonymous Coward · · Score: 0

    Have you ever read some of the more in-depth Microsoft Press books? They are anything but "How to use Visual Studio Wizards"...

  84. The author has it backwards (C++ vs Java) by Chuck+Messenger · · Score: 1, Funny
    The author asserts that Java is akin to the English language (non-centralized evolution directed by popular demand), while C++ is akin to the official French as defined by the Academe Francaise.


    Firstly, the author has this backwards: the Java language design is dictated by one organization -- Sun; thus, akin to French. C++ is the result of broad-based popular demand (the C++ Standards Committe).


    Secondly, C++ is in many important ways significantly more modernized than Java. Most important is templates and the STL, supporting generic programming. Also important is multiple inheritance. While C++ doesn't "have garbage collection", it is no problem to design a programming framework in C++ which supports it (and you can design a much more sophisticated garbage collection system than comes with Java). Besides, with STL-style programming, it is becoming ever-less important as an issue. Meanwhile, Java suffers from its inability to precisely control when objects are destructed.


    Java certainly has its uses. It's a fantastic platform for rapid cross-platform development. However, it's not in the same league as C++. You'd write Java in C++, but not the reverse. It's somewhere between a scripting language and a "serious" language.

  85. Close only counts in... by ebyrob · · Score: 1

    Horseshoes and Nuclear weapons.

    "Almost the same" and "leveraging your knowledge" are nearly useless in this industry. Any programmer that can't pick up a brand new language in under 2 weeks needs a different job title(yes, mastery and "pick up" are different, but so are Java and C#!). The least Microsoft could have done when they decided to clone Java would have been to make things "code compatible".

    By making them "nearly" identical, they just create an appearance of similarity that fools only those so described. Of course, to actually be fully compatible they'd have to provide a library equivalent to what Java provides. In this, they aren't even close, and don't stand a chance for several years, partly because Sun has worked so hard on this, partly because of all the third party projects in Java.

    The only thing .NET brings to the table that Java doesn't is "tight OS integration". Of course, I'm not even sure what that means at times... Your VM crashing is more likely to bring down your whole system? Your VM load time will get bundled into your boot time? Perhaps your windows might load a little faster? If you think this is desirable(maybe) and more important than good competitive library support(doubtful) *and* matters more than competitive VM support, by all means use .NET.

    But lets ignore design issues and look at the track records so far. .NET aside from being an abomination to any naming convention created is not even "code compatible" with their own products. All those poor sods who trusted their business to VB5 or VB6 a while back will have to rewrite lines and lines of code to even be able to run on this "new and improved" platform in their "language of choice": VB.NET. I mean come on, If I have to rewrite my code to get it to run, we are not talking the same language here! VB.NET is not VB7, it's .NET with a VB "skin". By the same token, C# is not a Java competitor, or an upgrade to C++, but just another skin for .NET.

    Look at Sun's track record by comparison. Sure, they haven't made Java a "standard" and they've pushed at times against the community, but when the community started pushing back, by and large they listened. You can take Java 1.1 code and run it on a 1.3 VM, or even a 1.4 VM with no compatibility problems whatsoever.

    Is .NET worth using? Maybe, but making it incompatible with all existing languages doesn't make it appeal to this developer. And quite frankly the idea that .NET will be the interface or "gatekeeper" to all future Windows components (it's the win32 of tomorrow) gets me thinking of alternatives.

    Sun's goal may be to rule the world, but Microsoft's seems to be, "Make the developer's life a miserable and slow to product existence."

    1. Re:Close only counts in... by Anonymous Coward · · Score: 0

      C#, Java and C++ are pretty much indistinguishable from those of us who know and use Smalltalk and/or Lisp (or any other high level language).

      Seeing people argue about the relative merits of C# and Java is like seeing people argue about their favorite brand of salt.

  86. From a Java perspective, it must be lightning fast by Anonymous Coward · · Score: 0

    ...then again, so is paint drying.

  87. Re:Look closely, M$ still wants you to program COM by Anonymous Coward · · Score: 0

    Some are ok, some are just marketing crap.

  88. Re:Run Away Run Away by Enahs · · Score: 2
    Please read this article with the same grain of salt you would read a Linux advocacy article from the CEO of RedHat.



    Excellent point. In fact, I have to say I agree with both of you. I really tried to give Carnage4Life a chance on kuro5hin, but he'd always come back and flame me, even when I agreed with him. He's so damned desperate to flame anyone who has Open Source ideals, mainly because he feels ostracised for having worked at Microsoft.



    But you're right. Bob Young or (in years past...not true now) Larry Augustin aren't any more credible sources than Bill Gates. All of 'em like to spout business rhetoric. And hey, I live in America, where the "world" revolves around business.



    The fact that the party in question here is Microsoft makes me question the motiviation no more than any other party.



    (OT: dangit, I keep trying to middle-click-paste right now, and I'm running Win98 'cause I'm too lazy to install the silly CrossOver plugin to view a QuickTime movie trailer. Bah.)



    Right. And I've got to think that there's developers working for MS scratching their heads about all the hate foisted upon C# just for being MS. Yeah, it's going to be used as a marketing tool rather than genuinely as an innovative tech tool. But how much was Linux used as a marketing gimmick in the last 3 years? And for all you people worried about C# taking over the world, look at the beating the Linux world has taken, mainly because companies used Linux as a marketing gimmick?



    People, relax. :-)

    --
    Stating on Slashdot that I like cheese since 1997.
  89. C# is what Java developers really want... by javabandit · · Score: 5, Interesting

    C# being better designed than Java is no big surprise. Why? Because Sun has done very little to further the actual language itself.

    Java really hasn't changed much since its inception. All we have are a few more libraries, a GUI framework that blows ass, and a server-side framework that we didn't really need to begin with. But we have no real additional language FEATURES.

    Like a lot of people, I've been using Java since the beginning. I look at the C# language and I see everything I want in Java. The great majority of differences between C# and Java are purely syntactical sugar -- compiler candy. AND THAT IS WHAT WE WANT.

    We've been asking for support for generics and parametric types since JDK1.1. And they still aren't in (they were removed from 1.4 at the last minute). We've been asking for A REAL CONST. We've been asking for assertions -- and finally got them.

    But all in all... most SEASONED Java developers aren't happy with the progress. Java has been plainly behind the curve when it comes to evolving new and different features. Instead, Sun poured all of their effort into their bullshit J2EE framework which is a complete shambles, IMHO.

    Its obvious. Microsoft simply went to Usenet... read a bunch of Java posts... and saw that Java was stagnant. They took advantage of it. They created a new language... based upon Java... adding everything that Java developers were complaining about. Voila! C#!

    I wonder if this would have happened if Java were open source. Probably not.

    But one thing for sure... Microsoft is an EXPERT at catching a company while it is asleep at the wheel... ripping of its product... making it better... and seizing an entire market.

    They just might be doing it again...

    1. Re:C# is what Java developers really want... by Anonymous Coward · · Score: 0
      server-side framework that we didn't really need to begin with

      Speak for yourself, Junior.

      The great majority of differences between C# and Java are purely syntactical sugar -- compiler candy. AND THAT IS WHAT WE WANT.

      Speak for yourself, Junior.

      But all in all... most SEASONED Java developers aren't happy with the progress

      Speak for yourself, Junior.

      You are a fucking moron.

    2. Re:C# is what Java developers really want... by alext · · Score: 0

      Is it too much to ask moderators to check for coherence and at least a semblance of a rationale for a given argument? This is just a baseless rant - let's differentiate /. from Usenet. Please.

    3. Re:C# is what Java developers really want... by javabandit · · Score: 1

      Its not a baseless rant. It is actually well-founded.

      Go to javasoft.com and take a look at the top requested features for Java. You will see that they are generics, assertions, and const correctness. DBC (Design by contract) features.

      You'll also see a shitload of GUI bugs in there, as well. Mainly because the GUI libraries (Swing) are too bloated and over-complicated.

      It has been made very obvious that Sun has practically ignored the language syntax itself for years. They also have all but completely ignored the GUI side of things. They have really poured all of their efforts into server-side technology... J2EE/EJB etc etc etc... ignoring other critical aspects of Java technology.

      If you have something to add, think you can shed light, or refute something... then by all means, feel free. I'd love to hear it.

      Otherwise...

      Shut.the.fuck("up");

    4. Re:C# is what Java developers really want... by Brummund · · Score: 1

      Shut.the.fuck("up");

      Hm, that would actually be:

      VoiceFactory.getImpl().utter(localize("shut up"));
      I think. :)

    5. Re:C# is what Java developers really want... by 21mhz · · Score: 1
      Like a lot of people, I've been using Java since the beginning. I look at the C# language and I see everything I want in Java. The great majority of differences between C# and Java are purely syntactical sugar -- compiler candy. AND THAT IS WHAT WE WANT.

      Go eat your candy with C++. Anyone who digs to the bottom its rules of template instantiation superimposed on overload resolution superimposed on multiple inheritance is a sheer ubermind. Anyone who tries to use these features to the fullest inflicts pain and sorrow.

      --
      My exception safety is -fno-exceptions.
    6. Re:C# is what Java developers really want... by javabandit · · Score: 1

      Templates? Who said anything about templates? Or multiple inheritance? Did I say I wanted multiple inheritance?

      Generics != templates.

      For those out there who may not know... there are OTHER well designed languages which actually use generics.

    7. Re:C# is what Java developers really want... by alext · · Score: 1

      Whether well-founded or not in general, the point is that the post does lack any rationale. That's the problem with it. This should be obvious to anyone other than the person that modded my comment down.

      Now to address the specific points you have (now) raised:

      Support for generics has been in development for a while and you can get the prototype from the JDC site.

      Assertions are available now in the 1.4 VM, and are intended for the DBC features you describe.

      If you prefer a more native style GUI library, you now have an alternative in the form of the new IBM SWT, which uses Windows elements, like the old AWT, as I and others have pointed out no less than three times here in this thread.

      I hope people find this information of use, but based on current trends I suspect they will have to browse at -1 to find it.

    8. Re:C# is what Java developers really want... by Anonymous Coward · · Score: 0

      I use template metaprogramming, operator overloading and occasionally multiple inheritance fairly regularly. I think of myself as a good programmer, but hardly an "ubermind."

      This isn't rocket science, its all clearly specified in the ANSI standard. It took me 8-10 months to gain 100% confindence when programming in C++, but only about 2 weeks to get the basics down to the point of being fully productive.

      Perhaps in this case the problem is not the language, but the programmer.

    9. Re:C# is what Java developers really want... by javabandit · · Score: 1

      Whether well-founded or not in general, the point is that the post does lack any rationale.

      You are getting into a loop. I think you need to reboot.

      A well-founded post doesn't lack rationale.

      You have not addressed any relevant issue. Your post is up there with the guy who said that generics are for people who know nothing about OO. Yet he does nothing to qualify that statement. You qualify nothing. Again.

      By the way, the information you are giving out in your extremely useful posts is common knowledge. I don't think you have to relay information equivalent to "2+2=4" in your posts. At least shed some new light.

      Everyone knows that there are a few patchwork options for integrating with the native Windows libraries... however inadequate as they may be. SWT is a decent one. Although, C# is a far better... for obvious reasons. It would make more sense to have a Java->.NET port and then be able to use the native libraries. Of course... that is what J# is, basically.

      Everyone also knows that GenericJava was going to be included, since Sun refused to do the work themselves, and then they pulled the plug at the last minute -- and for good reason, IMHO.

      BTW, if you don't like getting modded down, then I recommend that you address the issue at hand. A post that basically says, "Hey moderators! That post sucked! You suck, too!" really isn't going to get anywhere at all. You should know that.

      Have a point. Then come back to me.

  90. Duh by Anonymous Coward · · Score: 0

    A jagged array is an array of arrays, a multidimensional array is something different.

  91. Re:I'm not impressed by C# -- the language by Anonymous Coward · · Score: 0
    I'd like to see the open source community look at it with the same eyes as if it had come out of some smelly hacker's basement.

    Looks to me like its just another Visual Basic -- a language tightly integrated to the Windows platform. Knowing the amount of open source developers concentrating exclusively on the Windows platform... well, why the hell would anyone be interested in C#?

  92. C# just a rip-off of Java? by rice_burners_suck · · Score: 2

    I'd like to congratulate Dare Obasanjo on his extensive comparison between Java and C#. After reading it, and my anti-Microsoft bias aside, I've come to the conclusion that C# is basically a rip off of Java, with a few extra features that might make it an interesting development platform. As always, I feel that Microsoft has implemented a system designed as an integrated part of Windows, to keep the development community (and, therefore, the user community) at Microsoft's mercy.

    I say this for the following reasons (and, again, I'm trying my best to place my anti-Microsoft bias aside):

    • Java came first. C# came into existance only recently, and much of the code examples in the comparison look nearly identical, with differences in keywords or function names or something trivial like that.
    • I think that's just about it. (Please excuse me, I've had a few too many beers tonight.)

    Well, whatever. Forget it. I'll probably just get flamed by a bunch of people, and moderated as a troll or something. Oh well. My karma has been going down for the past few days because some really crappy stories have been posted on the front page, and when I read crappy stories, I write crappy comments. Or something like that. Oh well.

    1. Re:C# just a rip-off of Java? by Anonymous Coward · · Score: 0

      I think he was trying to point out that MS programmers are too stupid to innovate. They can only steal other peoples ideas.

    2. Re:C# just a rip-off of Java? by Anonymous Coward · · Score: 0

      Funny that we all need C# now that XP doesn't have the Java VM as standard isn't it.
      Welcome to Windoze XP. Sorry, but the Java bit you require to surf this web page needs to be downloaded. Please wait while I download 6Mb on your 56k Modem. Bwahahahaha!

      Model-T aside, maybe you drive a Ford because all your neighbours do but I realise that I have a choice - Fords rust too quickly and need to be replaced too often ;-)

  93. array error by feldkamp · · Score: 1

    ok, i'm nitpicking, but...

    From the article:
    "In languages like C and C++, each subarray of a multidimensional array must have the same dimensions. In Java and C# arrays do not have to be uniform because jagged arrays can be created as one-dimensional arrays of arrays"

    In C, C++, or any other language that allows pointers and runtime memory allocation you can set up jagged multidimensional arrays almost as easily. You have to use pointers, but that's no biggie.

  94. Java by Anonymous Coward · · Score: 0

    Run Once, Leak Memory Everywhere

    1 VM loaded per app? C'mon Sun, give us a freaking break. Make your crap work, don't make us all load several instances of a 25MB Virtual Machine just to run Calculator.

    1. Re:Java by Anonymous Coward · · Score: 0
      Nah. You just don't know how do to it right. The virtual machine itself is quite small; it's all those jar files you make it load up that take up so much space. You're clueless if your VM uses more than 12MB for a simple program with no major data structures.

      I only hit 25MB when I load 8MB of extra jars and a few MB of XML data. Now, if you're running on an Alpha...

  95. Well, duh. by megaduck · · Score: 1

    Naturally Microsoft's pet programming language will integrate well with Windows. I'd wager that a lot of .NET is written in C#, just like a lot of Unix is written in C (Guess what a unix hacker's favorite language is...).

    That's not to say that your point is invalid. However, for an OS X user like myself better Windows integration is useless. The real question is: How good is C# when you're not on Windows? If C# is just for a Microsoft environment, then I see it being doomed to the same fate as Visual Basic. Put another way, it has to offer compelling features for people on other platforms or the cross-platform functionality is useless. What is in C# to make it attractive to say, Mac users?

    --
    This .sig for rent.
  96. Re:Java is Sun by Anonymous Coward · · Score: 0

    I know, the truth hurts. As my civic duty I will repost the truth here: Smoke some more crack - Sun withdrew Java from both ISO and ECMA standardization after they claimed they would hand over the language. The Java language syntax and the standard Java shipped libraries are 100% controlled by Sun - NO ONE ELSE has any say in the matter. The JCP is little more than a circle jerk club for losers like yourself to feel good about being given a public forum to whine and be ignored.

  97. Laundry list of corrections by coonsta · · Score: 4, Insightful

    I think this is a bit Java biased, in that it uses some very precise wording and fails to mention a lot of relevant features of C# until the appendix-like section D. And it contains some outright mistakes.

    My corrections:

    A.2: Java doesn't have an "unsafe" keyword; C# and Java have a "volatile" keyword that is strangely missing. And don't you think it's strange that he doesn't equate C#'s "extern" with Java's "native"? They're approximately the same.

    A.5: Neglects to mention here that C# has square *and* jagged arrays, it is stuck in section D.

    A.10: The phrase "both languages have an inheritance hierarchy where all exceptions are derived from a single Exception class" is a tautology, because "all exceptions" *are* exceptions because they extend Exception! Whereas if he meant to say "all objects that can be thrown are instances of types derived from a single Exception class" he would be wrong, because in Java these all derive from java.lang.Throwable.

    The sentence two sentences after that one, starting "Finally, both languages..." does not make sense.

    B.8: The last statement in this paragraph is incorrect. Isn't it possibly in Java to simply write ArrayList.class, if java.util.ArrayList has been imported? Likewise in C#, where if System.Collections has not been using'ed it is necessary to write typeof(System.Collections.ArrayList).

    C.1: This really should mention delegates here. It was inner classes v. delegates that heated up the Sun vs. J++ debate. Thus C# doesn't suffer a "lack" of inner classes, rather it suffers an ideological difference with Java, don't you think? And likewise, Java doesn't suffer a "lack" of delegates.

    C.3: The criticism that, for example, it is possible to overload "", and this makes overloading bad, and C# has overloading, hence C# is bad-- is nonsense! In C# it is illegal to overload, for example "", or "==" but not "!=".

    It also says "()" (I assume meaning cast) and "[]" can not be overloaded. This is again very precise and misleading language. They can not be overloaded, because custom conversions and indexers can be used instead!

    It also fails to mention that "&&", etc. will call "&". The blanket statement that "&&", "||", etc. "can not be overloaded" is very misleading.

    C.4: You can "fall through" in C#, with goto. Except unlike Java, in C# it is explicit (and more flexible).

    Fails to mention Java's limited range of "switch" statements, whereas e.g. C# can switch on a ulong.

    C.5: Seems to miss the distinction between *assemblies* and *modules*.

    C.6: Some of these criticisms are unfair, e.g. that Java has thread-safe collections. In C#, a reference to a synchronized wrapper can be kept and the un-thread safe reference be let go out of scope!

    Not mentioning boxing and unboxing here is a failure: one of the chief gripes with Java's collections is that it is necessary to wrap the primitive types in their class equivalents.

    C.7: Java has a labeled goto of sorts-- break and continue. Thus some of the criticisms of the weakness of languages with goto may also be applied to Java.

    C.8: Is this section intended to confuse? The fact that marking a method final in Java means that subclasses cannot contain a method with a similar signature is a *coincidence* arising from the fact that (a) final means methods can not be overridden and (b) Java does not have new/reintroduce semantics and relies instead of the name and parameters. Thus C#'s final achieves exactly the same as Java's in terms of dynamic linking and dispatch-- that a particular method can not be overridden.

    D.3: Should probably mention that .NET has an attribute for marking enumerations as able to be used in bitwise combination, whereas this is always possible (whether correct or not) in a Java pseudo-enumeration with int members. On the other hand, the "workaround" in Java makes this impossible-- you can't "or" objects.

    Well, that's my $0.02. Apart from those glaring problems, the discussion is not bad.

    1. Re:Laundry list of corrections by BRSQUIRRL · · Score: 1

      It also says "()" (I assume meaning cast)

      They probably mean the overloaded function call syntax...a.k.a. functor. That being said, I think I've used functors twice in my life and never in production code, so the omission of these isn't going to ruffle my feathers too much.

  98. Re:urm yeah, 'up and coming dev guys' take some ad by MAXOMENOS · · Score: 2
    How does $100K/year sound to you?

    Like a fucking pipe dream, speaking as a former Java programmer.

  99. Re:urm yeah, 'up and coming dev guys' take some ad by BobMarley · · Score: 1

    OK, I'll bite.

    Check yer facts first, mate. I'm sorry that you didn't make the cut, but don't state pure horse dung like this.

    Consider also the relative age and maturity of the three (four?) languages you're posting about. A quick poke through dice.com lands the following results:

    Search on "java" keyword returns 3969 hits.
    Search on "C++" keyword returns 7645 hits.
    Search on "C" keyword returns 7645 hits.
    Search on "C#" keyword returns 7645 hits.

    Java was released to the public in late 1995/early 1996. C++ was "released" sometime around 1984, I think. C was "released" roughly around 1970.

    A couple noteworthy points:

    Notice the *identical* number of hits for C, C++ and C#? Obviously a flaw in the search on dice. However, it's probably safe to say that none of C, C++ or C# produces more than that number of hits legitimately.

    Also, a large percentage (perhaps 75%) of the job listings and descriptions I see in my travels lists both Java *and* C++. Most PHB's think that if you know C++, you're good for Java too.

    cheers,
    BM

  100. char*argv[] by Anonymous Coward · · Score: 0
    One wonders what the writer of the article thinks argv is (typed char*argv[])

    In every operating system I've encountered, command line parameters are not passed as a pointer to an array
    char *argv[]
    but rather as a pointer to pointers
    char ** argv
    Even if you try to force matters, you still get a pointer to pointers:
    #include

    int main(int argc, char *argv[])
    {
    printf("\n");
    if((int )(&argv) == (int )argv)
    {printf("argv is an array of pointers to char\n");}
    else
    {printf("argv is a pointer to pointers to char\n");}

    return(0);
    }

    It never ceases to amaze me how many self-styled programming wizards are unaware of this.
    1. Re:char*argv[] by Anonymous Coward · · Score: 0
      That should say
      #include stdio.h
  101. Re:Some more disinformation by StrawberryFrog · · Score: 2
    True, but this easy method can be done in Java with public member variables, it's just discouraged.

    Nope, it can't - not unless the gettor and settor are trivial one-liners. And if they change from trivial to non-trivial, you have to chamge your public int foo; into public int getFoo(); public void setFoo(int fooVal); and break all the code that uses foo. Properties avoid this breakage, which is why they are a good idea.

    For a non-trivial e.g. Label.font.bold = true; The settor could actually cause a refresh of the label as well.

    The java method will compile/run a tad faster,

    Will it? The enum is really just an int - with compile time range-checking. Compile-time checking won't make it run slower. BTW, in Java you could also write
    int wall = Direction.NORTH;
    wall += 43;

    Which is clearly semantically dead wrong, but the compiler will never know. That is why enums were invented in the first place, not that Java's designers ever learnt that lesson.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  102. Java enums - Why doesn't sun use them. by StrawberryFrog · · Score: 2

    So if this technique is so good (it does look cool) why isn't the JDK coded that way? The JDK is the best-known body of java code, and is where most java programmers get thier coding cues from - you'd think they'd use what was best?

    --

    My Karma: ran over your Dogma
    StrawberryFrog

    1. Re:Java enums - Why doesn't sun use them. by Anonymous Coward · · Score: 0
      wow, thats a strong argument there.

      bozo

    2. Re:Java enums - Why doesn't sun use them. by StrawberryFrog · · Score: 1
      wow, thats a strong argument there.

      Um, no. Actually it's a question. Thanks for the constructive answer. Not.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    3. Re:Java enums - Why doesn't sun use them. by UberChuckie · · Score: 1
      Quote from page 114 from Effective Java
      "The only reason that typesafe enums are not used more heavily in the Java platform APIs is that the typesafe enum pattern was unknown when many of those APIs were written."
  103. Re:Some more disinformation by Anonymous Coward · · Score: 0
    BTW, in Java you could also write
    int wall = Direction.NORTH;
    wall += 43;
    Which is clearly semantically dead wrong, but the compiler will never know. That is why enums were invented in the first place, not that Java's designers ever learnt that lesson.

    And only a moron like you would use an integer to represent a direction. You're a real OO genius, aren't you?

  104. Re:Some more disinformation by Anonymous Coward · · Score: 0
    For a non-trivial e.g. Label.font.bold = true; The settor could actually cause a refresh of the label as well.

    OMG, I just realized that you are seriously advocating implicit side effects as a Good Thing.

    Jesus H. Christ. Are you just stupid, or is it that you have never done a day of professional programming??

  105. Jagged arrays by Tribbles · · Score: 2, Informative

    You know, I'm not entirely sure that his assertion that subdimensions of a multidimension array must have the same dimension (topic 5).
    After all, in C, I'd use:

    int* array[2];
    array[0] = (int*)calloc(sizeof(int), 3);
    array[1] = (int*)calloc(sizeof(int), 9);


    True, this doesn't use heap-based stack, but to me, the functionality is the same...

    1. Re:Jagged arrays by Tribbles · · Score: 1

      I suppose if you take a multidimensional array to mean a contiguous array of data (as the document later asserts), but the code given really does look like the above code.

  106. C++ is the best, if you know how to use it... by Achilleas · · Score: 1

    Like every other post I have made, this will be moderated to 0...but even if one person reads it, I will be a happy man.

    Here is a garbage collector for C++ which does not use threads. You just have to use a special template pointer class, and your garbage collected objects should be derived from a special object class, that contains a reference counter.

    When a pointer is assigned the object, the reference counter of the object increases. When a pointer is assigned to another object, the previous object's reference counter is decreased. When it reaches 0, the object is deleted, because no pointer in the program refers to this object any more.

    Here is the link to the code...as you can see it is almost 100 lines of code, heavily commented...no need for garbage collector threads or other stuff... :

    C++ garbage collector

    My point is that if C++ was properly used, Java/C#/VB would not be needed.

    And for a very good C++ GUI toolkit, use Qt

    1. Re:C++ is the best, if you know how to use it... by Anonymous Coward · · Score: 0

      Well, your so called garbage collector is not a garbage collector! It is just a smart pointer. There is actually something similar in c++ already- does not do reference counting though so it behaves differently. One of the key features of garbage collection is that objects get reused not deleted- it goes back to the idea that an obvious hot spot to a program is the creation/deletion of objects. Sorry to of burst your bubble :(.

      After looking at your code I even think you went about things wrong. Too much stupid work is being done by CPointer and no real work is being done in the CObject where it should be. Besides you are not even storing the data in CObject. Would you be interested if I were to re-write it?

    2. Re:C++ is the best, if you know how to use it... by Anonymous Coward · · Score: 0

      Reference counting can't handle cycles.

      'Nuff said.

  107. Re:Some more disinformation by StrawberryFrog · · Score: 1
    And only a moron like you would use an integer to represent a direction. You're a real OO genius, aren't you?

    Replying to anymous insults (the title Coward is clearly earned here) has got to be pretty low, but i'ts a slow day at work, so here goes.

    I don't code like that. The original poster gave it as an example of how it is done in Java. Sadly it is often done like that in Java. I gave an example of how it falls down, cos I don't like it. Read before replying, Mr. A Coward.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  108. Re:urm yeah, 'up and coming dev guys' take some ad by Anonymous Coward · · Score: 0

    Right. So my company, with ~11 Java programmers, (over 25% of our workforce,) is just playing around? I better tell the boss, because I wouldn't want us to go out of business selling cross-platform sofware when we could make big bucks selling Microsoft-only software, using beta tools, an infant language, and taking twice as long to get code finished in C++.

  109. Re:Some more disinformation by StrawberryFrog · · Score: 1
    OMG, I just realized that you are seriously advocating implicit side effects as a Good Thing.

    Jesus H. Christ. Are you just stupid, or is it that you have never done a day of professional programming Well, the Borland Delphi VCL library, whcih I used profesionally for several years before switching to Java, does precisely what I described. The VCL is widely regarded as a very good class library. Add it up yourself.

    Properties are a power tool - you can do stupid things with them, but not nearly as stupid as with operator overloading. That is not a good argument against them.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  110. You're not using C# by Anonymous+Brave+Guy · · Score: 2

    You're not using C#. You're beta testing a product that has changed a lot over that year, and probably will change a bit more before it's released. You're aiming at a moving target, with no fixed definition.

    Furthermore, that target itself aims at another target (.NET) in a similar situation. (Please don't spin me the pathetic argument that C# is independent of .NET; C# has no standard library worth speaking about, and there is no likelihood of a serious C# implementation on any other platform any time soon.)

    It is simply not possible to develop applications properly in that environment. Until C# and .NET are properly released, you're not using a language, you're playing with a toy. Real languages for real use have concrete definitions, preferably of the status of a formal standard, and they don't change every five minutes on the whim of a senior engineer at Microsoft.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  111. Stop spreading FUD please. by Anonymous Coward · · Score: 0

    > Firstly, the author has this backwards: the Java language design is dictated by one organization -- Sun;

    This is no longer true. Go check at java.sun.com.

  112. C# may be very good for Java by bigbird · · Score: 2, Insightful
    1. It may force Sun to be more proactive on Java features such as parametrised types. Competition is good.

    2. Many VB and C++ developers will move to C#. They will then be in an ideal position to transition to Java with little effort if they have a requirement for cross-platform apps.

  113. while this seems to have by rutledjw · · Score: 2, Insightful

    dissolved into a flame war, I think that the ending evaluation is that C# will be doomed to 2nd or 3rd place unless they can address multi-platform use. If that happens, well then the gloves are OFF.

    MS needs to hurry however, as Java continues to gain in acceptance (regardless of it's problems) in more mainstream sw arenas (Oracle, IBM). Let's not forget that technical superiority alone does NOT a successful product make. There are plenty of SmallTalk coders who think Java should have gone STRAIGHT to the junk heap.

    I, like many others, do not particularly care for MS. I feel they provide low-quality product and user clever marketing combined with arm-twisting to maintain market dominance in the areas they control.

    That said, as a Java programmer I'd really like to see some competition with Java. Who knows, Sun just may open in up to ensure that MS can't get a foothold!

    --

    Computer Science is Applied Philosophy
    1. Re:while this seems to have by ergo98 · · Score: 1

      Totally agree. Indeed I find it interesting that many of the features and benefits of the .NET platform have been available in J2EE for a while now, so it's weird hearing people promoting them as a revolution, when really is conceding the position of the other side was right all along. Having said that I think Microsoft did the right thing making C# so alike to Java (of course the standard disclaimer is that they're both derived from C++ so naturally that's going to happen) that Java programs can easily become cross-trained in both, ensuring that C# isn't such a transition that no one ever makes it.

  114. Fundamentally different. by Martin+S. · · Score: 2

    I think from the level of people who make decisions about what programming languages to use on commercial projects (this includes me), the technical distinctions between Java and C# are of little concern:

    This belief is instilled by Microsoft Marketing, Java/C# only resemble each other on the surface, underneath they fundamentally different. This is the reason that this decision should be taken be an experienced technical professional.

    the languages are so similar that they are basically interchangeable.

    Whilst Microsoft are attempting to position C# against Java this is their marketing at work, technologically they are not interchangable. As you latter comment note C# it is in competition with products like C++, Delphi, VB, not Java.

    Java's technological competitors are actually, Perl, PHP and Python. Since they are the only tools with any like Java's platform independence.

    1. Re:Fundamentally different. by Anonymous Coward · · Score: 0

      I just ran a C# compiler written in C# on my Linux box, using a 100% non-microsoft implementation from the STANDARDIZED specs. This is before C# and .NET are officially released.

      It took how many years for Kaffe to reverse engineer Java enough to run javac?

      Your arguement is laughable.

  115. Bad Conclusion by snatchitup · · Score: 1

    It looks like the writer hands over the big V to MS. I can't disagree with him more. First of all, c# clearly looks like ms copied Java and put in their nuances, it's still plagiarism. I could go out and create a new language; call it "Cheddar", add in "Checked Exceptions" from Java; and claim it's the far superior language to both Java and C#. The truth is, Java is a fine language and idea, good enough for MS to consider a "Disrupter technology", and basically invented C# to (in the words of Bill) "Undermine Java".

    The writer totally discounts the value of Java's far greater "maturity" as evidenced by the much more extensive container class libraries. These libraries aren't more extensive because somebody at Sun was smarter, no, Java simply has the jump on C# and its maturity shows. I'm not going to throw away my confidence in Java for some Johnnycomelately knock off. And oh by the way, I've got 14 years of C++, and don't miss anything about it with Java.

  116. Re:urm yeah, 'up and coming dev guys' take some ad by platypus · · Score: 2

    Notice the *identical* number of hits for C, C++ and C#? Obviously a flaw in the search on dice. However, it's probably safe to say that none of C, C++ or C# produces more than that number of hits legitimately.

    Really?
    Just click on the first link of the C# results and tell me where you find C# in the job description.
    Hint: Nowhere
    Conclusion: Your method is completly flawed, presumably because their search engine just ignores '#' and '++'.
    Btw., even if it worked, your C# and C++ results would be a subset of your 'C' results.

  117. FUD by Tony-A · · Score: 1

    This notion that it requires Windows Messenger and .Net passport is absolutely false. No such requirement exists, and none shall ever exist.
    Wow. We have an Anonymous Coward's assurance. Incredible.
    Both C# and .NET with be at Microsoft's whim.
    Java is Sun's baby, but IBM is enough involved that I do not have to trust either Sun or IBM to have reasonable assurance that Java will continue to be usable. Both IBM and Sun have too much to lose to allow silly fun&games to be played.

  118. Re:urm yeah, 'up and coming dev guys' take some ad by easter1916 · · Score: 1

    Move to Saint Louis -- the market here is still relatively strong. If you're interested you can email me at yuri_gagarin@msn.com.

  119. friggin! by Ithil · · Score: 0
    I thought 'plain old text' guarded '<', '>' pairs. Ah well...

    #include <iostream>

    using std::cout;
    using std::endl;

    class test
    {
    public:

    test() : size_ (0) {}

    int const& size() const { return size_; }
    int& size() { return size_; }
    void size (int size) { size_ = size; }

    private:

    int size_;
    };

    int main()
    {
    test t;
    t.size() = 41;
    cout << ++t.size() << endl;

    return 0;
    }

  120. Better Strategy by Tony-A · · Score: 1

    It will be interesting to see wether fancy tools (Microsoft VisualStudio) or good software engineering practices are the better strategy.
    If you want cross-platform viruses then Microsoft is definitely the way to go.

  121. Nice troll. by dave-fu · · Score: 1

    If only it weren't for the fact that golden boy de Icaza and his Ximian clan were developing an open-source implementation, you'd actually have a point.
    Also, being able to separate C# the language from .Net the runtime platform (something Java has yet to do, no?) would be a nice step forward.

    --
    Easy does it!
    This comment has been submitted already, 276865 hours , 59 minutes ago. No need to try again.
  122. You forgot the sexiest new operator. by dave-fu · · Score: 1

    The using() operator. As long as a given class you're looking to use implements IDispose functionality, you can use it and completely control its scope, instantiation and collection. It's keen!
    And, uh. What exactly is wrong with the MSXML parser? As long as you use the version that you can get from Microsoft (the MSXML 4.0 parser's shipping and if not, the MSXML 3.0 parser's been shipping for 6+ months) and not the version that was shipped with IE (IE was released before XSLT was a ratified W3C spec) then it certainly does adhere to the spec, minus the kludgy MS interpretation of XSLT in the IE-bundled version.

    --
    Easy does it!
    This comment has been submitted already, 276865 hours , 59 minutes ago. No need to try again.
    1. Re:You forgot the sexiest new operator. by ClubStew · · Score: 2

      ...and, the MSXML parser actually implements the standard DOM. When's the last time Microsoft has implemented standards? The MSXML parser is a good thing, just needs a little to catch up to apache's Xalan and Xerces projects that already implement standards like XLink and XInclude.

  123. M$ Astro turfer by Martin+S. · · Score: 2


    I was going to rebut this purely on the grounds that generics are a crutch for people that simply don't get OO, but after checking out your posting history it's clear that you are clearly a M$ Astroturfer, so I've leave your fate to the moderators.

    http://slashdot.org/~javabandit/

    1. Re:M$ Astro turfer by javabandit · · Score: 1

      Generics are a crutch? You are clearly delusional. Take a look at the most OO languages out there, and you will see that they include features such as parametric polymorphism, parametric types, and covariance.

      I suggest you check out Eiffel. Of course, you probably think that the folks who designed Eiffel don't know anything about OO, either. Or Ada. Or C++. I guess they all were idiots.

      You obviously don't understand the benefits of generics, otherwise you wouldn't be saying such dumb things. Yeah... asking for some type safety and a generic collections framework is really dumb.

      You obviously are an idiot who thinks they understand what OO is about... but really don't know.

      And if you think I'm a Microsoft junkie simply because I want Java to be more than what it is, then you are even more of an idiot.

      Can you say STRAWMAN?

    2. Re:M$ Astro turfer by Anonymous Coward · · Score: 0

      "generics are a crutch for people that simply don?t get OO"

      It is truely shocking that someone as stupid as you can operate a computer.

    3. Re:M$ Astro turfer by Martin+S. · · Score: 2

      The writing style of this poster has an uncanny resemblance to this proven M$ Astrosurfer, Perhaps M$ should sack him, hes not very good at his Job because he keeps getting caught.

      http://groups.google.com/groups?q=JTK&hl=en&rnum =2 &selm=8nju5c%24dg7%241%40nnrp1.deja.com

  124. Do you know what an "RC" is? by ergo98 · · Score: 2

    An RC is a release candidate: Meaning that they're proposing that that is what they might actually release. That's closer to a real product than most products in the open source arena will ever be.

    Having said that: Jesus Christ you zealots are a riot. I don't even really LIKE C#, nor am I sold on the ".NET" idea, nor have I advocated FOR it. I merely questioned what seemed to me to be a pure karma whore post because it obviously was written just to cater to the psycho zealots that frequent Slashdot.

    And for all the dumb motherfuckers out there let me explain something: You "interoperate" (regardless of hilarious [sic] comments by trying-to-be-pretentious kids) with "properties" either via method, or via more abstract methods. I prefer the more abstract methods of Delphi, and also C#. It's amazing how many people will yap up their opinion on this when they have no clue.

  125. Another bites the dust by boy_afraid · · Score: 1

    Sing to the beat:

    Another one bites the dust.
    {dum dum dumb}
    Another one bites the dust

    Another one dies, another one dies
    Another one bites the dust
    HEY!
    {dum dum dumb}

    REMEBER THE 80s!

    "WONDER TWIN POWERS, ACTIVATE !!!"

  126. garbage collection: nice toy for hacks by Anonymous Coward · · Score: 0

    garbage collection!
    What a great toy for non-deterministic programs.

    It is good that we have these toys available
    for people that don't really know how to program.

    If you want to use a real language, use C.
    C++ is good for GUI's.

    Anyone who is using D-flat is obviously
    getting paid to do it by Msoft.

    For real programs that HAVE TO work,
    one would NEVER use toys like garbage collection.

  127. Re:Some more disinformation by Anonymous Coward · · Score: 0
    You're not the only one who has programmed in Object Pascal, you know.

    Object Pascal is a haphazard language compared to Java. It is obvious that Hejlsberg just copied the features from Object Pascal to C# (obviously he thinks they're good, which doesn't count for much).

    Properties are unnecessary syntactic sugar to the language with potentially difficult to detect side effects making the code maintenance harder.

    I'm glad Java does not have properties. I'm also glad that when Anders went to Sun with his ideas they were rejected. He is just a bitter little boy. An instrument being played by BG and the company.

  128. that's not true by mikemulvaney · · Score: 1

    Actually, the equals method in java.lang.Object will return true only if the memory locations of the two objects are the same. It does not compare the internal "data".

    So in the above example,

    Direction.EAST.equals(Direction.WEST)

    would return false. I think you are confused with the way Strings work: the equals method on java.lang.String does indeed compare the internal string representation (the "data"), so if Direction.EAST was a String, your comment would be correct. But its not a String, its a Direction.

    -Mike

    1. Re:that's not true by spiro_killglance · · Score: 2


      Look at the parent message i was reply to, he
      didn't have any data in the Direction class,
      with, so they all had the same data. If I was
      replying to the parent of the that message, you
      would be correct.

    2. Re:that's not true by mikemulvaney · · Score: 1

      It seems that you are still confused, because you said "he didn't have any data in the Direction class". Like I pointed out earlier, the 'data' doesn't matter. The java.lang.Object.equals method compares the actual memory location, not the internal 'data' of the object.

      This example:

      public class Direction {

      private Direction() { }

      public final static Direction NORTH = new Direction();
      public final static Direction SOUTH = new Direction();
      public final static Direction EAST = new Direction();
      public final static Direction WEST = new Direction();

      }

      Will absolutely work, even though there is no 'data'. I think you are confusing the behaviour of java.lang.String with java.lang.Object.

      If that wasn't the parent you were referring to, I apologize.

      -Mike

  129. Stories on Java must scare trolls out of hiding by Geek+Dash+Boy · · Score: 1

    it's funny how trolls on /. seem to flock this topic. I find that you can usually tell a troll if their uid is > 100,000 (over half a mil is a sure thing). Nice try with the nasa.gov email address too.

    --
    I say we take off and nuke the entire site from orbit. It's the only way to be sure.
  130. Re:urm yeah, 'up and coming dev guys' take some ad by Anonymous Coward · · Score: 0

    yuri_gagarin@msn.com

    Are you sure it's not your previous experience that's allowing you to command such a high salary? ;-)

  131. Re:Brit'ny Spears confirms BSD is dead by MrPerfekt · · Score: 1

    The Amiga is dead. The Amiga was far superior to anything of the day. Do you see where I'm getting at? Just because something is dead, doesn't mean it's not better and won't continue to be better than the competitor for a while. Bottom line, FreeBSD is still being developed and used by more people with clue than I can count.

    --
    I just wasted your mod points! HA!
  132. Re:Some more disinformation by StrawberryFrog · · Score: 1
    You're not the only one who has programmed in Object Pascal, you know.

    *shrug* I never claimed to be. You're not exactly forthcoming about yourself, Mr Coward, so how would I know.

    Object Pascal is a haphazard language compared to Java.

    Of course: That's because it's been through about 14 major versions from borland pascal 1. I respect the purity of Java's design, but wait a while.

    It is obvious that Hejlsberg just copied the features from Object Pascal to C#,

    Of course: take the good, try to improve on the rest. Every progamming language designed since day 1 has tried to do that. You say it like it's a bad thing.

    obviously he thinks they're good, which doesn't count for much.

    I beg to differ.

    Properties are unnecessary syntactic sugar

    Yup. So's operator overloading.

    to the language with potentially difficult to detect side effects making the code maintenance harder. I'm glad Java does not have properties

    based on years of programming Dlephi, I beg to differ. It make code maintainence so much easier when you don't need to know or care if you are reading a public data, function return value or property gettor. The implementation is free to change while leaving the client code the same, so long as the interface semantics don't change. Sure you can shoot yourself in the foot. Idiot-proof things are only worth using by idiots. IMHO operator overloading and multiple inheritance are *far* easier to abuse and obfuscate.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  133. Report has at Least One Error by Anonymous Coward · · Score: 0

    This report lists RTTI as a feature present in C# and missing in Java, and provides this as an example of something you can't do in Java:


    Run Time Type Identification (as operator)

    The C# as operator is completely analogous to C++'s dynamic_cast construct. The semantics of the as operator are that it attempts to perform an explict cast to a type and returns null if the operation was unsuccessful.

    C# Code
    MyClass mc = o as MyClass;

    if(mc != null) //check if cast successful
    mc.doStuff();

    NOTE: The as operator cannot be used to convert to or from value types.

    Well, here's one way to do it in Java:

    if ( o instanceof MyClass ) {
    ((MyClass)o).doStuff();
    }

    Like I said, I only looked at the report for 5 minutes, so I don't want to make a judgement about its overall quality. But if I understand the author correctly, then at least this item is wrong, which is cause to view the rest of the report with suspicion.

  134. Yes, all too well by Anonymous+Brave+Guy · · Score: 2
    An RC is a release candidate: Meaning that they're proposing that that is what they might actually release.

    No, an RC is a "release candidate", meaning that it's a mid-late beta that they want people to test for them for free. It's a marketing tool, a name given so that people think the product is "nearly ready" and don't go out and buy into the opposition for several months.

    If it's what they were actually going to release it wouldn't be an RC, it would have been released. In a competitive environment such as Microsoft is in here, you don't just leave something on the shelf for three months after you've finished it.

    This is my point. People are seriously comparing a beta test product (with a flashy title) with a real product that's usable for actual work. This is absurd.

    This board is full of pro- or anti-C# rhetoric all the time, most of which is hype-based and unfounded. The one thing that is clearly true is that C# is not ready yet. I can go the office tomorrow and develop a world-class application in Java. I will go to the office tomorrow and develop a world-class application in C++. I cannot go to the office and develop a world-class application in C#. I rest my case.

    Having said that: Jesus Christ you zealots are a riot. I don't even really LIKE C#, nor am I sold on the ".NET" idea, nor have I advocated FOR it. I merely questioned what seemed to me to be a pure karma whore post because it obviously was written just to cater to the psycho zealots that frequent Slashdot.

    You should be a little less cynical. It wasn't a karma whore post at all; for a start, I've been karma capped since not far past my 100th post, months ago, and for seconds, I don't have any need to pander to slashbot groupthink anyway. On the contrary, my original post was a somewhat ironic one-liner written by a professional programmer, writing real code in the real world for real clients, who's sick and tired of hearing people spouting off about C# as if it was on a similar level to Java, C++ and other established, stable, reliable development tools. Everything since has just been responding to your replies.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Yes, all too well by ergo98 · · Score: 2

      No, an RC is a "release candidate"

      Is there an echo in here? :-)

      meaning that it's a mid-late beta that they want people to test for them for free. It's a marketing tool, a name given so that people think the product is "nearly ready" and don't go out and buy into the opposition for several months.

      All software release terms are marketing arbitrary terms that have little real life meaning. ICQ is in perpetual "beta" (have they ever NOT been beta) because that's a disclaimer excusing incorrect-tab order, fatal faults, etc. The Java Jumpstart package is a hodgepodge mess of poorly integrated products, but it's a "final release". Visual Studio.Net RC1 is a very completely product, and most certainly if anything any changes to C# will be absolutely trivial. The changes during the RC phase are at most moving a dialog around or fixing spelling mistakes.

      You should be a little less cynical

      My karma whore comment was relating to the first post in this whole dirty thread, rather than yours.

    2. Re:Yes, all too well by Anonymous+Brave+Guy · · Score: 2
      Is there an echo in here? :-)

      Nah, I added "" in mine... :-)

      As far as the descriptions of software products go, I agree entirely that most are marketspeak, and meaningless when compared across different products. My point was purely that however you look at it, C# is not (yet) a serious contender when faced with heavyweights like Java or C++. Time will tell whether it can establish itself in that league, of course. I'm afraid the perceived implication that it's there already just set off my "pet peeve" alert. :-)

      Oh, and sorry about the "cynical" comment. Your post was ambiguous, and I misinterpreted it.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  135. Re:urm yeah, 'up and coming dev guys' take some ad by easter1916 · · Score: 1

    Well, that could be it. That and the fact that I've mastered the art of returning from the dead.

  136. Java? Elegant? by nosferatu-man · · Score: 1

    "... I'd have to pick Java if it was up to me just because of its sheer elegance."

    Beg pardon? Java? Elegant? Needlessly verbose, yes. Kludgy, yet strangely popular, yes. Omnipresent, nearly. But elegant? Not hardly. It's got a bunch of interesting hooks into it's own execution environment, sure, but that's some far cry from elegance.

    Ick.
    (jfb)

    --
    To spur "enterprise Linux," Big Bang, the distributed two-phase commit.
  137. You are wrong by Anonymous Coward · · Score: 0

    Like I said, I only looked at the report for 5 minutes, so I don't want to make a judgement about its overall quality. But if I understand the author correctly, then at least this item is wrong, which is cause to view the rest of the report with suspicion.

    Well if you had spent more time reading the article you would have seen a section on instanceof and the is operator in C#. Guess this goes to show you that when you assume you make an ASS out of U to me.

  138. Orp by Anonymous Coward · · Score: 0

    Orp op op ah ah.

    Orp op op ah ah.

    Quandy wando flu!

  139. Stability, Adoption, and Java by mrosgood · · Score: 1
    Quite a few posters criticize Sun for not refining the Java language (fast enough). I am probably the most impatient Java user on this planet. I want const, enums, overhaul of threading, tossing all the deprecated stuff, etc.

    But I'm reminded by something that Bill Joy said at the first or second JavaOne conference. He was relating his experience with NFS. It took years for everyone to make compliant implementations. He concluded, probably correctly, that the most important factor to securing adoption of the Java language is to not change it.

    Having watched the evolution of Java and the JDK since the alpha2 release, I'm inclined to agree. It wasn't until JDK 1.2 that WORA became a matter of discipline, versus somewhat hard. And JDK 1.4 (now in beta) is truly boss.

  140. Stack-Based Classes by mrosgood · · Score: 1

    I sent the following reply Dare. It might be interesting to others.

    ---

    Hi Dare-

    Thanks for writing and posting your comparison. Eventually, I'll need to get some project experience using C# -- your article will surely prove helpful.

    I do have an initial comment. I believe C#'s exposure of low-level machine constructs to be misguided and ultimately counterproductive.

    C#'s "stack based classes" {see section 4, "Value Types (Structs)"} is one such feature. As with garbage collection, the decision to allocate objects on the stack or heap is best left to the runtime (virtual machine). Note that nothing in the Java Specs disallows allocating objects on the stack; that's an implementation detail.

    Jalapeño is IBM's research Java Virtual Machine (recently released as the open source Jikes JVM). Here's an interesting paper detailing their technique for determining when objects can be allocated on the stack:

    Escape Analysis for Java
    http://www.research.ibm.com/jalapeno/publication.h tml#oopsla99_escape

    (The paper also covers the elimination of unnecessary synchronization; also very cool.)

    So if C#'s "struct" keyword (for stack-based classes) isn't necessary, neither is the "boxing" hack for wrapping "struct" objects in a class.

    Escape analysis and the like could probably be applied to C# (and the CLR). But why provide the language feature if it's unnecessary?

    The worst part, though, is that C#'s stack-based classes feature focuses attention on the implementation instead of on the problem domain. I'm sure there's a quote about premature optimization that applies.

    Again, thank you for posting your comparison!

    Cheers, Jason

  141. C++ Programmer's Disease by 21mhz · · Score: 1
    I might have cut hard on the subject, but still. All the concepts of C++ are understandable and even programmer-friendly, but the language as a whole is insanely vast and deep. This leads to:

    • Sheer complexity of compiler implementation, which leads to fragility. Remember, the compiler must translate each compilation unit (a source file and headers it includes) into an object file, which has rather primitive means to link to other modules. This is OK for C, but is too tight for C++. Basically, all components of a program and the libraries it uses must be compiled by the same compiler, the same version of it, with the same set of 'runtime-sensitive' flags e.g. exception support. I take part in development of a high-profile Linux distro and I know what a headache C++ libs are.

    • The C++ Programmer's Disease, when one leverages all the advanced C++ features for easyness's sake, but has no idea on what repercussions they have in the real world of cold machine code. Needles to say how these things are affected by quality of design.


    You mentioned templates. What, do you think, is more effective: N instantiations of list<T> in N libraries that use it, M of these N instantiations being completely identical -- or one implementation of list that can carry pointers or values under the pointer's size, that is used heavily and sits in the cache? Can you dlopen() a shared library and look up your templatized overloaded namespaced function by its symbol name?

    Yes, there are lot of areas where C++ fails, because it wasn't designed to address their requirements. In fact, it fails everywhere except small COM/CORBA/whatever components, generation of boilerplate code (the idea behind ATL is neat), and huge monolithic software systems where rapid development is on top of the list. And we on /. know how the latter sucks, don't we?

    Perhaps in this case the problem is not the language, but the programmer.

    Totally agree here, except with "the language" substituted for "the language that fits the job", and "the programmer" with "one that moans about how he misses the features of his favorite programming language". The Real Programmers don't hesitate doing OO stuff in C, and doing it elegantly.

    --
    My exception safety is -fno-exceptions.
  142. Re:urm yeah, 'up and coming dev guys' take some ad by BobMarley · · Score: 1

    I don't suppose it's reasonable for me to expect someone to read what I've posted before replying to it. After all, this is slashdot. Thanks for repeating (ok, paraphrasing) the last paragraph or two of my post; it made things so much clearer.

    duh.

  143. Question to Python Ouchers by Anonymous Coward · · Score: 0

    I've worked for years in Python and C/C++, but, honest to god, I find Visual Basic code really hard to read. I usually just give up. There seems to be something WRONG with both the syntax and what junk has to be written to make anything work. Does VB seem that way to you?

    1. Re:Question to Python Ouchers by DrSkwid · · Score: 1

      once you've had your eye opened VB is revealed for the horrible rotting corpse it is

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter