Clash of the .Net, J2EE Clans?

Discussions

News: Clash of the .Net, J2EE Clans?

  1. Clash of the .Net, J2EE Clans? (99 messages)

    Jim Wagner of InternetNews has written another piece that tries to pit .NET vs. J2EE. He cites a Forester report that claims .NET is in use in more enterprises than J2EE. He then goes on to talk about "ease of use" issues, and how Java 5 is coming to save the day.
    A report by Forrester Research in September found .NET has gained majority status in the enterprise world, if only by a slight margin.

    Among 322 software decision-makers who participated in the survey (".NET Versus J2EE: .NET Has Clearly Arrived"), 56 percent said they use .NET as their primary software development platform. J2EE use clocked in at 44 percent in the survey.

    Other findings in the report show:

        * .NET is the preferred platform in five of seven industries (public sector; business services; media, entertainment and leisure; retail and wholesale trade; and manufacturing), while J2EE is favored by the utilities/telecom and finance/insurance industries;
        * Firms with higher IT budgets are more likely to go with J2EE, while smaller firms and companies facing rough economic times are likely to choose .NET;

    A number of factors help .NET's popularity, notably the dominance of the Windows operating system and the novice-friendly programming languages like Visual Basic (define) and C# (define) that are used on the platform.

    Randy Heffner, Forrester Research vice president and author of the September report, said when Microsoft first announced .NET in 2000 (.NET Framework 1.0 and Visual Studio .NET didn't come out until 2002), there were big questions about whether Microsoft could get developers to accept a major architectural change from its prior Windows DNA platform. (DNA is short for Distributed interNet Applications Architecture, a marketing name for a collection of Microsoft technologies that enable the Windows platform and the Internet to work together.)

    "There were a lot of folks, before .NET came out, who had been in the Microsoft world and doing things in the DNA architecture, who were just saying, 'look, Microsoft's just not cutting it, I'm going toward the J2EE world,'" he said.

    "As opposed to .NET being a J2EE killer, it was really a Microsoft saver and it was their first enterprise-credible application delivery platform where you could think about doing more than departmental client-server applications."

    Clash of the .Net, J2EE Clans?

    Threaded Messages (99)

  2. another worthless article[ Go to top ]

    talk about an article light on content and heavy on BS. For simple applications, just about any platform will work. For the hard stuff, it still takes an experienced developer who understands the domain and takes time to dot the i's and cross the t's.
  3. another worthless article[ Go to top ]

    talk about an article light on content and heavy on BS. For simple applications, just about any platform will work. For the hard stuff, it still takes an experienced developer who understands the domain and takes time to dot the i's and cross the t's.

    <sarcasm>Which exactly where you'll need your 'novice friendly' programming languages.</sarcasm>

    Rob
  4. C#[ Go to top ]

    I've been programming on and off in C# for about 18 months (been programming for a living in Java for almost 7 years) and there are parts of C# I really like.

    Things like enumerated types have now been addressed in Java 1.5, but Java still has nothing like .NET events - the ability to register callbacks with any object that supports a method signature rather than an interface. Delegates and events are very cool indeed.

    And I do like properties.

    I also like that my open source FTP library written in C# (edtFTPnet, see google) is probably mainly used by VB programmers. And there's a lot of them.

    My main whinge is the lack of checked exceptions - it makes it rather hard to figure out what exceptions a method call throws if they are documented incorrectly.
  5. C#[ Go to top ]

    ...but Java still has nothing like .NET events - the ability to register callbacks with any object that supports a method signature rather than an interface. Delegates and events are very cool indeed.
    At first I thought he delegates were cool too but then I realised that it can lead to code which isn't very readable - the event handler method in different classes having different names. The delegate construct is really like a function pointer and so I don't think its very object oriented. I much prefer the Java way of doing it (using interfaces). Note though what in .NET we can still do it the java way.
    My main whinge is the lack of checked exceptions - it makes it rather hard to figure out what exceptions a method call throws if they are documented incorrectly.
    I absolutely agree with this. This is the single biggest design flaw in .NET - and its at the level of IL not just C#. Microsoft try and say this was a 'design decision' but the reality is, I think, that they didn't want the large body of VB developers to have to learn how to use Checked Exceptions properly so they just dumbed it down. Very unfortunate that they did this.
  6. C#[ Go to top ]

    My main whinge is the lack of checked exceptions - it makes it rather hard to figure out what exceptions a method call throws if they are documented incorrectly.
    I absolutely agree with this. This is the single biggest design flaw in .NET - and its at the level of IL not just C#. Microsoft try and say this was a 'design decision' but the reality is, I think, that they didn't want the large body of VB developers to have to learn how to use Checked Exceptions properly so they just dumbed it down. Very unfortunate that they did this.

    Me too. One of the biggest pains in VB Classic. One reason I was joyful to move to Java. The nice thing about Java is choice in exception type.
  7. C#[ Go to top ]

    While I am am facing an issue - Project files are a pain too. It would be ok for dependancies but not to list every class in the "Project". Of course VSS doesn't help the issue either.
  8. C#[ Go to top ]

    At first I thought he delegates were cool too but then I realised that it can lead to code which isn't very readable - the event handler method in different classes having different names. The delegate construct is really like a function pointer and so I don't think its very object oriented. I much prefer the Java way of doing it (using interfaces). Note though what in .NET we can still do it the java way.

    Yes, the flexibility of delegates could certainly lead to code confusion if developers are undisciplined. But when I compare my code using interfaces to the same code using events, the latter is much more elegant (if less object-oriented). Hopefully the worst programmers are using VB :)
  9. C#[ Go to top ]

    Microsoft try and say this was a 'design decision' but the reality is, I think, that they didn't want the large body of VB developers to have to learn how to use Checked Exceptions properly so they just dumbed it down. Very unfortunate that they did this.

    I like checked exceptions - for pretty much the same reason as mentioned previously. But I would have to admit that there are plenty of people in the Java community who don't like them and don't use them. As an example, consider the Spring JDBC framework. This uses unchecked exceptions, and I believe that was a deliberate design decision. One man's "simple lightweight" is another man's "dumbing down", I guess.
  10. C#[ Go to top ]

    The spring people had a legitimate reason to use unchecked exceptions. If there is a jdbc problem, it means something really bad went wrong and shouldn't be part of the business logic (they want to treat sql exceptions like NullPointerExceptions and they are right). It really simplifies code. It really isn't a dumbing down so to speak. At least in java we have a choice.

    Dino
  11. C#[ Go to top ]

    they want to treat sql exceptions like NullPointerExceptions and they are right

    <sarcasm>Yes, realy nice design choise.</sarcasm> Having a null variable which is purely a bug is treated the same way as a primary key or concurrency violation which happens in production every day.

    --Dmitriy.
  12. C#[ Go to top ]

    they want to treat sql exceptions like NullPointerExceptions and they are right
    <sarcasm>Yes, realy nice design choise.</sarcasm> Having a null variable which is purely a bug is treated the same way as a primary key or concurrency violation which happens in production every day.--Dmitriy.

    Spring lets you handle the concurrency or PK exception if you want, without forcing you to handle all the other fatal exceptions
  13. C#[ Go to top ]

    Spring lets you handle the concurrency or PK exception if you want, without forcing you to handle all the other fatal exceptions

    But it's still an unchecked exception. It denies you the choice of using a checked exception. So in its design approach, Spring could be considered as being in alignment with C# and .NET.

    Now, there are people probably screaming in outrage at that, but why is that a bad thing? The people who developed C# aren't any more stupid than the people who developed Spring. Or the people who developed Java. They had good reasons for making the choices they made, and I don't believe any of them said, "Hey, I know, let's make this easy for stupid amateurs to use" anymore than the J2EE guys said "Hey, let's make this really, really difficult so that only a handful of uber-techies will ever really understand it" (although sometimes it feels like it).
  14. C#[ Go to top ]

    So in its design approach, Spring could be considered as being in alignment with C# and .NET.
    I disagree. The Spring community does recognise the value of checked exceptions; we just don't think that they are generally appropriate for infrastructure problems.

     - Peter
  15. SqlException is the dumb one[ Go to top ]

    A generic SqlException tells you nothing about what went wrong. How are you supposed to recover from such a general 'something went wrong' notification? Extract the sql error code, map it to a logical failure condition, and handle that? In every try/catch block? Well, that's what you should do, but nobody does. In my experience people who use JDBC directly either rethrow SqlException as a runtime exception or worse, eat it entirely.

    Spring has an intelligent, extensible exception translator as part of its JDBC framework that knows how to map generic SqlExceptions to strongly typed unchecked exceptions. You now can catch the types of failures you can recover from and let the others propogate up the call stack like they should (because they are indeed unrecoverable.)

    Keith
  16. SqlException is the dumb one[ Go to top ]

    Keith,
    I guess it’s been said many times already here on TSS but I’ll be tireless in my persuade :-)

    Nobody is arguing with extra information in JDBC exception (and many frameworks were doing it before Spring and after). What I and many others are arguing in this case is how you propagate the exception up the call stack. In runtime exception scenario you rely on up to date documentation to know what to catch and what to propagate, in checked exception scenario you rely on compiler. My point is that the later is always more robust, automated and leads to more cohesive design. That’s all there is to it.

    Regards,
    Nikita.
  17. C#[ Go to top ]

    I like checked exceptions - for pretty much the same reason as mentioned previously. But I would have to admit that there are plenty of people in the Java community who don't like them and don't use them.
    I don't think this is really true, not even in the Spring community.

    There is a recognition that perhaps checked exceptions have become too ubiquitous. A recognition that we should perhaps think more carefully about which exceptions have business meaning or need explicit handling for some other reason and must therefore be checked, and which exceptions are generally unrecoverable and are best allowed to propagate unchecked to a generic top-level error handler.

    The Spring folk felt that in the majority of cases, database-related exceptions fall in the latter category. I started out a sceptic, but having used their approach in anger on a non-trivial (150K LOC) project, I have to agree. It's a great de-clutterer and I have yet to find the flip side.

     - Peter
  18. C#[ Go to top ]

    I like checked exceptions - for pretty much the same reason as mentioned previously. But I would have to admit that there are plenty of people in the Java community who don't like them and don't use them.
    I don't think this is really true, not even in the Spring community.There is a recognition that perhaps checked exceptions have become too ubiquitous. A recognition that we should perhaps think more carefully about which exceptions have business meaning or need explicit handling for some other reason and must therefore be checked, and which exceptions are generally unrecoverable and are best allowed to propagate unchecked to a generic top-level error handler.The Spring folk felt that in the majority of cases, database-related exceptions fall in the latter category. ...&nbsp;- Peter

    This topic has been going on for sometime but i think you have the nail on the head.
  19. C#[ Go to top ]

    Prevoius message should be "hit the nail on the head"
  20. C#[ Go to top ]

    Microsoft try and say this was a 'design decision' but the reality is, I think, that they didn't want the large body of VB developers to have to learn how to use Checked Exceptions properly so they just dumbed it down. Very unfortunate that they did this.
    I like checked exceptions - for pretty much the same reason as mentioned previously. But I would have to admit that there are plenty of people in the Java community who don't like them and don't use them. As an example, consider the Spring JDBC framework. This uses unchecked exceptions, and I believe that was a deliberate design decision. One man's "simple lightweight" is another man's "dumbing down", I guess.

    Checked exceptions is not the only design flow in C#. Pass by reference is another fallback to an older languages feature. You pass a native type to a method and the value could change in the calling method if you pass the parameter as ref. Who needs that? This will make debugging code harder and encourage bad practices.
    Name spaces is another downside. You define a name space and pack as many classes as you want in the same file. I prefer Java convention of one class one file.
    They complicated inheritance modifiers for no use. They had delegates implemented as function pointers.
    C# even has some archaic features like goto and preprocessor commands #ifdef #endif.
    All the nice things in C# are lifted from Java. Some times they did not event bother changing the naming: Hashtable, ToString, ArrayList, ect.
    They added some bells and whistles that are not pleasant to hear.
    And have tried to make a general assembly? VS.NET will not help you with that. You gotta love the DOS script you have to write.
  21. C#[ Go to top ]

    I meant design flaw (not flow.)
  22. C# does ref right![ Go to top ]

    Checked exceptions is not the only design flow in C#. Pass by reference is another fallback to an older languages feature. You pass a native type to a method and the value could change in the calling method if you pass the parameter as ref.
    C++ has this problem, but C# does it right. For both ref and out parameters, you must designate them as such when calling a function. No invisible side effects.... no surprises.

    example calls:
    getCorrelation(arr1, arr2, out correlation, out covariance);
    getArray(ref target);

    I'm a full time Java developer, but I wish java had some of the features C# has. Java 1.5 was a huge step in the right direction though!

    -Yonik
  23. C# does ref right![ Go to top ]

    "C# does it right. For both ref and out parameters, you must designate them as such when calling a function. No invisible side effects.... no surprises."
    Niklaus Wirth did something similar in Algol W in the early 70's.
  24. C# does ref right![ Go to top ]

    "C# does it right. For both ref and out parameters, you must designate them as such when calling a function. No invisible side effects.... no surprises."Niklaus Wirth did something similar in Algol W in the early 70's.

    Curiously enough, my master's supervisor was headhunted by Microsoft Research a few years ago. He worked with Niklaus Wirth and was one of the authors of Oberon.
  25. C# does ref right![ Go to top ]

    "C# does it right. For both ref and out parameters, you must designate them as such when calling a function. No invisible side effects.... no surprises."Niklaus Wirth did something similar in Algol W in the early 70's.

    Can you give me the example of any other language that never have done it right. I mean the other two lnagugaes that I know which provide these semantics are ADA and C++ and they both have done it right, according to my expereince. I never have written Algol so no comments.

    BTW for me passing objects by real reference is confussing and a fancy feature, that may make sense in some low level languages, but we may not need it in high level languages. I am glad that Java never chose to do so.
  26. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.
  27. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.

    that's why there's code generation :)

    though I find VS.NET more annoying that anything else. the fact that VS.NET 2003 doesn't include interface as a type in the create new class wizard is a big oversight to me. I'm totally bias. what ended up happening on a project is the developers didn't bother creating interfaces for their components, because "interface isn't an option in the new class wizard and if was important MS would have included it."

    that was actually an excuse given by more than one developer on numerous occasions. this was after the entire team was explicitly ordered to create interfaces for their components which other developers could use in their integration development.
  28. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.


    And why is that so horrible? That's just the inverse of Java where you can override unless you mark a method final. If you want to let a method to ber overridable you just mark it so.
  29. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.

    And why is that so horrible? That's just the inverse of Java where you can override unless you mark a method final. If you want to let a method to ber overridable you just mark it so.

    It's horrible because it's the cause of unexpected behavior if you forget to mark it as virtual. Java does not have unexpected behavior, and thus represents a better engineering decision.

    In C++, this was a common source of bugs. Microsoft only kept the C++ default to save a handful of clock cycles per non-inlined method invocation, and to be able to more agressively inline without dynamic optimizations. In other words, the engineers at Microsoft made their job easier in exchange for making their customers' jobs harder. Seems like a bad choice to me.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  30. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.
    And why is that so horrible? That's just the inverse of Java where you can override unless you mark a method final. If you want to let a method to ber overridable you just mark it so.

    Heh, and how exactly do you do that on a class or interface you don't have the source for, such as an external library, or the standard library?
  31. C# virtual functions[ Go to top ]

    Don't forget you have to explicity mark a C# function as virtual if you want to override it in a subclass. Horrible design decision.

    Even though I like Java approach to make every thing virtual by defualt unless you explicitly say other wise, C# approach is quite opposite, but I can not say it is horrible; it is argumantative though. Especially when you think 90% of the time you never need to override a method, then why pay the penalty of being polymorphic just for the 10% of the time.
  32. C#[ Go to top ]

    Microsoft try and say this was a 'design decision' but the reality is, I think, that they didn't want the large body of VB developers to have to learn how to use Checked Exceptions properly so they just dumbed it down. Very unfortunate that they did this.
    I like checked exceptions - for pretty much the same reason as mentioned previously. But I would have to admit that there are plenty of people in the Java community who don't like them and don't use them. As an example, consider the Spring JDBC framework. This uses unchecked exceptions, and I believe that was a deliberate design decision. One man's "simple lightweight" is another man's "dumbing down", I guess.

    In Java the underlying language is able to offer the flexibility to develop an API either with the checked exceptions or one wothout them. I think this is the strength of Java, which C# missed to take advantage of.
  33. C#[ Go to top ]

    <blockquotebut Java still has nothing like .NET events - the ability to register callbacks with any object that supports a method signature rather than an interface. Delegates and events are very cool indeed.
    Having no delegates doesn't mean that Java doesn't have the call back mechanism. What you can do with delgates can be done by inner classes and arguably more elegantly and in OOish way.
  34. C#[ Go to top ]

    That's exactly my opinion about delegates. They are implemented as function pointers which is not OO. They are confusing to use and make code less readable. The lack of checked exceptions is another major problem for using C#. It is frightening, you pick up a C# book and you go thru the IO, remoting and what have you, and there is almost no where you can find a try/catch statement.
  35. C#[ Go to top ]

    static void Main(string[] args)
    {
       try
       {
          //Do something
       }
       catch(Exception ex)
       {
          // Display error
       }
    }

    OR

    Just let it blow up like a VB app. And don't think it don't happen for apps that cost big $$$ or whatever currency.

    Either way - YUCK!
  36. handler uniformity[ Go to top ]

    "At first I thought he delegates were cool too but then I realised that it can lead to code which isn't very readable - the event handler method in different classes having different names."
    In Java, I've sometimes wished all event handlers in all interfaces were overloaded into one: handler(FooEvt), handler(BarEvt),...
  37. handler uniformity[ Go to top ]

    "handler(FooEvt), handler(BarEvt),..."
    or rather, handle(..)
    (just a modest proposal)
  38. handler uniformity[ Go to top ]

    "At first I thought he delegates were cool too but then I realised that it can lead to code which isn't very readable - the event handler method in different classes having different names."In Java, I've sometimes wished all event handlers in all interfaces were overloaded into one: handler(FooEvt), handler(BarEvt),...

    when I came across this particular feature of C#, I was both impressed and horrified. Impressed because you could all sorts of trickery, but horrified because it would make it rather hard for someone else to debug.

    my preference is to make code easier to read and maintain, even if another implementation would save a couple dozen lines. by easier to maintain, I mean giving the code to a new developer and not requiring someone else to walk them through the code. where performance is critical, I tend to do the reverse and choose the more efficient implementation at the cost of readability. Though generally, I'll write extensive comments to explain why the choice was made to go that route.
  39. not that report again[ Go to top ]

    A report by Forrester Research in September found .NET has gained majority status in the enterprise world, if only by a slight margin.

    IIRC, that's the report that they had to apologize for because it was "paid for" by Microsoft.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  40. In other news[ Go to top ]

    Report sponsored by tobacco industry concludes that there are no harmful effects to smoking.
    Report sponsored by French wine producers concludes that drinking a bottle of wine a day is good for you.
    Report sponsored by Monsanto concludes that GM crops are good for the environment
    Microsoft sponsored survey concludes Windows cheaper than Linux
    Sun sponsored survey concludes Sun One most popular J2EE App Server

    Yawn. Is there any reason why this rather old non-news non-event story is on TSS?
  41. In other news[ Go to top ]

    Please forget comparison with anything related to french food or drink.
    as far as i've seen, coke has done a lot more dammages than wine...and here, I'm talking about french wine, not the erzatz you chemically produce in the nappa...

    Laurent.
  42. Meeow![ Go to top ]

    I'm talking about french wine, not the erzatz you chemically produce in the nappa...

    Meow ! :-)

    Actually, I would avoid stuffy french wines and go some more exciting wine

    http://www.darenberg.com.au/default2.php
    http://www.devils-lair.com/
    http://www.seppelt.com.au/wines/salinger.html
    http://www.hungerfordhill.com.au/wines/?view=6

    (lets see if I am allowed in the office when I next go to paris...)

    :-)

    -Nick
  43. In other news[ Go to top ]

    here, I'm talking about french wine, not the erzatz you chemically produce in the nappa...Laurent.

    Laurent, no need to be insulting .. first, it's Napa, and second, many of the best French wines are made from grapes grown on vines that come originally from Napa ;-)

    So come over here and visit, and I'll haul out a case or two of French and a case or two of Napa and we'll compare. Better yet, _you_ bring a couple cases of your favorite French wines, and I'll give you my opinion of them ;-)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  44. In other news[ Go to top ]

    I was itching to respond too... but decided to stayed away political comments here. I guess original message's attitude is the exactly what got French to where they are today in minds of so many people.

    As far as wines (what a theme on its own!) I agree with Cameron. May be I’m not rich enough but the French wines that I have been trying (~$20-50) didn’t impress much yet the same price range from Napa really delivers. Occasionally, you can buy a $10 bottle of local Napa producer (on certain years) which will really get you puzzled whether price tag was missing an extra ‘0’ in it…

    Regards,
    Nikita.
  45. In other news[ Go to top ]

    I was itching to respond too... but decided to stayed away political comments here.

    Hehe .. my comment wasn't political .. I'm a huge fan of French _and_ California wines (not to mentions Italian, some South African, a few South American, ..)
    As far as wines (what a theme on its own!) I agree with Cameron. May be I'm not rich enough but the French wines that I have been trying (~$20-50) didn't impress much yet the same price range from Napa really delivers. Occasionally, you can buy a $10 bottle of local Napa producer (on certain years) which will really get you puzzled whether price tag was missing an extra 0 in it

    In France, for $10 you can get a great bottle of French wine. In Napa, for $10 you can get a great bottle of California wine. In France, you can't get a good California wine for less than $50, and the same is true of French wines in California.

    Needless to say, every time I visit France and California, I leave with quite a bit more than I arrived with ;-)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  46. Wines[ Go to top ]

    Since we're on wines... Java/J2EE gets better with age like wine. This is why .Not (I mean .Net) will always be behind.

    .Net is new, flawed, and by the time it's ready for use in the Enterprise it will be very difficult (impossible?) to take the market away from J2EE.
  47. Wines[ Go to top ]

    Since we're on wines... Java/J2EE gets better with age like wine. This is why .Not (I mean .Net) will always be behind. .Net is new, flawed, and by the time it's ready for use in the Enterprise it will be very difficult (impossible?) to take the market away from J2EE.
    That would depend on how much aggressive marketing MS will put forth.
    I worked for a big-ass financial institution that is mostly Java/J2EE. They had a small project that they wanted a small consultancy to do in Java. The consultancy does both Java and .NET but they like pimping for MS whenever possible. MS was brought to the table and they pledged to finance the project if the big-ass institution chose .NET. You couldn't beat that offer could you?
  48. Wines[ Go to top ]

    Since we're on wines... Java/J2EE gets better with age like wine. This is why .Not (I mean .Net) will always be behind. .Net is new, flawed, and by the time it's ready for use in the Enterprise it will be very difficult (impossible?) to take the market away from J2EE.
    That would depend on how much aggressive marketing MS will put forth. I worked for a big-ass financial institution that is mostly Java/J2EE. They had a small project that they wanted a small consultancy to do in Java. The consultancy does both Java and .NET but they like pimping for MS whenever possible. MS was brought to the table and they pledged to finance the project if the big-ass institution chose .NET. You couldn't beat that offer could you?

    I guess if MS agrees to fork over the money to purchase a big HP SuperDome fully loaded, all the consulting, development and perpetual OS license, then sure thing. In the mean time, I'd go ahead and keep using what works until the other mythical system is up and running ;)

    I'm sure MS is willing to throw 250 million+ for the chance to brag that .NET can handle large trading volume.
  49. Wines[ Go to top ]

    I totally disagree. Only a manager type would take that offer. Any smart company would consult with smart engineers that would show that the Microsoft path costs more in the long run. J2EE is free and works. .Net won't be reliable/stable for years. So you may get funding for the project, but you will never be profitable because your app won't run. It's a shaft!
  50. maybe with an IronClad contract[ Go to top ]

    that says, "if we don't get it to work, you pay nothing and owe us nothing. Plus, we pay you for the time and trouble we caused."

    surely, that's "an offer no one can refuse". well maybe only in the movies.

    </joke>
  51. IronClad?[ Go to top ]

    The problem is simply that when you lose 18-24 months trying to get your project up & running and it STILL doesn't work, that's it, game over, your competitors win. There might be times when it's okay to risk it all, but most companies need a product/service that works, i.e. happy customers/users.

    The people out there saying they love/use .Net must be reading the product features PDF file or writing apps with limited scope. Nobody uses .Net for real enterprise-level stuff. The people that are trying have failed consistently(tried and failed? tried and died! :-).
  52. Java vs C# (.net)[ Go to top ]

    Redhat is running this ad now :

    From Mohandas Gandhi

    1) First they ignore you,
    2) then they laugh at you,
    3) then they fight you,
    4) then you win.

    I think it applies to Java vs C# as well.

    My opinion Java community is at stage 2 or 3 now.

    java - 10 Years, C# 3 years => stage 2 or 3 already !
  53. Java vs C# (.net)[ Go to top ]

    "1) First they ignore you,
    2) then they laugh at you,
    3) then they fight you,
    4) then you win. "

    I thought you were referring to Microsoft vs. Linux
  54. Java vs C# (.net)[ Go to top ]

    Redhat is running this ad now :

    From Mohandas Gandhi

    1) First they ignore you,
    2) then they laugh at you,
    3) then they fight you,
    4) then you win.

    I think it applies to Java vs C# as well.

    My opinion Java community is at stage 2 or 3 now.java - 10 Years, C# 3 years => stage 2 or 3 already !

    Well, you are no doubt as wise as Gandhi. I wish I were.

    None of us sees the future that clearly, but I think there are a couple things that seem pretty "for sure" right now:

    1) Microsoft isn't running out of money, and money can buy influence and (to some extent at least) market share. It also helps companies to stay in business, so I think Microsoft has a plenty healthy future ahead of it. That also means that .NET won't go away until Microsoft decides it goes away, and then it will take another 10 years for that to settle in (just like people still use VB6.)

    2) J2EE is being used in every single large enterprise and Java is used now in every cell phone, and various incarnations of Java are being used in most apps and platforms in between, so the J2*E success is an undisputable fact.

    3) Scott McNeally has been saving up his anti-Microsoft quips, since he's supposed to be all friendly and all with Microsoft right now. Sooner or later, the dam will burst, and Ziff Davis will be there to publish all the zingers.

    4) Oracle has about 24 letters left to use for marketing (9i, 10g, ..), so you can be sure that there will be an Oracle 34D before too long ;-)

    Other than that, everything else is up in the air.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  55. Well at least down here en Ecuador, two banks used .NET to revamp their platform. The bigger one, which is the third bank of the country, switched most of its operations to .NET some 10 months ago and are happily operating. On the other hand, I know of companies struggling with Java *and* .NET, in all cases it's not a problem of the platform but of the development process. Experience tells me that in enterprise level applications it's not the tools but the process that matters most.
  56. In other news[ Go to top ]

    I guess original message's attitude is the exactly what got French to where they are today in minds of so many people
    If you also base your opinion about French people on how they are depicted (snob,moaner,so proud of themselves) in some recent American movies (like "The Incredibles"), I can understand your perception... Please don't generalize.
    But maybe there's no smoke without fire.
  57. .Net-killer neede[ Go to top ]

    Microsoft took the best ideas of Java, jettisoned the bad ideas, added some new ideas of their own, and came up with an improved system that is location-transparent.

    It's up to the Java community to respond by copying the improvements from .Net back into Java.
  58. Clash of the .Net, J2EE Clans?[ Go to top ]

    Not sure where they're getting these numbers. I personally have been developing J2EE apps for almost 5 years and I've never known been on or known anyone that worked on .Net projects. In fact, I've never heard a .Net success story, only horror stories. Not to mention the fact that J2EE is mature and it will likely be years before .Net is stable/viable.
  59. Clash of the .Net, J2EE Clans?[ Go to top ]

    Currently I develop in .Net and Java (plus others). Not a day goes by that I don't think or say - "I wish I could do this in Java" or "This is much easier with Java" or "I wish VS.Net had this feature".
  60. Just the otherway round[ Go to top ]

    I am sorry to reverse the opinion expressed here. But, I have been getting the feeling that Java took 5-7 yrs to get to this level of maturity, while C# is already mature, with its current release itself. VS.NET is perhaps the most productive IDE compared to the best Java IDE, whatever it be.

    When someone comes up with a nice produt, we have to accept it.
  61. Just the otherway round[ Go to top ]

    VS.NET is perhaps the most productive IDE compared to the best Java IDE, whatever it be.

    Maybe for what you do. But not for what I and many others do. I use VS.Net along with Eclipse (and occasionally Netbeans). VS.Net has a long way to good to being productive on all levels of application development and maintenance. Sure, it is better at some things.

    Try this in VS.Net - View the heirarchy of a class.
    And this - View the current file full screen.
    And this - refactoring (with the default install).

    Things I do more often are NOT as easy in VS.Net as in Eclipse. And IDEA is supposed to be even better.
  62. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    The fact that Ant, javadoc, junit and log4j were ported over to .NET relatively easily makes me consider C# language successful. Whether .NET is successful isn't something I'd bother with. Trying to classify a platform in general as "successful" doesn't make much sense to me.

    Just because one person is able to build an application successfully, is no gaurantee it will work for another project. Then again, that is true for every language and platform. Just like when Microsoft claims CORBA is a failure and COM+ a success and IBM claims the reverse.

    what is annoying is the fluff publishers are calling news today. I was told in journalism class that you should analyze and attempt to expose the facts behind a given situation. Rehashing PR material doesn't equal reporting to me. Then again, it's kinda hard to report when magazines are 80% advertising, 5% table of contents and 15% articles.
  63. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    The fact that Ant, javadoc, junit and log4j were ported over to .NET relatively easily makes me consider C# language successful.

     - That's because C# is a Java knock-off. We expect this.

    Whether .NET is successful isn't something I'd bother with.
    Trying to classify a platform in general as "successful" doesn't make much sense to me.

     - Why not? If .Net isn't successful/viable, then what's the point of comparing or considering it in the first place?

    Just because one person is able to build an application successfully, is no gaurantee it will work for another project.

     - I think we're talking about the platforms, not the projects. In any case, the platform has to be stable/reliable for REAL projects to become successes. MS & .Net aren't there for the Enterprise. Java IS there and HAS BEEN there for years.
  64. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    Just because one person is able to build an application successfully, is no gaurantee it will work for another project.
    &nbsp;- I think we're talking about the platforms, not the projects. In any case, the platform has to be stable/reliable for REAL projects to become successes. MS &amp; .Net aren't there for the Enterprise. Java IS there and HAS BEEN there for years.

    I'm sure other people will find comparisons beneficial. I personally don't. that's my bias. I agree that if a platform isn't stable, it's kinda impossible to build a robust application. But the reverse is not necessarily true.

    even if a platform is feature rich and stable, it's still no gaurantee anyone can build a robust/reliable application with it. but that's common sense. well, I hope it's common sense.
  65. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    Well said!
  66. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    Then again, it's kinda hard to report when magazines are 80% advertising, 5% table of contents and 15% articles.

    You need to stop reading Cosmo. :)

    Actually, some of those types of mags are really more than 80% ads. My wife got a couple like Good Housekeeping (maybe not them, but like) and since that was the only thing available in the, uh, reading room, I checked it out. Ad after ad. Not sure I ever found any content.
  67. NAnt, NDoc, NUnit, Log4Net[ Go to top ]

    Then again, it's kinda hard to report when magazines are 80% advertising, 5% table of contents and 15% articles.
    You need to stop reading Cosmo. :)Actually, some of those types of mags are really more than 80% ads. My wife got a couple like Good Housekeeping (maybe not them, but like) and since that was the only thing available in the, uh, reading room, I checked it out. Ad after ad. Not sure I ever found any content.

    LOL. I thought cosmo was like 95% adds. Actually I was thinking of the various computer related magazines I used to subscribe to in the 90's like PCMag. An now I get a bunch of free "tech mags," which really is just advertising also.
  68. Clash of the .Net, J2EE Clans?[ Go to top ]

    Not sure where they're getting these numbers. I personally have been developing J2EE apps for almost 5 years and I've never known been on or known anyone that worked on .Net projects.

    This is exactly the same story with me. I work in a medium size web development company and while we 'have' done .NET. It has been rare and it has usually been a bit of a disaster (hey maybe that is just our fault though). From what I have heard it the implementations have been slower (.NET tables seem to be verbose for example, passing around significant state information in every request, harder to do custom caching), clumsier (oriented towards page-based development, rather than MVC), harder to get pages to look like designer mocks through use of .NET components. I have not used .NET, so this is just stuff I have overheard from collegues that have (so don't flame me - I admit this is complete heresay).

    I strongly suspect that most .NET development is done the same place you see Visual Basic development, i.e. internal projects inside of corporations to implement small custom functionality. So are big companies using it - ya of course. Are they using it in an 'enterprise' manner - mostly not.
  69. like deja vu all over again....[ Go to top ]

    Hasn't the developer community gone over this before? While I'm interested to see where the industry is going, stuff like this is pure noise and completely useless.
  70. Clash of the .Net, J2EE Clans?[ Go to top ]

    <translation>
    If somebody is going to sponsor our report then we can prove .NET is 56 persent better than j2ee. We can prove j2ee is better than .NET too, but nobody pays for it.
    </translation>
  71. The numbers are just rediculous[ Go to top ]

    Here are my estimates to the number of Java programmers compared to C# programmers:

     8.8: http://www.cs.berkeley.edu/~flab/languages.html
    26.9: http://freshmeat.net/browse/160/
    10.4: http://www.tiobe.com/tpci.htm
     4.2: http://mshiltonj.com/sm/categories/languages/
     4.4: http://www.blueboard.com/phone/publishing_capacity.gif
     4.0: http://www.orkut.com/Communities.aspx
    19.9: http://directory.google.com/Top/Computers/Programming/Languages/

    The "real" number is probably about 5 or so, i.e. there are about 5 times more Java than C# programmers.
  72. The numbers are just rediculous[ Go to top ]

    Here are my estimates to the number of Java programmers compared to C# programmers:&nbsp;8.8:

    The "real" number is probably about 5 or so, i.e. there are about 5 times more Java than C# programmers.

    However with .NET you now really have to lump VB programmers (well, the .NET ones) and C# programmers together. The languages are quite similar, and most .NET people use VB.NET.

    I don't think you'd get 5:1 if you throw in VB.NET people. It might be a bit hard to distinguish them from pre .NET VB programmers though.
  73. most .NET people use VB.NET.

    If that is really the case, which I'm beginning to believe myself, then Microsoft is indeed in really dire straits. VB isn't a language for building large-scale applications, especially not web based apps. And not many programmers previously writing Windows apps in C++ are migrating to C#.

    I'd say the language war is basically won. Java rules OK!
  74. Re: The numbers are just rediculous[ Go to top ]

    most .NET people use VB.NET.
    If that is really the case, which I'm beginning to believe myself, then Microsoft is indeed in really dire straits. VB isn't a language for building large-scale applications, especially not web based apps. And not many programmers previously writing Windows apps in C++ are migrating to C#.I'd say the language war is basically won. Java rules OK!

    And that's why they are after Java programmers. Moving to C# from Java is much easier that moving from VB to C#.
  75. at the risk of generalizing[ Go to top ]

    I wasn't going to comment, but having worked on a .NET project the last 2 years, several developers on the project tried to sneak VB in. Whether that means anything statistically is not relevant. Until MS or someone credible does a study of .NET projects with respect to VB and C#, it's going to be hard to say conclusively.

    the kind of things that make me cringe is when a VB programmer writes C# as if it's VB.
  76. Re: The numbers are just rediculous[ Go to top ]

    most .NET people use VB.NET.
    If that is really the case, which I'm beginning to believe myself, then Microsoft is indeed in really dire straits. VB isn't a language for building large-scale applications, especially not web based apps. And not many programmers previously writing Windows apps in C++ are migrating to C#.I'd say the language war is basically won. Java rules OK!
    And that's why they are after Java programmers. Moving to C# from Java is much easier that moving from VB to C#.

    Keep in mind, however, that VB.NET is a different beast to the VB that most of us despise.
  77. most .NET people use VB.NET.
    If that is really the case, which I'm beginning to believe myself, then Microsoft is indeed in really dire straits. VB isn't a language for building large-scale applications, especially not web based apps. And not many programmers previously writing Windows apps in C++ are migrating to C#.I'd say the language war is basically won. Java rules OK!

    Grow up guys. Language syntax doesn't stop you writing any specific kind of software, it is semantic that always counts. And believe me VB.NET has all the features of C# - the operator overloading which according to my knowledge would be part of VB.NET 2005. Besides that operator overloading is a fancy feature and even Java doesn't support it, and it is rarley used in any business application. Of course VB.NET doesn't have the pointer arithmetics too, and most probably never will, but it is also true in case of Java.

    BTW Java won the war over many lnaguages long ago, becuase of it's simplicity. But it is so ironic that C# draged Java to a new war, the war of having as many features in a language as one can imagine, and it ain't good for Java my friend...
  78. Isn't that history?[ Go to top ]

    just like the CISC vs RISC, and countless other battles throughout history. humans seem to have a need to go through these cycles. A big difference with is that as technology advances, these cycles get shorter and shorter. In sci-fi books, it oftens leads to a big melt down and society regresses. hopefully we avoid the "humanity almost destroys itself part" and remains just a battle of egos between big companies.
  79. The Job Market rules[ Go to top ]

    ... at least in Spain the most required skill in the IT market is Java.

    You can check it out in http://www.skilltrend.com.

    Microsoft can invest huge amounts of money in FUD, but the job market does not lie...

    Trust the market!
  80. The Job Market rules[ Go to top ]

    I totally agree with you, it's the job market that tells the truth. And that's not because there aren't any other truths but because the job market is the one truth that is really relevant to us. Sales figures for books, software, training, etc can give distorted picture, reflecting fashions or other cyclical phenomena more than anything else.

    The skilltrend website is quite interesting. One additional thing I would've been interested in, however, is the regional distribution of tech jobs in spain. Is it all concentrated in Madrid? The reason why I'm asking is that every winter I feel tempted to move southwards to warmer climates :-)
  81. Java world is not so friendly[ Go to top ]

    people may not like MS, but MS really do there job well. They response to the market very soon, and they know what people want and they have a clear mind.

    Java world(Sun IBM Oracle...) seemed to be a little messed up. They don't have a clear standard.
  82. it's easy to decide on one way and go with it, if you're a monopoly. heck, just about every big business wishes they had a monopoly. when you actually have to work with other companies, each has it's own perspective; therefore you're bound to get different views.

    If being in a democracy means I have to learn different approaches and pick the right one, then that's fine. I would rather have a choice than no choice. though in reality, you always have a choice. the hard part is the cost of your choices. I won't bother rehashing the usual OSS debating points, since it's all a personal choice. except for cases where your CTO decides and you're stuck with what they chose.
  83. Why not .NET.ASP vs J2EE?[ Go to top ]

    Maybe it's my lack of .NET knowledge, but it seems like these articles compare the *entire* .NET framework, both client and server against J2EE, which obviously is a server side technology only. Apples and Oranges, no?

    On the client side VB and VC++/MFC has always been the most popular development platform on windows. As developers who write stand alone, client side applications (.exe's) move to VB/C#/.NET I fail to see how this involves J2EE? Java/J2SE I can see as it's a client side technology. If a company uses C#/.Net on the client and J2EE on the backend, is that a draw?

    Now if the title was .NET.ASP vs J2EE or C# vs Java this would at least make sense to me.

    In any case like it or not competition is good for both Java and J2EE.
  84. Why not ASP.NET vs J2EE?[ Go to top ]

    typo.
  85. Clash of the .Net, J2EE Clans?[ Go to top ]

    .NET is better. That's it, there's nothing more to say.
  86. really[ Go to top ]

    Just for an exercize, try to write a management tool for .NET 1.1 using the system performance monitors and try to return the number of active threads currently running in IIS, and CLR. Don't be surprised if you always get 1 or 0. I've tried this on win2K, winXP, win2K3, .NET 1.0 and 1.1. I went through every single item in the system performance stats for CLR and IIS and many of them do not return useful data.

    granted, not everyone likes to monitor and watch their servers to make sure they are healthy and doing well. I haven't used MS application server's management features, but the last time I looked, it didn't have the performance metrics I needed. On the other hand, I can do that easily in Tomcat, JBoss, or Weblogic.

    Better is dependent on your definition and criteria. things like SLA's are important to me, so metrics play an important role.
  87. really[ Go to top ]

    Just for an exercize, try to write a management tool for .NET 1.1 using the system performance monitors and try to return the number of active threads currently running in IIS, and CLR. Don't be surprised if you always get 1 or 0. I've tried this on win2K, winXP, win2K3, .NET 1.0 and 1.1. I went through every single item in the system performance stats for CLR and IIS and many of them do not return useful data.granted, not everyone likes to monitor and watch their servers to make sure they are healthy and doing well. I haven't used MS application server's management features, but the last time I looked, it didn't have the performance metrics I needed. On the other hand, I can do that easily in Tomcat, JBoss, or Weblogic.Better is dependent on your definition and criteria. things like SLA's are important to me, so metrics play an important role.

    With one observation :-)) I am a 100% pure java fan. No .NOT. no bullshit. I just had enough of MS$ and Rolf's bullshit propaganda about how much Java sux and how wonderfull .NOT is (though java has made possible much of the current cutting edge packages/frameworks that are ported to .NET) that I dropped the fight. Let them believe that this is the case, You won't solve shit, aside of loosing your time, trying otherwise. That's what I meant.

    So as I said, .NET rules forever, Java sux, shut up you little "academic crap" eater like de Icaza would say.
  88. yeah, but some people aren't joking[ Go to top ]

    I generally don't take comments seriously, but I do like to point out specific limitations. with the underlying assumptiont that everything has limitations. I won't bother commenting about Rolf, since I prod him enough about his vague comments on TSS.

    sadly I tried to write a performance monitor for IIS/.NET and boy it was an "interesting" learning experience. I suppose I could have wrote my own C++ library to hook into unpublished IIS API, but that's way too much work and I don't have experience with C++.
  89. Clash of the .Net, J2EE Clans? Context.[ Go to top ]

    Making the context clear:
    - J2EE vendors, industry and solution builders (of whatever condition) competes in a clear context: same technology core/philosophy, same constraints, same market rules (in terms of compatibility, hw coupling, dependencies, etc). If i miss something lets say it 'the same thread'.

    This is what we call OPEN: you could make a choice of each piece of the puzzle to configure your enterprise architecture (or whatever you want). In some way it sounds like commodities, you can change A for B if B is better in something without impact.

    - .NET Vendors... Ehm Microsoft offers a technology with serious constraints, high-coupled to sw/hw, trying to follow the best practices and best solutions that makes J2EE grow (Nxxx: NHibernate, Log4Net, etc). This might be an isolated thread in terms of technology competition.

    Obviously, we can't do the same thing with .NET (do you need an example?) as long as we can't substitute MS framework.

    Both types of competition have pros/cons. The first case is a prototype of a free market on wich you have almost every combination of commercial and non-commercial, so the vendors have to pay much close atention to the market needs. They could be wrong, but then we have a very powerful opensource community to raise the things up. Also they dont need .Net in the market cause it is plenty of challengers.

    The second case still compete with J2EE as long as the technology is quite similar in a sharp view but with other rules as i explained above. What are the benefits of it for the clients? It MUST be much better than J2EE, if not, i prefer less risk and the possibility to switch from, lets say, IBM to BEA. It MUST be cheaper... no words here. It must be well supported. I have experience with MS and it wasnt very good really. You dont have to think theres just one choice out there. Other .NET pros i want to enumerate:
    - Microsoft's son. It could be hard to kill .Net
    - Thru the first: synergi from other products/services to .Net to get more clients involved and stuck. More money to develop the platform.
    - Development tools, documentation is ok, community efforts but, by far, less powerful.

    Ugh... I dont really think .Net is prefered, nor it is going to clash, nor its much significantly better, nor .Net has the J2EE advantages, etc etc etc.

    Jorge
  90. Industries[ Go to top ]

    I work in the telecom industry and as the report indicates, we do in fact use J2EE for our infrastructure. We have the odd .NET apps here and there for various departmental-level concerns and maybe even our customer-facing candy (not sure), but our customer provisioning (including interfacing with the billing systems) and service assurance/network monitoring enterprise apps are all J2EE.

    Of that, probably 70% is entirely server-side (mostly EAI) - no web apps. The other 30% are more web-based. Our OS infrastructure (server-wise) is a mixture of Solaris,HP-UX, Linux and Windows 2000 servers.

    Even though our IT budget is reasonably large, we didn't go with J2EE because we've got money to burn. We did it because it was the best infrastructure for the job.

    Most of the vendors we work with, like Cisco, have Java APIs against their systems around which we can write connectors easily and quickly. We can also interface easily and quickly with a wide array of other enterprise resources, not only RDBMSs, but Oracle Financials and other systems. Drop in a jar/rar/war/ear and you're on your way.

    Since our work is mostly server-side, J2EE offers the most bang for the buck, not to mention the widest array of vendor choice and licensing terms - our app server vendors include BEA, Oracle and JBoss (if that's not a wide array of licensing schemes, I don't know what is ;-)

    All of those vendors have mature implementations that run on virtually any flavor of OS. And any large organization is almost always going to have the need of integrating systems that live in different worlds by developing systems that interoperate with those different worlds. J2EE infrastructure offers a systematic and standard approach to doing this.

    Cheers
    Ray
  91. You know, just the other day, I was looking through some old files and I came across a discussion thread from my BBS posted back in 1987. In it, I was debating my friend over whether C, Pascal or Modula-2 would be the dominant language of the future. We went on and on about it, each passionate about our point of view, and convinced that the other guy was a dinosaur soon to be out of work.

    Well of course 15 years later my friend and I are still employed and we're not using any of those languages. The point, I guess, is that technologies change with the times and programmers can't be married to some particular idiom and expect to have long term careers.

    Ultimately, if we're effective J2EE developers, it means we have the skills to be good at whatever language or system the market wants us to use in the future, be it .NET or something else. So, don't worry so much that J2EE is going to lose out to .NET, not unless you're worried about it from the standpoint of being a shareholder in Sun. The rest of us will adapt.

    Frank
  92. I have heard Scott Ambler express the same thing time and time again. As a prammatic developer know your trade and the trades of the people you work with.

    Sure it is good to be an expert in some things like a language but don't bet you job on it.

    http://www.amazon.com/exec/obidos/tg/detail/-/020161622X/qid=1101856586/sr=8-1/ref=pd_csp_1/104-9434710-4839141?v=glance&s=books&n=507846
  93. Or even a pragmatic developer ;-)
  94. Nature of the .Net Apps[ Go to top ]

    I would be curious to know what type of Apps the companies using .Net are building. If they are Windows Rich Client Apps, then .Net makes sense. For Browser Based Apps, Server-Side Java makes more sense.

    Microsoft's strategy for Longhorn seems to be to convince developers to create Rich Clients and use Microsoft technology.
  95. Start again[ Go to top ]

    whow my first Thread...
    hy people...
    i just wantet to say.. sorry for bad englsh and
    after 24 letters an oracle 50z you can always start with 1 and A .. .super new 1A edition :D..while the show must go on ...
  96. uninteresting[ Go to top ]

    I wonder why so many people are discussing such an uninteresting thing
  97. .NET Pro & Opinions[ Go to top ]

    A component object model demands events to loosely couple those components to respond to the events. By defining interfaces you have polimorphism done, not event attachments, that it`s now do obvious to a progammer, you just assume it works. Function pointers exist aren`t so obvious but threading and asynchronus processing works great, without having to go mary-go-round with invocations when you don`t have a pointer.

    GoTo simplifies the complexity of decisions and jumping, shortening the use of if's, have used it just once, in 3 years... Also if you call absolete to the GoTo command you could call obsolete to the JMP statement in assembler. Yes high level languajes can live without GoTo, but it helps clear up and easier-faster code.

    The virtual-override-new makes the flexibility if you need to override a member not marked as virtual, you can use the new keyword. No one has mentioned the Attributes for metadata in objects/members, excellent way to state information not related to the implementation.

    One file per class, good practice...exact name on file so it can compile it`s not practical, still good practice. Small projects (for learing or others) clearer to view to small clases in one file, not to switch between windows to see the definitions. Enumerators are sometimes one line definitions, so you would have a one line file for something simple. 10 enumerations = 10 files, instead of a 1 file for enumerators, interface definitios or others.

    Namespaces are a way to group clases, NOT files, and you can implement different clases in the same namespace in different libraries, use those libraries in another project without having to use them all. Usefull when different target environments dont require all the clases...smaller footprint for the project. By the way you put those files on GAC (Globall assembly cache) don´t even need to deploy them with each project if your project is component based. A plus is no DLL Hell, with the app manifests.

    Yes, I know people that tell's me to learn Java, to see the other side of the coin. But i don't even have time to make my own projects, when beeing a leader in SOA projects for Central America Customs Agencies Integration and the commerce treaties with USA.

    Guatemala is the leader in integration right now in Central America, i don't bother on making a new webservice in a day or two or even do a client app to send information throw the wire, in nearly the same time, for those companies who don't have software developers, or time, because politics and/or (inter)national requirements demands a really small time to market (TTM). Not all projects demand the same TTM, like managing large or complex data like U.N. EDIFACT. In a week i researched UN EDIFACT Standards and made a file format definition tool. Now i`m on the part of simplifing how to attach the sintactic and semantic rules to that type of files. I have services for months without having to give maintainance, it`s working, others have problems with their webservices in J2EE. It`s all development methodology and experience.

    This is a developer fight, not a trend or mitological problem (speacking of opinions that have ocurred through time). We use the tools we like most, and when a boss tells you what to use, you dont option. I started with MS ASPs (IIS 4), I used it until .NET arrived. I am beta testing .NET 2.0, and i love it. But in the mean time, I was sent to the Oracle Portal or Oracle PL/SQL troops to build the road for the team to make the online services, for the national taxes agency (www.sat.gob.gt) who also is responsible of customs. We found Oracle Portal is slow as hell so we paid for it, we didn`t required it. Great boss decition. So then the IAS/OAS is still there and it has a great performance, not when the database is down...no service at all. But well the worst is NO component development, no layers, no structured programming, and no OOP at all. Next step should be Oracle 9ias with J2EE, but then you have CASE (Forms) programmers, VB programmers, and 2 java fans that aren`t at all experienced Java programmers. So you must teach them first OOP, UML, CMMi fully implmented through UML. The projects keep coming and the learning curves aren´t the same, prooven that it`s easier .NET.

    Until Java prooves my projects are bad, not working, and that i`m wrong in my criteria too have elected .NET, i will change platform.

    In a developing country like Guatemala, a million US$ for an IBM cluster, with Oracle 8i (a little behing in that but Forms 6i isn`t supported on Oracle 10g), for licensing and support, compared to 1.2 million for MS Software for 3 thousand computers in an enterprise agreement for 3 years with OS/Office/Exchange/DCs/Banking services. So MS enables all institution communications and authentication and Oracle is our DB and app development tool (in some cases). So let`s say:

    Oracle/IBM...3 million in 3 years
    Microsoft....1.2 million in 3 years
    Changes required:
    for .NET...buy VS.NET for developers
    for Oracle...buy new servers (maintain old apps in MS environment), buy bigger PCs for developers, JDev
    for both...training, and change 6 years of developed apps (with what would be faster?)

    PRICE COMPARISONS:
    (* Market, no enterprise agreements)
    Oracle IAS License: US$5,000/CPU (chepest license)
    Redhat Support: US$1,500 (2 processor server)
    ---------
    1 server = 11,500 (2 processor server)
    1 server = 10,000 (no Redhat support)

    Windows Web Server 2003: $390 (OEM, up to 2 processors)
    --------
    1 server = 390 (2 processor server)

    This is just for AppServers, not DBServers, so in a project you have to add that too.

    Now build a webfarm for your applications, you´ll see how your budget is killed in the graph...remember you have to buy the servers too. So you could spend more on HW and less in OSes. Yes you have free java and free OS but what about support for the intensive/critical operations that must not stop?

    This are numbers i have done before, the plans we have on this transitional stage, and my point of view, without beeing and administrative. I don`t really worry, they might not need me in some months, but we have allways been Guatemala Oracle`s office the test place for their products and our IBM servers didn`t performed as expected, so we have a dead investment there because we have to buy new HW.

    To decide for a platform you MUST evaluate your local support offices, your local communities, YOUR PERSONNEL, the training, the costs of hardware and software, the costs of having critical operations stoped, the investment risks with a platform, the time frame for your projects, and how fast is your TTM.

    So even on government agencies you have needs of fast responses, though there is no competition at all...it`s just commitment to make a country grow, and that´s my commitment to my people.

    Some other thoughts!:
    Java has a lot of time, and a lot of people work with it. Microsoft has 25+ years on the market, have a big market share, and have had programming languajes since the first personal PCs so they might not be perfect but they have been there long before Java and is commited (if you want we say to have more market share and more money, but they are commited), so you will see both there for a long time to go. I've been programming since GW-Basic on IBM 8086 PCs.

    first came A Language, then B, then C, Basic, Pascal, C++, Turbo Pascal, Visual C++, Visual Basic, Java, C, Oracle PL/SQL, Transact SQL, C# (ommitted a lot of languages). So compare sintax and will find a lot of similarities, so who copies who? Exampl try-catch-finally was not found in Borland Turbo C++, but it already existed in Microsoft C++, you have it then in Java/C#.

    HashTable and ArrayList are english words and you also have class, new, add, void, null and that does not mean Java or C# copied that from each other. You would have to create new english words just to make more reserved words posibilities to make it totally diferent. string existed on Pascal, it was char[] on C++, and back to string in Java/C#.

    This is my own opinions, hope no harm to any ego out there...and also it helps others around the world, to have a greater view of the implications, through my 12 years of experience, based on the freedom on making critical decitions, and being forced with other critical decitions, have made me find the good and bad roads to success. Bottom line, "Try before you buy!"
  98. .NET Pro &amp; Opinions[ Go to top ]

    Yes, I know people that tell's me to learn Java, to see the other side of the coin. [..] HashTable and ArrayList are english words and you also have class, new, add, void, null and that does not mean Java or C# copied that from each other. You would have to create new english words just to make more reserved words posibilities to make it totally diferent. string existed on Pascal, it was char[] on C++, and back to string in Java/C#.

    OK, so you don't know Java, but you can speak authoritatively on the roots of C#? What a joke.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  99. .NET Pro & Opinions[ Go to top ]

    Yes, I know people that tell's me to learn Java, to see the other side of the coin. [..] HashTable and ArrayList are english words and you also have class, new, add, void, null and that does not mean Java or C# copied that from each other. You would have to create new english words just to make more reserved words posibilities to make it totally diferent. string existed on Pascal, it was char[] on C++, and back to string in Java/C#.
    OK, so you don't know Java, but you can speak authoritatively on the roots of C#? What a joke.

    I guess I never got where any language/platform can feel so high and mighty to complain when another language copies its syntax or functionality. They make it sound like their language just suddenly appeared, and that they never barrowed from anything previously implemented.

    Unless one of the designers was the creater of ALGOL or Short Code... then I'd have to say that languages have evolved partly from copying others. End Of Story.
  100. .NET Pro &amp; Opinions[ Go to top ]

    A plus is no DLL Hell
    As long as you don't do COM interop. But even then, I get lots of wrong DLL versions when trying to work. And namespace clashes. And can't compile cause DLL is in use. I would rather deal with Classpath and jars.
    Oracle/IBM...3 million in 3 years
    Microsoft....1.2 million in 3 years
    Sure. But there more vendors and OSS. If cost is your main concern, then you could have your software cost be nothing. Everything else (training, etc) being equal.
    Small projects (for learing or others) clearer to view to small clases
    For larger ones too. Large files are difficult to read. Even with code folding. It seems code folding is more of a pain. I think I am gonna turn it off in VS.Net.

    Glad you like .Net 2.0. Maybe the corresponding IDE will be as good as the current crop of Java IDEs. :)

    My experience is that over the long haul, .Net and VS.Net are not easier than Java + (pick your IDE).

    BTW, does your book(post) come in PDF form?