.NET Forum / .NET Framework / New Users / September 2004
Java and .NET (no Flames Pls)
|
|
Thread rating:  |
Tarundeep Singh Kalra - 15 Sep 2004 07:58 GMT Hi ,
I am genuinely intrested in having the performance comparsion of Java and .NET platforms.
To make an analogy they both are same.
Now, i have questions :- what is best for what.
According to my understanding:-
-Java is best fit for server side solution ( if you dont have Microsoft Server Solutions).( Traditionally this is the case as most of us have Linux,Unix or Solaris).
- C++(MFC,Win32 etc) is best for desktop clients (perfromance oriented).
I rememberduring the start of my career i had made one Java Swings Application that we had to discard and redo in MFC- becuase of perfromance issue and huge Java Runtime requirements.
Now that Java and .NET both need runtime - so what should i choose for desktop application that could be two tier , multitier or anything that is interactimg with kernel mode also.
Genuine inputs needed- Thanks in Advance.
Again , i do not want any flames from java supporters or c++ supporters. Even i feel that Java is best for backend and C++ is best for fontend.
Regards Tarun
 Signature Regards Tarundeep Singh Kalra
www_dot_tarunsadhana_dot_com.
tarun_at_removeAT_tarunsadhana_dot_com.remove_dots
Jon Skeet [C# MVP] - 15 Sep 2004 08:40 GMT Tarundeep Singh Kalra <tkalra_at_GoRemote_dot_com@Remove.unnecessary> wrote:
> I am genuinely intrested in having the performance comparsion of Java and > .NET platforms. [quoted text clipped - 8 lines] > Server Solutions).( Traditionally this is the case as most of us have > Linux,Unix or Solaris). Not sure what the "most of us" refers to - it's very difficult to really pin down what most developers will be coding towards. There are things like Mono if you want to write .NET code and run it on other platforms. I don't know what their performance is like though.
For server-side Windows work, either .NET or Java is fine.
> - C++(MFC,Win32 etc) is best for desktop clients (perfromance oriented). That's only true if you absolutely need all that performance though. I'd rather have an app which worked well and had all the features I needed (because the developers were more productive) than one which did almost nothing, but did it very fast.
> I rememberduring the start of my career i had made one Java Swings > Application that we had to discard and redo in MFC- becuase of perfromance > issue and huge Java Runtime requirements. Java performance issues have decreased significantly, and keep doing so. I believe startup (a traditional Java bugbear) is much faster in Java 5, although I haven't tried it myself.
Also bear in mind that computers have become *much* faster since Java was first launched... an entry-level desktop has far more processing power than most users will really need.
> Now that Java and .NET both need runtime - so what should i choose for > desktop application that could be two tier , multitier or anything that is > interactimg with kernel mode also. Whether or not the runtime is a significant factor depends almost entirely on your target market, in my view. Bear in mind that the .NET runtime is bigger than the Java one, but is available on Windows Update, so is already on many computers which might not really "need" it.
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Mike Newton - 16 Sep 2004 15:58 GMT I believe the "most of us" refers to the fact that Windows only holds about 21 % of the web server market. (According to netcraft) I would consider that 79% qualifies as "most."
He wasn't referring to Java being used by most of us, he was referring to the platform.
I've experimented with mono, it's got decent performance. The mono version of SharpDevelop (MonoDevelop) starts up quickly, and is rather snappy.
Mike
>>-Java is best fit for server side solution ( if you dont have Microsoft >>Server Solutions).( Traditionally this is the case as most of us have [quoted text clipped - 6 lines] > > For server-side Windows work, either .NET or Java is fine. Jon Skeet [C# MVP] - 16 Sep 2004 17:11 GMT > I believe the "most of us" refers to the fact that Windows only holds > about 21 % of the web server market. (According to netcraft) I would > consider that 79% qualifies as "most." But that doesn't necessarily mean that 79% of web servers that serve dynamic content run on boxes other than Windows, or that 79% of dynamic content is created for non-Windows boxes, etc. Web server stats are notoriously tricky - do you go by URL or IP address, for instance? A single host which server several different DNS names might count as one box or several, depending on which
> He wasn't referring to Java being used by most of us, he was referring > to the platform. I still don't think it's as cut and dried as you imply though.
> I've experimented with mono, it's got decent performance. The mono > version of SharpDevelop (MonoDevelop) starts up quickly, and is rather > snappy. I think it's the performance of the libraries which are used in ASP.NET and web services which is likely to be more important. I'm not trying to suggest that Mono *doesn't* perform well - just that the speed of MonoDevelop isn't a good indication as to how good it is for server side applications.
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Morten Wennevik - 15 Sep 2004 08:44 GMT > Hi , > [quoted text clipped - 4 lines] > > Now, i have questions :- what is best for what. Well, if you do programs for windows platforms, .Net. It benefits from being tightly integrated with the underlying system. For cross platforms you probably need java, although you could do some .Net with Mono.
> According to my understanding:- > > -Java is best fit for server side solution ( if you dont have Microsoft > Server Solutions).( Traditionally this is the case as most of us have > Linux,Unix or Solaris). Well, there isn't really an option to run .Net on anything but Microsoft systems.
> - C++(MFC,Win32 etc) is best for desktop clients (perfromance oriented). Not really, you get quite the performance out of <any>.Net, but GDI+ isn't hardware accelerated. You can use C++ with .Net, and you can do managed DirectX with .Net with a performance loss of about 3%.
http://www.vertigosoftware.com/Quake2.htm
> I rememberduring the start of my career i had made one Java Swings > Application that we had to discard and redo in MFC- becuase of perfromance [quoted text clipped - 3 lines] > desktop application that could be two tier , multitier or anything that is > interactimg with kernel mode also. I'd say it depends on your target platforms. Both java and .net is designed for any number of tiers, although .Net benefits from being designed for windows platforms. In C# you also have the opportunity to do unmanaged (unsafe) code for integration with unmanaged components or simply performance issues.
> Genuine inputs needed- Thanks in Advance. > [quoted text clipped - 3 lines] > Regards > Tarun You might want to check out this comparison. It's not a performance comparison, but interesting nonetheless.
http://www.25hoursaday.com/CsharpVsJava.html
 Signature Happy Coding! Morten Wennevik [C# MVP]
Tommy Carlier - 15 Sep 2004 11:36 GMT For both server-side and client-side: if you're using Windows, .NET is better. If you're not using Windows, Java is better.
.NET is optimized for Windows. Even for a rich client-side GUI program, .NET is very good. Java/Swing is very slow for GUI, .NET has fast GUI functionality. The big advantage of .NET (and Java) over C++/MFC: much easier to maintain, nicer to program in.
Cowboy (Gregory A. Beamer) - MVP - 15 Sep 2004 14:45 GMT In test apps, C# is currently beating Java in most areas. Blah! Blah! Blah!
Realistically, even though C# is performing better, it is not as realistic a solution in all arenas. You have to examine more than pure performance to make a proper decision.
If you are BSD, UNIX, Linux based, there are open source implementations of the Framework, like the Mono project, so .NET is not out, if it makes sense to you. Java is more ingrained, however.
What .NET offers for me, over Java, beyond all of the FUD thrown out in perf comparisons, etc., is Visual Studio .NET, which is a great IDE. I have worked with Java IDEs and I feel they pale in comparison. I have not touched Java in a little over a year, so there may be a new version of JBuilder that really rocks. I am working on what I know from the past. NOTE: I am not saying choose a platform because it has cool tools.
---
Gregory A. Beamer MVP; MCP: +I, SE, SD, DBA
*************************** Think Outside the Box! ***************************
> Hi , > [quoted text clipped - 28 lines] > Regards > Tarun Jon Skeet [C# MVP] - 15 Sep 2004 15:03 GMT Cowboy (Gregory A. Beamer) - MVP <NoSpamMgbworld@comcast.netNoSpamM> wrote:
> What .NET offers for me, over Java, beyond all of the FUD thrown out in perf > comparisons, etc., is Visual Studio .NET, which is a great IDE. I have worked > with Java IDEs and I feel they pale in comparison. I have not touched Java in > a little over a year, so there may be a new version of JBuilder that really > rocks. I am working on what I know from the past. NOTE: I am not saying > choose a platform because it has cool tools. I found the exact opposite when I started with .NET. I missed (and still miss) some of the wonderful features of Eclipse. It's nice to know that Microsoft will have refactoring in VS.NET 2005 - only a few years after Java developers started thinking of it as pretty much a required feature for a decent IDE.
We'll see whether VS.NET 2005 gets up to Eclipse's standard in other areas, of course, but I'm skeptical.
If you love designers, VS.NET may be the bee's knees - I prefer actually writing code most of the time, and on that front, Eclipse is in the lead IMO.
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Daniel O'Connell [C# MVP] - 15 Sep 2004 19:18 GMT > Cowboy (Gregory A. Beamer) - MVP <NoSpamMgbworld@comcast.netNoSpamM> > wrote: [quoted text clipped - 21 lines] > actually writing code most of the time, and on that front, Eclipse is > in the lead IMO. Interestingly, I've noticed that people who come from a java background tend to like Eclipse and Eclipse style ides, but people who have been using visual studio for a long period of time tend to regard eclipse as lacking in alot of ways.
I don't think its features, I think its more just subtle behavior. When I use eclipse it just doesnt seem like...typing is the same as it is in visual studio. Odd, to say the least.
Jon Skeet [C# MVP] - 15 Sep 2004 20:19 GMT > > If you love designers, VS.NET may be the bee's knees - I prefer > > actually writing code most of the time, and on that front, Eclipse is [quoted text clipped - 9 lines] > studio. > Odd, to say the least. I wonder how many of them have used Eclipse for long enough to get used to it. It took me a while to get used to VS.NET, and I like it more than I did to start with. I still miss incremental compilation, intellisense that can display more than one overload at a time, compile-on-save, the Eclipse project system, refactoring, contextual diffs, organise imports, a decent source-safe plug-in (ironically!)...
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Daniel O'Connell [C# MVP] - 16 Sep 2004 05:36 GMT >> > If you love designers, VS.NET may be the bee's knees - I prefer >> > actually writing code most of the time, and on that front, Eclipse is [quoted text clipped - 19 lines] > compile-on-save, the Eclipse project system, refactoring, contextual > diffs, organise imports, a decent source-safe plug-in (ironically!)... Well, incremental compilation never mattered much to me, for whatever reason most of the mistakes I make are truely egregious, like
Console.WrtieLine("Whatever"):
Which the parser picks up, or ones which aren't really compliation errors. Still, I can see the benifits.
As for the source-safe plugin, I imagine the ecplise plugin is better than VSS itself, ;). I'm rather fond of Vault myself.
As for refactoring, I never really considered it useful until whidbey. When I was learning java using eclipse, for whatever reason I didn't think it was very useful. I've been shown Iwas wrong since, but for some reason it seemed to be pointless at the time.
Jon Skeet [C# MVP] - 16 Sep 2004 06:57 GMT > > I wonder how many of them have used Eclipse for long enough to get used > > to it. It took me a while to get used to VS.NET, and I like it more [quoted text clipped - 10 lines] > Which the parser picks up, or ones which aren't really compliation errors. > Still, I can see the benifits. Note that I don't mean "as you type" error detection - I mean actual compilation. In Eclipse, by default it compiles the code every time you hit save. If VS.NET did that, it would be a pain in the neck because it would recompile a whole load of stuff which hadn't changed
> As for the source-safe plugin, I imagine the ecplise plugin is better than > VSS itself, ;). I'm rather fond of Vault myself. Unfortunately I'm stuck using VSS at work...
> As for refactoring, I never really considered it useful until whidbey. When > I was learning java using eclipse, for whatever reason I didn't think it was > very useful. I've been shown Iwas wrong since, but for some reason it > seemed to be pointless at the time.
:) I haven't had a careful look at what the support is like in Whidbey. My guess is it won't be as extensive as Eclipse due to timescales, but that probably doesn't matter - there aren't *many* refactorings I use in Eclipse anyway. It's just that they're incredibly handy when I do use them!
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Daniel O'Connell [C# MVP] - 16 Sep 2004 07:20 GMT >> > I wonder how many of them have used Eclipse for long enough to get used >> > to it. It took me a while to get used to VS.NET, and I like it more [quoted text clipped - 17 lines] > hit save. If VS.NET did that, it would be a pain in the neck because it > would recompile a whole load of stuff which hadn't changed Ahh, I see what you mean. While C# is very quick at compilation, constant compilation could be a problem.
For some reason, I thought you were talking about background compilation like VB has. Incremental compilation is an interesting concept, it requires compiler support as well though, wouldn't it?
its something I may look into if I ever get the compiler idea off the ground.
>> As for the source-safe plugin, I imagine the ecplise plugin is better >> than >> VSS itself, ;). I'm rather fond of Vault myself. > > Unfortunately I'm stuck using VSS at work... The independent route has its advantages, a few anyway.
>> As for refactoring, I never really considered it useful until whidbey. >> When [quoted text clipped - 10 lines] > in Eclipse anyway. It's just that they're incredibly handy when I do > use them! Whidbey's refactorings are pretty limited, I think there is only 6 or 7 options. However, I don't even use all of them. I use rename and extract method quite a lot, the encapsulate field is useful at times, but it doesn't seem to allow specifying get\set granularity, so I end up editing the results anyway.
I find things like Extract Interface are pretty rarely useful since I tend to design interfaces and then base concrete classes off of them. And extracting an interface frm an existing interface isn't terribly difficult, just copy and paste and a little typing.
Jon Skeet [C# MVP] - 16 Sep 2004 08:02 GMT > > Note that I don't mean "as you type" error detection - I mean actual > > compilation. In Eclipse, by default it compiles the code every time you [quoted text clipped - 3 lines] > Ahh, I see what you mean. While C# is very quick at compilation, constant > compilation could be a problem. Or indeed compilation when projects get very large.
> For some reason, I thought you were talking about background compilation > like VB has. Incremental compilation is an interesting concept, it requires > compiler support as well though, wouldn't it? Yes - Eclipse has its own Java compiler.
> its something I may look into if I ever get the compiler idea off the > ground.
:) I think .NET would have a harder time fitting into incremental compilation, partly because of the output format. Because every compiled class in Java is just output as a single .class file, it lends itself to only recompiling bits. Even if you have a different file for each class in .NET, all the classes still need to be combined into an assembly file at some stage.
> > Unfortunately I'm stuck using VSS at work... > > The independent route has its advantages, a few anyway.
:)
> > I haven't had a careful look at what the support is like in Whidbey. My > > guess is it won't be as extensive as Eclipse due to timescales, but [quoted text clipped - 7 lines] > seem to allow specifying get\set granularity, so I end up editing the > results anyway. Rename is definitely the most important one, IMO. Of course, Eclipse links renaming a class with renaming the source file, because that's the standard Java way of doing things. While I know it's not as standardised in C#, I wish there were an *option* to keep the two in step...
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Daniel O'Connell [C# MVP] - 16 Sep 2004 09:55 GMT >> > Note that I don't mean "as you type" error detection - I mean actual >> > compilation. In Eclipse, by default it compiles the code every time you [quoted text clipped - 5 lines] > > Or indeed compilation when projects get very large. Yes, I could see that. I don't think I've had a project beyond maybe 20k lines compiling at any given moment, and the C# compiler goes through that really quite quickly. Infact the compiler seems to be very quick, just when used through the IDE it seems to be a mite slower, almost as if the IDE takes a long period of time between begining compiation of each project.
>> For some reason, I thought you were talking about background compilation >> like VB has. Incremental compilation is an interesting concept, it [quoted text clipped - 14 lines] > each class in .NET, all the classes still need to be combined into an > assembly file at some stage. They certainly would need to be combined, but I don't think the PE file generation is the longest part of the compilation process. Circumventing the parsing and atleast portions of the compliation phase may be rewarding. My current thoughts on the issue is to cache the resultant IL and metadata into some form of intermidiate database, then when you perform a compilation just compile the new code and generate the assembly file itself. Granted, you probably couldn't use reflection emit for this purpose, but the .NET runtime metadata format and IL itself isn't anything complicated enough for that to deter me.
I wont say it would be as easy as java or C++(with its obj files), but I do think its entirely doable. If I ever write this compiler, I do intend to *not* use reflection.emit for a number of other reasons anyway, so why not take a shot at it?
Its also possible that the compiler could generate modifiable assemblies. Consider an assembly which reserves, during development time compilation, not release compilation, extra metadata slots, etc. Now, when code changes if the compiler loaded that assembly and simply replaced and added to the existing metadata as approriate, it may be possible to achieve incremental compilation within one file.
That is only a theory at the moment, however.
> Rename is definitely the most important one, IMO. Of course, Eclipse > links renaming a class with renaming the source file, because that's > the standard Java way of doing things. While I know it's not as > standardised in C#, I wish there were an *option* to keep the two in > step... I thought I heard of plans to do that with whidbey, atleast for forms, but as best I can tell that never materialized. It was probably someone's feature wish that I mistook. I do wish renaming a file would rename the class(and vice versa), maybe even an option to enforce the one class per file standard, even though its not nessecerily an option I follow at all times.
Perhaps the IDE and the compiler need to support a langauge structure tool more so than forcing any restrictions on files. If one could simply define a set of rules and transformations to be applied before compilation alot of these issues could probably be solved.
Saras Asnani - 16 Sep 2004 15:38 GMT I feel VS.NET is much easier to develop in. Language wise I consider C#/Java 90% same. Also, it depends on the kind of applications. To make it more general say n-tier or i feel the market should move more towards Web Services (I like to call it NET-Services... internal/external net services).
I think hands down that C# windows or .Net windows app are much faster than Java windows app (designed and coded similarly, that is not optimially coded... keep it simple code....)
Also I really like what MS has done with ADO.NET both ver 1.1 and ver2.0.
On the application server/business server side I think .Net and Java execute almost at the same speed. Of course if you are using a DBMS this will depend on JDBC and OLE/SQLClient for each (I belive JDBC is faster in this case...not sure...its been a while). The great advantage that Java has on the app server side is it has vendors with huge base both apps and developers.... such as BEA, IBM WebShpere, TIBCO - ASP, Oracle App Server, and all the open source stuff aimed at anything except MS.
The other advantage that Java, Linux, Unix, MAINFRAME, ORACLE, maybe even MySQL has over .NET and MS is SECURITY. SECURITY SUCKS IN MS.
If MS can be made secure and I am sure it can (surrounding your external networks with linux boxes :) etc...)
When it comes to making web-services / net-services i think either way should be fine but when it comes to development...I would pick MS.NET. VS.Net and VS 2005 is a great tool, C# is as easy as Java sometimes a bit better.
on the open source side if the linux installation was easier on the desktop for other not so tech developers and if there was an equavilent tool, i would pick linux/xtool? Just because Linux itself is so much faster (I like Suse and the old Slackware for Mutliple Sym Proc)
Anyone still doing assembly? :)
enough for now....
-Saras Asnani.
> > > I wonder how many of them have used Eclipse for long enough to get used > > > to it. It took me a while to get used to VS.NET, and I like it more [quoted text clipped - 33 lines] > in Eclipse anyway. It's just that they're incredibly handy when I do > use them! Mike Newton - 16 Sep 2004 16:06 GMT >>>I wonder how many of them have used Eclipse for long enough to get used >>>to it. It took me a while to get used to VS.NET, and I like it more [quoted text clipped - 16 lines] > would recompile a whole load of stuff which hadn't changed > That's not exactly true. You can set projects to be compiled incrementally, and csc will only compile those tidbits that have been changed.
Granted, this isn't the default, but it *does* exist. Check out a rather large library like iTextSharp, which is set to incremental build. The first compile is long, but subsequent compiles are very fast (and I have made a few minor tweaks).
Jon Skeet [C# MVP] - 16 Sep 2004 17:14 GMT > > Note that I don't mean "as you type" error detection - I mean actual > > compilation. In Eclipse, by default it compiles the code every time you [quoted text clipped - 9 lines] > The first compile is long, but subsequent compiles are very fast (and > I have made a few minor tweaks). Now that's interesting - where's the option for that? I can't find it in VS.NET 2003.
(I assume it recompiles dependent files, etc - just recompiling the files which have changed isn't enough.)
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Mike Newton - 16 Sep 2004 17:31 GMT Right click on the project in the solution explorer, and choose "Properties." Go to the "Configuration Properties" folder, and select "Advanced."
Incremental Build is the first item on the list.
>>>Note that I don't mean "as you type" error detection - I mean actual >>>compilation. In Eclipse, by default it compiles the code every time you [quoted text clipped - 15 lines] > (I assume it recompiles dependent files, etc - just recompiling the > files which have changed isn't enough.) Jon Skeet [C# MVP] - 16 Sep 2004 18:33 GMT > Right click on the project in the solution explorer, and choose > "Properties." Go to the "Configuration Properties" folder, and select > "Advanced." > > Incremental Build is the first item on the list. Ah, cheers - the reason I hadn't seen it before was that it's not enabled for Compact Framework projects, and the project I was looking for it in was a CF project. (It's still there, but greyed out, which makes it much less obvious...)
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
C# Learner - 16 Sep 2004 00:53 GMT > It's nice to > know that Microsoft will have refactoring in VS.NET 2005 - only a few > years after Java developers started thinking of it as pretty much a > required feature for a decent IDE. On the subject of refactoring, I was watching a presentation of the next major release of Delphi today, which, too, contains IDE support for refactoring.
http://info.borland.com/media/shockwave/delphi2005/diamondbacksneakpeek.swf
Just wanted to mention this for any current/past Delphi users here.
Note that the product supports Delphi for Win32, Delphi for .NET and _C#_ for .NET.
Cowboy \(Gregory A. Beamer\) - 16 Sep 2004 03:50 GMT I stand corrected on the refactoring, but I had it with some third party tools at the job I had before working for the state. Overall, I still had problems with Java IDEs in other areas.
Visual Studio gets much better in 2.0. I would like to see them put a real slick WYSIWYG editor and even better XML support, but it is a great leap from Visual Studio .NET 2003, which is already a great IDE overall.
 Signature Gregory A. Beamer MVP; MCP: +I, SE, SD, DBA
************************************************* Think outside the box! *************************************************
> Cowboy (Gregory A. Beamer) - MVP <NoSpamMgbworld@comcast.netNoSpamM> > wrote: [quoted text clipped - 21 lines] > actually writing code most of the time, and on that front, Eclipse is > in the lead IMO. Daniel Billingsley - 16 Sep 2004 19:18 GMT Jeez, this civil discussion almost makes me miss the entertaining troll days of a year or so ago when this kind of thread would have spun off into a bunch of crossposts to java.advocacy.whatever and included all kinds of silliness like "java is better because c# is just a clone" or "C# is better because I worked on a java project and had to make code changes to switch hardware platforms so they lied." Almost. :)
Jon Skeet [C# MVP] - 16 Sep 2004 19:27 GMT > Jeez, this civil discussion almost makes me miss the entertaining troll days > of a year or so ago when this kind of thread would have spun off into a > bunch of crossposts to java.advocacy.whatever and included all kinds of > silliness like "java is better because c# is just a clone" or "C# is better > because I worked on a java project and had to make code changes to switch > hardware platforms so they lied." Almost. :) Don't worry, I'm sure there are plenty of bigots around who believe it's only possible to support one development platform...
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Joe Lentrichia - 17 Sep 2004 04:53 GMT I like .NET over Java for a couple of reasons. The primary thing is the wealth of libraries that all the languages individually (VB, C++, etc) used to have that you can now access from any of the .NET languages. I like C# because I think the performance is great (primarily as a result of an excellently well written compiler).
Finally I think Visual Studio is still unmatched. I haven't used Eclipse, but I have used JBuilder and NetBeans and both are really slow (mainly because they are built on Swing). Swing was/is a really bad idea, they finally got it right when they started implementing UI features in the native API's of the respective OS.
I think the biggest obstacle for .NET and MS as a whole to overcome is the ingrained concept in some developers mind that all MS products suck (not true), and that MS has lots of security issues (somewhat true), and most of all the general hatred because they have a monopoly on the desktop/office market. They also get a bad rap for being "proprietary" when in actuality they are pushing the envelope and just not waiting for a panel of "experts" to "standardize" the API they happen to be working on. And for this reason Visual Studio has superior support for Web Services.
My $.02 (more like $5) :)
> > Jeez, this civil discussion almost makes me miss the entertaining troll days > > of a year or so ago when this kind of thread would have spun off into a [quoted text clipped - 5 lines] > Don't worry, I'm sure there are plenty of bigots around who believe > it's only possible to support one development platform... Jon Skeet [C# MVP] - 17 Sep 2004 08:04 GMT <"=?Utf-8?B?Sm9lIExlbnRyaWNoaWE=?=" <jlentrichia(nospam)@hotmail.com>> wrote:
> I like .NET over Java for a couple of reasons. The primary thing is the > wealth of libraries that all the languages individually (VB, C++, etc) used > to have that you can now access from any of the .NET languages. Well, Java has a pretty huge wealth of libraries too. (And it's not just Java that targets the JVM, although that's easily the biggest language using it, of course.)
> I like C# > because I think the performance is great (primarily as a result of an > excellently well written compiler). The C# compiler has little to do with performance - it's fairly simple, I believe. The JIT and the libraries are what really drive performance in .NET.
> Finally I think Visual Studio is still unmatched. I haven't used Eclipse, > but I have used JBuilder and NetBeans and both are really slow (mainly > because they are built on Swing). If you haven't used Eclipse you can't sensibly claim that Visual Studio is unmatched. Consider what your opinion of an Eclipse fan would be if they said that Eclipse is unmatched but that they hadn't used Visual Studio.
> Swing was/is a really bad idea, they > finally got it right when they started implementing UI features in the native > API's of the respective OS. Have you used Swing recently? It's come on in leaps and bounds in the last couple of releases, and I gather the new release due soon is even better in this sense. Swing can be very slow when written badly, but can perform well if properly handled.
> I think the biggest obstacle for .NET and MS as a whole to overcome is the > ingrained concept in some developers mind that all MS products suck (not [quoted text clipped - 4 lines] > to "standardize" the API they happen to be working on. And for this reason > Visual Studio has superior support for Web Services. Interesting - I thought one of the criticisms levelled at Microsoft's version of web services was that it went beyond the standard, thus making it impossible for some standard web service consumers to consume all .NET web services. I'm not sure I consider that superior support.
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Joe Lentrichia - 17 Sep 2004 11:53 GMT Jon, it seems you are much in favor of java. Why then, I ask, are you a C# MVP?
I agree with all your statements. Except the last one where a consumer of a .NET webservice might not be able to. I haven't seen this, unless perhaps you're talking about returning a DataSet, in which case I have to argue that the benefits outweigh the consumption downfalls. Even a DataSet can be consumed tho I believe.
I will download Eclipse and give it a try next time I'm doing some Java code (likely next month) just on your recommendations alone. Some things I will look for: Does it contain a WYSIWYG HTML editor? Does it have an integrated WS proxy generator? Interactive debugging, with a built in web server? Good debugging features: watches, etc.
One other thing, and this is strictly a preference nothing to do really with support (although you could argue perhaps some sense of abstraction) is Properties of a class instead of getters and setters. I was having a funny conversation with a Java programmer and he mistakenly thought that Properties were a violation of encapsulation, until I told him that they weren't internal data being accessed directly. (eg: Java: getThisProp{} setThisProp{}, C#: ThisProp{ get: set: };
> <"=?Utf-8?B?Sm9lIExlbnRyaWNoaWE=?=" <jlentrichia(nospam)@hotmail.com>> > wrote: [quoted text clipped - 45 lines] > making it impossible for some standard web service consumers to consume > all .NET web services. I'm not sure I consider that superior support. Jon Skeet [C# MVP] - 17 Sep 2004 13:40 GMT <"=?Utf-8?B?Sm9lIExlbnRyaWNoaWE=?=" <jlentrichia(nospam)@hotmail.com>> wrote:
> Jon, it seems you are much in favor of java. Why then, I ask, are you a C# > MVP? Because I'm also very much in favour of C#. There's no reason why any one person can't think they're both great languages on great platforms. Currently I'm involved in writing C#. I may well go back to Java in my job, whereupon I'll spend a little less time in these newsgroups and more time back in the Java groups.
> I agree with all your statements. Except the last one where a consumer of a > .NET webservice might not be able to. I haven't seen this, unless perhaps > you're talking about returning a DataSet, in which case I have to argue that > the benefits outweigh the consumption downfalls. Even a DataSet can be > consumed tho I believe. I *think* there are some things that a .NET web-service can produce which aren't in the standard, but I don't have any examples to hand. (IIRC, they're things which really should have been in the standard, but aren't.)
> I will download Eclipse and give it a try next time I'm doing some Java code > (likely next month) just on your recommendations alone. Some things I will > look for: Does it contain a WYSIWYG HTML editor? Does it have an integrated > WS proxy generator? Interactive debugging, with a built in web server? Good > debugging features: watches, etc. Interactive debugging, certainly. The web server isn't built-in, so much as there are Tomcat plugins to make it easy. (The debugging is actually better in Eclipse than current VS.NET, IMO. Things like generic conditional breakpoints which I don't *think* are supported in VS.NET.)
WYSIWYG HTML editor - I don't believe so, but there may well be a plug- in somewhere.
WS proxy generator - again, I don't know, but I'd be very surprised if a plug-in didn't exist. (In fact, have a look at http://www.eclipse-plugins.info/eclipse/search.jsp?query=wsdl - it looks like you should be fine.)
The number of plug-ins for Eclipse is enormous.
> One other thing, and this is strictly a preference nothing to do really with > support (although you could argue perhaps some sense of abstraction) is [quoted text clipped - 3 lines] > internal data being accessed directly. (eg: Java: getThisProp{} > setThisProp{}, C#: ThisProp{ get: set: }; That's one of the things I prefer about C#, along with delegates, events, and the "using" statement.
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Mike Newton - 17 Sep 2004 14:08 GMT It's not a matter of sides. You can be proficient in C#, but also understand that it isn't always the best tool for the job. You can also be good at C#, and be a bigger fan of java.
I think this bit here is the biggest poison that infects MS loonies:
"I think the biggest obstacle for .NET and MS as a whole to overcome is the ingrained concept in some developers mind that all MS products suck (not true), and that MS has lots of security issues (somewhat true), and most of all the general hatred because they have a monopoly on the desktop/office market. They also get a bad rap for being "proprietary" when in actuality they are pushing the envelope and just not waiting for a panel of "experts" to "standardize" the API they happen to be working on. And for this reason Visual Studio has superior support for Web Services."
Open standards are what drive technology. Take TCP/IP for example, or HTTP, HTML, CSS, PNG, etc. These are things that have a set format or API, and are *not going to change.* This basically means that we can stop worrying about how such and such is supposed to be implemented at this point in time, and start worrying about making the existing implementation more efficient, or start worrying about more important things.
MS is not pushing the envelope by any means when it comes to open standards. They've submitted the C# language and got it ISO certified, but now C# 2.0 is out. They didn't standardize the framework libraries, many of which contain patented material (I'm not going to even approach the validity of software patents). When you patent something, you're trying to make sure that you have a legal monopoly on selling that item for a set amount of time. It is a version of "proprietary."
The panel of "experts" that you refer to is what you rely on every day. If it weren't for these "experts," then you'd have a number of different servers that speak in different languages, and may or may not understand each other. You'd be able to talk to IIS, for instance, but maybe not access Hotmail (which, I believe, is still based on BSD). Then again, these "experts" were around when the industry started, or they built the infrastructure for the industry themselves. Let's just call them "experts," because they don't deserve any more respect than that. </sarcasm>
Visual Studio is a good tool, no doubt about it. Does it, however, work in the same way with mono? Apache? The problem of creating an end-all tool like Visual Studio, as easy to use as it is, is that you've got platform lock. Someone else is making the decision for you, as to what web server you're going to use, or what operating system you are going to run. That is, if you really really want to use visual studio. For those who don't want to be confined to an extremely small set of platforms, they choose to go with a tool that promises to work with many.
Eclipse, for instance, is open sourced. It has a board-standardized plugin API, and a number of plugins exist for it. Eclipse, in effect, has much more flexibility and extensibility than Visual Studio does. It doesn't have an embedded WYSIWYG HTML editor, nor does it seamlessly integrate with web servers by default. It does have a java debugger, though. Everything else is handled by plugins, and I'm certain that there are HTML plugins, web service plugins, visual form editing tools, UML, etc.
One last thing, just an FYI, to tell the truth. It isn't the web server that has debugging built in. When you're debugging a web service in .NET, or ASP.NET, you're interacting with the .NET runtime, not the web server. When the web server sees that you're requesting a .NET type page, it passes the request off to the runtime, which processes the request itself. In this respect, yes, you can debug java web servlets and services, since you can debug through the virtual machine.
Sorry... this is a bit of a rant, but astroturfing without knowing both sides of the equation is rather frustrating.
> Jon, it seems you are much in favor of java. Why then, I ask, are you a C# > MVP? [quoted text clipped - 69 lines] >>making it impossible for some standard web service consumers to consume >>all .NET web services. I'm not sure I consider that superior support. Joe Lentrichia - 17 Sep 2004 18:23 GMT Not sure what astroturfing is but I apologize for my ignorance or offending if I did. =) Your points are well made and thanks for the info.
I don't consider myself an MS loonie, I'm just expressing an opinion based on what I have seen and experienced. I have done both Java and C# development and I think it's amazing the short time-frame .NET has been able to come up to speed and be a legitimate contender for enterprise level applications (web in my experience).
I don't think I said there shouldn't be standards, particularly with respect to communication protocols (HTTP, SOAP, etc). I am just saying it takes more time for a large group of individuals from different organizations with different priorities to agree on a common API. I think it should be commended instead of condemned that C#/ASP.NET 2.0 has come out in such a short period of time. Much can be said in the opposite for Sun with Java. Who is being pressured from all angles to either make it open source or sell it to IBM because of it's slow progression between versions. More often than not they are just bundling libraries with the SDK that were already available for download before (security libs, etc.).
Clearly MS has an agenda to make money and making their products first and foremost work on Windows Servers is a big profit gain for them. They have always been in the business of business but that doesn't really bother me as long as their tools and products work.
> It's not a matter of sides. You can be proficient in C#, but also > understand that it isn't always the best tool for the job. You can also [quoted text clipped - 140 lines] > >>making it impossible for some standard web service consumers to consume > >>all .NET web services. I'm not sure I consider that superior support. Derek Thornton - 24 Sep 2004 00:05 GMT The only real advantage Java seems to offer is its platform independence. As a language, it seems so inferior because of how unnatural it is to write in. If you're looking to write programs that require a lot of maintenance, you should probably stick with .NET. Unless you need GUI Remoting, mono provides a fine alternative for all but the most complex of data transfer for a UNIX system.
Java feels to artificial. The libraries are not laid out with any form of obvious logic, you'll find yourself spending longer searching for what you want than you will spend actually using it ... .NET is just cleaner.. seriously.
Also, with .NET, you'll gain the ability to incorporate the Windows API, whereas you cannot do a p/invoke with Java.
> In test apps, C# is currently beating Java in most areas. Blah! Blah! Blah! > [quoted text clipped - 54 lines] > > Regards > > Tarun Jon Skeet [C# MVP] - 24 Sep 2004 09:19 GMT <"=?Utf-8?B?RGVyZWsgVGhvcm50b24=?=" <Derek Thornton@discussions.microsoft.com>> wrote:
> The only real advantage Java seems to offer is its platform independence. As > a language, it seems so inferior because of how unnatural it is to write in. It seems fairly natural to me, although C#/.NET has a lot of nice features which are missing in Java - delegates, events and properties being the principal ones for me.
> If you're looking to write programs that require a lot of maintenance, you > should probably stick with .NET. Unless you need GUI Remoting, mono provides > a fine alternative for all but the most complex of data transfer for a UNIX > system. I don't think it's that cut and dried. It's quite possible to maintain large Java programs - I've done it with no significant problems. (At least, the problems I've encountered aren't fixed by anything that .NET adds.)
> Java feels to artificial. The libraries are not laid out with any form of > obvious logic, you'll find yourself spending longer searching for what you > want than you will spend actually using it ... .NET is just cleaner.. > seriously. .NET is indeed cleaner - although I suspect that's mostly due to having been through fewer iterations. There are some problems in terms of Java library layout, but I don't think it's nearly as bad as you're suggesting.
> Also, with .NET, you'll gain the ability to incorporate the Windows API, > whereas you cannot do a p/invoke with Java. True - this is a big advantage of .NET for many apps, although I rarely found myself wanting to do it when I was writing Java code (mostly servlets).
 Signature Jon Skeet - <skeet@pobox.com> http://www.pobox.com/~skeet If replying to the group, please do not mail me too
Tomas - 29 Sep 2004 15:03 GMT Java and .Net both have their strengths and weaknesses but I always like to look at what problem I'm trying to solve and then I choose the platform based on that.
If I'm looking at implementing a solution in a predominatly windows based enviornment .Net is the obvious winner, while in a linux, unix enviornment Java is the obvious choice. Sometimes a mix of the two is appropriate.
just my two cents!
> Hi , > [quoted text clipped - 28 lines] > Regards > Tarun
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|