Geeks With Blogs
INETA Pakistan Blogs Home of INETA Geeks

Comparing .NET with Java 1.5

In response of my .NET vs Java 1.5 mail, our guru MVP Khurram Shakir made a few interesting points. This blog entry is my response to his mail ......


I also have a few points to make, please correct me if am wrong.

This discussion i belive is very important for all of us and this is not about a war between Java and .NET ... its just a comparison between technologies and tools available for us to use. We as programmers/ s/w engineers /(any thing else you can think of) use these technologies/tools as and when they are useful and "appropriate" for us. So in some sense we ought to be technology/tool independent to be more effective and useful to our organizations.

Now getting back to the discussion:

1- Language Design:
I personally believe Language design is one of the important considerations. If that wont be the case people wont love/like a particular language over the other. I mean alghough VB is a great tool, but I never really liked it as a programming language. (what do you say?). In this context I believe C# is a beautiful language, if not better then atleast as good as Java.

2- Persistence Frameworks:
NHibernate is being developed and it is in its Alpha release at the moment. I am my self unsure about ObjectSpaces. So this thing might be lacking with .NET, I agree. But, tell me what is the cost that we have to pay for these Object-Relational Mappings, you bet, its performance. Also from design point of view i have asked a lot gurus about this Object Relational Mappings, these ideas sound good when you have a stable data model and developing a small to mid-size application. Believe me for enterprise scale financial/ mission critical applications we simply are not looking for objects mapping table and helper classes for create, update, and retrieve functions. Sometimes when I have to initiate a business process flow (lets say by performing a transaction), the data that I require may not typically be mapped using Obect Relational mapping, because what I am trying to abstract is a process and it has its own state and its db status corresponds to and spans across multiple tables. I had this interesting reply from Clemens Vasters when i asked him about the same.

3- Custom Layout:
I completely agree with Khurram bhai that there is no such feature available for customizing layout. But with ASP.NET now we have Master Pages and themes that takes care of all such requirements, but still WinForms API is still lacking it.But as a work around either we can write generic event handlers (as in interceptors) that can dictate the look and feel of our forms. For even better, we can implement base class Forms with specific UI features (themes/layouts) and inherit our froms from them (i.e. Visual Inheritance)

4- UI/XML Mapping:
I will again agree with Khurram bhai that UI/XML mapping is som thing that is missing. We all will have to wait for XAML to get real.

I dont have experience of working with GDI+/ Java Imaging APIs so i cant comment on that.And for tools I believe Whidbey with its featurs like Team System, Visio Integration, Data base integration (drag drop features for SPs/ tables etc), Source Safe etc and all with its compoenent orientation stuff ... is a very powerful IDE. Havent seen eclipse 3.0 and JBuilder 2005 as yet so no comparison with them.

Thats all I had to say...


khurram shakir wrote:
My few thoughs about Java 5.0 !!!
In general I am impressed with the features and quality of Java 5.0 !

Java 5.0 is now in production version, and .NET 2.0 will take at least
sixth month more to become production ready.

In general I am not much interested in language features of any of
these technologies, instead interested in the services they are
providing.

I found Java APIs are quite nicely design when compare to .NET APIs,
especially I am impressed with the availability of Java Persistence
frameworks like (JDO, OJB, Hibernate), The official counter part for
these frameworks are still missing in .NET (ObjectSpaces will ship in
2006, if it ever ship !).

Also for developing extensible UI applications, I found Swing APIs are
more flexible and feature rich(Although quite complex), e.g.
- WinForms has no official Custom Layout support (just one event for
which we have to do all layout stuff) and UI designing is heavily
dependent on Visual Studio IDE.
- Developing UI from XML based schema language is missing in .NET (may
be suppored in 2006, when XAML become part of Longhorn). Swing already
has Long term Persistance support (Xml based UI)

(I know there might some performance problems in Swing but I think
situation is change a lot in JDK 1.4 and now in Tiger)


Design wise I found Java 2D and Java Imaging APIs are more creative then GDI +.
There are few useful utility clases are still missing in .NET, e.g.
there is no BigInteger Counter part I found in .NET ( I need it when
developing RSA algo for 100 digits Prime numbers, for example )

By the way I also found the IDE Space in Java is much more advance
then compare to Visual Studio.NET (even VStudio 2005), JBuilder X/2005
and Eclipse 3.0 are far more feature rich then Widbly in their current
state.
Hoping things are changing rapidly in .NET Front as well.

Regards,
- Khurram Shakir
Microsot Most Valued Professioanl (MVP - Visual C#)

Hammad.Rajjoub.
UG Leader and Member Speakers Bureau,
http://dotnetwizards.blogspot.com

Posted on Wednesday, October 27, 2004 10:10 PM | Back to top


Comments on this post: Comparing .NET with Java 1.5

# re: Comparing .NET with Java 5.0
Requesting Gravatar...
I use both tools, but I prefer Java because:
1. I use Eclipse, and I can run the same projects on BSD.
2. I can chose whether Hibernate, JDO, EJB or JDBC is best for a job (Hibernate is used for some mission critical tasks, and it's debugging and trace facilities are excellent).
3. Java doesn't threaten oss projects like ant (see nant vs. msbuild).
4. More developers that 'get it' when it comes to architecture and design principles, which makes it easier to find tools that support these practices.
5. The upgrade cycle is not as harsh.

#3 - Sounds like demagogy, but it seems like java developers are more comfortable using tools that are not supplied by sun than .net developers are with using tools not supplied by ms. For example, cvs or perforce or subversion vs. vss...

On the other hand, I've heard that it saves time in evaluating tools, and is a testament that ms tools are very good.

#4 I'm not referring to you, of course! just the millions of Access developers that don't understand oo, design by contract, programming to interfaces, cohesion etc, who prefer data-binding and don't see the value in a good MVC framework. I had to give a tutorial on why it is good to use css, for example. Don't mention IoC or Aspects.

On the other hand, are these priniciples and frameworks always necessary? Probably not.

#5 By this, I mean that I can run several versions of different vm's on the same machine. I installed VS 2k3 on 2 machines recently: one I had to uninstall web matrix/vs 2k5 beta the other, MS development kit for Java (strange dll messages I traced back to an old application). IIS frontpage extensions?
In general, I just find that Java respects backward compatibility more, and is more flexible on different machines.

On the other hand, I realize 2k5 fixes the server dependencies, but I can't use it yet.

Just a few comments.
Left by 2Cents just an opinion. on Nov 29, 2004 8:08 PM

# re: Comparing .NET with Java 1.5
Requesting Gravatar...
Altough your comments quite interesting, but i think u r looking at it just bit hollow look, see dear
1.in real life development , the most valued factor is time and i think even though sun and other parties done a great job but still we are lacking something that is realy call RAD .
2. As for as design decsion is concern , i think it was quite bad (i would say much bad) upto the Win32 , but now the minds in Mricrosoft has changed , and the new realese of .NET and its other supporting services are too rich and pure.
3.Web services has been a premier feature of .NET, i think MS has done excellent work in XML and WebServices.While Although Sun also took some initiatives about this but still they are behind in this regard.
4.UI design though seem elegant in java, but the All is well thats end well , so MS application can compse of inherntly rich UI components, like i still remmeber my one project where i need a data grid like component , but i could't find it in java until i decided to work around with JTable, but working by ur self and getting ready does matter.
5.For UML , u r point of view does seem right but now MS too realize this and they are working for this in whidby (this is because before this only together and Rational were the premier and they were standalone companies but after thier acquisition, the scene has been changed now) so thier new support in wihdby is better then even Jbuilder 2005 (over which we are working too here). Like reverse engineering features etc.
5. At the end dont forget the coming WinFX they have desgin it for the future application and its model is exciting.
so also look some my points.

Regards,

Usman bashir
Certified IBM XML,UML Perfessional
BCIP
Faculty Member of Operation Badar Lahore
Software engineer DIT24

Left by usman bashir on Jan 28, 2005 6:11 PM

Your comment:
 (will show your gravatar)


Copyright © INETA Pakistan | Powered by: GeeksWithBlogs.net