Hello all, winter greetings. As an Amdavadi I have been charmed by winter’s spell. In a city, where sun shines with full gratification and pomp, who would not enjoy some low temperature days? I am just done with my 3rd Semester Final exams, one the worst set of exams so far. But no qualms as the Semester has finally ceased. Students in Computer Engineering at DDU are just on the brink of entering their 4th Semester and they’re confronted by a decision making step. They’re to choose between Java Technologies and .NET Technologies for the future studies in B.Tech Comp.Engg. This blog post of mine is addressed to my classmates in CE as well as anybody who’s looking for a mild comparison between Java and .NET. This blog post consists various facts about Java and .Net ranging from beginner to intermediate as well as some Industry veterans speaking on them. Read more as I throw some light on the matter.
Firstly, we shall begin with a brief introduction about Java and .NET. Java was developed by Sun Microsystems, was owned by it for years and now it’s taken over and managed by the industry giant ORACLE. Java is a programming language which is in turn made in C and C++. Java over the years has becoming crazy rage of programming fantasy for programmers and IT Industry for its huge domain of Class Libraries, Support features, Ready-to-Add things, and exceptional programming concepts like Beans, Serverlets, Applets, etc. Ask any programmer what does he prefer between Socket Programming (In C and C++) and Java? He won’t take a second to answer Java. Java has hardly any loop holes, it’s known for its strict and robust security and more programmer-friendly behaviour as compared to C/C++. Also the most important plus of Java for which it sits in the pinnacle of Programming Fame is its OS Independence. Yes, a venture coded in Java, can work comfortably on any OS- Windows, UNIX, LINUX and yes MAC too. These were some very basics about JAVA. Now let’s switch to .NET.
Unlike JAVA, .NET isn’t a programming language. .NET is an architecture/environment. Now what is an architecture/environment? Like Turbo C/C++ is your environment for coding C/C++ programs, .NET is an architecture in which you can code in various programming languages like C,C++,C#, VB, VBScript, etc. Now what is special about this environment? Let’s take an example. Consider you making a big IT system, something like billing system of a Shopping Mall. Let’s suppose you don’t know any other programming language except C/C++. Also, let’s assume you have just Turbo C/C++ with you and not GTK visual kit. Will it be possible to make a User Friendly system (on which the Non-Tech mall employees can work well) in such an environment? Will you be able to include good graphics, good navigation, rich interface, and better communication with the OS/File System? May be not, unless you’re an ace in programming. For this you have Architectures like .NET. You can think of .NET as huge software, which almost have a drag and drop interface for the software/program/project you’re making. You don’t have to call graphic functions, as you would do in a conventional C Programming environment. Also, suppose you want to communicate with your OS (which is Windows here). Your system makes some files on your system, modifies the files, and interacts with your OS. In such a scenario, you will have to include lots of “#include<windows.h>”, mug up some subroutines in this file and then try executing in your code. With .NET environment it is done relatively much easier. This is the biggest plus of .NET- its interaction with Windows OS. And no surprises at this, as .NET architecture is made by Microsoft, it includes seamless support and easy interaction with its OS Windows. So, this is .NET, an interface to make software systems but JUST FOR WINDOWS environment.
Now, let’s move to the comparison between JAVA and .NET – their job openings, their applications, the pros and cons, and a lot more.
The most evident demarcation between JAVA and .NET is their platform dependency. Java is Platform/OS Independent whereas .NET compulsorily requires Windows environment for its applications to work. A Software Developer working in .NET Architecture Rashmi Gharat says that, “OS Dependency is the biggest negative of .NET, but since have more than 50% computer users with Windows as their OS, .NET continues to be in demand.” Java on the other end, is popular across all platforms, particularly large enterprises thriving on Linux and Solaris prefer JAVA products only as they hardly have an option.
Next issue to debate is their LIFELINE. A popular myth in the Computer-IT world is .NET architecture is coming to an end, to which Dipen Desai, an IT Head in a Software Development firm says, “Either Java or .NET, take any, both are bound to survive for next 15 years for sure. As far as .NET is concerned, a giant like Microsoft will make every possible attempt to keep it breathing. Hence, I don’t think there is an end to it.” Also, Rashmi Gharat a software developer doesn’t agree to this news saying, “It might be inappropriate to say that .NET is coming to an end. It has Microsoft’s backing. End is too far, I think it’s going to grow more in the coming time. There is a faint possibility that Windows in the coming years might add other Oss support for .NET architecture and somewhere down the lane you may see .NET becoming platform independent.” Also to affirm this statement of Rashmi, we see Development environments like Microsoft Silverlight, a platform based on .NET architecture to make Rich Internet Applications and Microsoft SharePoint Server, again a .NET architecture to make Web Apps and Portals (on Internet and Intranet)both being made by Microsoft, released and are already popular today. Silverlight built on .NET architecture is already a hit and is considered to be responsible for the end of FLASH in WEB.
Other issue is which is better/more efficient – Java or .NET? I asked both my experts and they had different opinions. Dipen Desai, a IT head says, “Consider a system possessing 5 trillion database records and some heavy stuff. I can’t imagine any piece of code in .NET architecture capable of handling this. Hence JAVA is the best option if you want to make HUGE apps.” Rashmi Gharat, a Developer working on .NET architecture said, “You can make any level of HUGE applications in either of the platform. .NET too. It all depends on the person who’s making it. If you’re sound enough with the architecture, you can make any level of application. Consider the same system containing 5 trillion DB records, you can make an application handling such enormous chunk of data in .NET too if the developer is sound enough.”
Another myth in the student world is .NET is easier and Java is tough or Java is for toppers and .NET is for residue. Again this is a myth with hardly any potential in it. Firstly .NET is architecture and not a programming language that you can compare it with JAVA. Yes .NET is user-friendly/programmer friendly. But when it comes to coding in .NET architecture, you must be sound with the concepts of the language you’re coding in .NET- be it C#, VB, VBScript or any. Hence, to claim that .NET is easier is not apt. Other side of the coin which says “Java is for toppers and .NET for the rest”- to check the validity of this statement, you may just want to ask a Java Developer code a peculiar application in .NET and you will see the truth unravelled. The fact is decision between JAVA and .NET is just a matter of personal choice. It’s like choosing between Spykar and Levi’s – both are equally good brand of jeans, but a person’s choice between them is a just a matter of personal like.
The last issue which people have is .NET architecture isn’t popular abroad but JAVA is, and hence if you’re a .NET Developer, it’s tough for you to go abroad and get a job there. To this Developer Rashmi said, “I don’t agree to this. I feel .NET is more popular abroad than here. Windows being a US product has to be more popular there than it is India. I’ve had a lot of clients from abroad demanding for apps coded in .NET architecture. Hence, this news is necessarily not be true. .NET enjoys equal popularity in foreign countries too.” Dipen Desai on the other hand said, “There might be some potential in this information. The fact is huge enterprises today work on Linux and UNIX installations only. Open Source is much more popular abroad than it is in India. Hence, .NET is ruled out when it comes to software development on OS such as Linux and UNIX.” Supporting Dipen’s stands are some facts in the Mobile Development World. Andriod Development, Symbian are all JAVA products. All Nokia, Samsung, LG phones are JAVA based. Android too is an indirect JAVA product. Hence, .NET has no stake here. And if you believe the news, Mobile Development is to get more extensive in the coming years.
As far as job openings and applications are concerned, either you choose Java or .NET you’ve to start your career as a Developer. There are almost equal number of companies for Java and .NET developers, in India at least. There are more Web Pages with .aspx extension than .JSP extension indicating popularity of .NET in web. Also interfaces like Google Analytics, Google AdSense and so many other Google products show the power of product developed on Java platform.
So, summing it up, I’ve covered up almost all issues pertaining to Java and .NET relevant at this stage. I am a person belonging to Web Design and Development industry hence I personally wasn’t the best person to write the whole thing on my own and hence I talked to some Industry experts like Mr.Dipen Desai, Ms Rashmi Gharat, Mr. Jay Shivanand who provided their valuable and reliable inputs on the matter. To conclude with I would just say that Java or .NET is just a matter of personal choice. See them and decide on the basis of which appeals you more. As far as future is concerned, you will definitely have bread and butter in your house provided you’re the master of what you choose.
Love & Regards,