Free Republic
Browse · Search
General/Chat
Topics · Post Article

Skip to comments.

Java vs .NET : The Professional Software Developer's Survival Guide (The Programmer's Path)
The IT Toolbox ^ | 2010 | Payton Byrd ( Systems Architect)

Posted on 05/10/2010 7:18:34 PM PDT by SeekAndFind

Java or .Net? Where are the careers today and tomorrow?

Java was the first successful managed programming framework. It was created by Sun Microsystems in an attempt to stop the momentum Microsoft was making into the world of big-dollar corporate computing systems. In the early 1990's, the market for corporate and government "big-iron" computers was extremely fragmented, and Sun was the dominate player with more market share than rivals IBM, HP, and DEC (Digital Equipment Corporation). Microsoft had just begun working with Compaq to use their Windows NT operating system running on beefed up Intel x86 systems to infringe on that market, but much to Sun's chagrin, Microsoft and Compaq were being supremely successful in doing so. At the same time, Sun's market share was starting to shrink even though sales were growing due to the onset of the Internet boom. Compaq was selling so many Windows NT servers that they eventually were able to gobble up DEC and the most prized processor in the world, the DEC Alpha which was at the heart of the most popular mid-sized systems for small governments and universities.

Seeing the writing on the wall, but still in love with their own platform, Sun release Java for Solaris and Windows. The heart of Java is the JVM, which is a very complex piece of software. The main advantage of the JVM is its portable nature. It can be hosted on any system for which the JVM has been ported to. Any system hosting a JVM in turn can run any software written in Java. Sun's business model was to encourage porting of Java to all of the major platforms by allowing a free Standard Edition to be created. Then, once the Standard Edition was stable on a platform, the Enterprise Edition (which is NOT free) could then be implemented on top of the Standard Edition through a rather pricey licensing agreement. Once the demand for Java applications written for the J2EE platform reached a certain point, Sun would be able to withstand competition from Microsoft's Windows in Sun's own back yard.

Bill Gates is a lot of things, but stupid he is not. Almost immediately, Gates tried to derail Sun's plans for Java, and he almost succeeded. This came about through a licensing agreement that allowed Microsoft to create their own JVM to distribute with Windows so users wouldn't have to obtain a copy of Sun's JVM. Microsoft created a new language that expanded on Java and blended into it non-JVM standard features for integration with Windows NT. This language, called Microsoft Visual J++, never really garnered much market share, but the Microsoft JVM did, quickly becoming the most commonly used JVM on the market. Microsoft then stopped implementing new features, specifically the ones that allow the Java 2 Enterprise Edition software to work, thus nearly stopping Sun's business model for Java before it ever got started.

Sun sued Microsoft, and the suit stayed in the courts until earlier this year after several unfavorable rulings against Microsoft. In the mean time, Microsoft was fighting back on a parallel front. They hired Anders Heijlsberg (who had created the Delphi programming language and IDE) away from Borland and tasked him with creating a new managed programming framework that could support a variety of programming languages and which would be submitted to ECMA for standardization.

Heijlsberg hit two home runs: The first was a new programming language called C# which combined all of the great features of Java and C++ and added many new features that were previously dreamed of but never fully realized. The second was the Common Language Runtime. Both technologies were submitted to and ratified by ECMA. Microsoft then did something unheard of: they bet the farm on these two new standard technologies, much in the same way that Sun has bet the farm on Java.

The combination of the CLR, C# and Microsoft's standard set of libraries for the two is known as the Microsoft .Net Framework. As part of their bet-the-farm mentality with .Net, Microsoft forced the millions of Visual Basic programmers around the world to be relegated to the past or move to the new Visual Basic.Net language or to C#. Almost all of them have.

The CLR and C# being standards compliant has been a boon to Microsoft in another area: new open-source based implementations of the CLR and C# have been released, with Novel Mono recently becoming a fully baked and supported product. Every win for .Net is a loss for Java. There are now over 100 programming languages targeting the CLR, even languages such as Python which were previously believed to not be compatible with a strongly-typed infrastructure. But make no mistake, C# is crown jewel of the .Net Framework and it's growing in popularity with both software developers and decision makers alike.

To support the .Net Framework, Microsoft has refreshed their Visual Studio line of development tools to be the best and most productive Integrated Development Environment available, even for people who don't use all of its visual design tools.

Along the road to the present, Java has taken some curious turns to get where it is. Where as Microsoft tried to strong-arm Java away from Sun, IBM has successfully finessed its way into the lead as the main proponent of Java, and arguably makes more money from it than Sun does. IBM includes Java as a core technology on nearly every computer it sells and has done more to improve the JVM than any other company.

IBM recently created the Eclipse open source software foundation which aims to provide Java developers a true counterpart to Microsoft's Visual Studio .Net IDE. IBM has also bought Rational Software, a long time partner who creates tools to help at all stages of Software Development and also employs the three visionaries who made Object Oriented Programming the dominant force it is today.

In an odd twist of fate, Sun's ploy to keep its place at the head of the table has put IBM and Microsoft there instead. Sun recently broke a string of 13 consecutive quarters of losses, and the main reason for its rebound has been its own changes towards open standards and industry supported platforms such as the Intel x86 based processors from AMD.

The future of software development is now expected to be a near 50-50 split between Java and .Net. When making a decision on which technology to bank on, you should really research what types of companies use which technology, and which fits into your career aspirations. Java and .Net overlap in a lot of markets and inevitably each will form definitive niches that will be hard to break until newer model-based programming technologies take over.

I do not believe you can make a mistake either way. C# and Java are so similar as programming languages that in a lot of cases, they are nearly syntactically identical. There are greater differences if you plan to be a System Architect. If that is your long-term career goals, then you will be well served to pick an arena and learn the software design tools targeting that arena. Currently Java has a greater number of mature design tools available, but Microsoft will try to change that in the next few years with a completely new modeling system that will be integrated directly into the Visual Studio .Net IDE.


TOPICS: Computers/Internet
KEYWORDS: java; net; programming
Navigation: use the links below to view more comments.
first 1-2021-4041-6061-8081-82 next last

1 posted on 05/10/2010 7:18:34 PM PDT by SeekAndFind
[ Post Reply | Private Reply | View Replies]

To: SeekAndFind

JAVA VS .NET ( JOB STATISTICS COMPARISON FROM THE PREVIOUS YEAR )



See here




2 posted on 05/10/2010 7:22:41 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 1 | View Replies]

To: SeekAndFind

I don’t understand why IT depts would *pay* AND get locked into a proprietary technology when Java is open source and free and richer than anything MS could offer.


3 posted on 05/10/2010 7:22:50 PM PDT by libh8er
[ Post Reply | Private Reply | To 1 | View Replies]

To: libh8er

Man, you obviously don’t have to manage the systems that run the jvm’s....


4 posted on 05/10/2010 7:27:26 PM PDT by Michael Barnes (Call me when the bullets start flying.)
[ Post Reply | Private Reply | To 3 | View Replies]

To: libh8er

Here’s my initial take :

If you want your project to run in windows only and future versions of it and don’t forsee any major changes in platform,then surely go for .NET,.NET is especially made for windows,since it provides a very good UI,also it is very easy for referencing external assemblies very efficiently for your project,which Java programmers find it very difficult.

Now if your project needs to run on Linux or UNIX as well (or maybe even OpenVMS),then surely go for Java.

Java’s advantage is it is supported in almost all platforms ( even Windows ).


5 posted on 05/10/2010 7:27:33 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 3 | View Replies]

To: libh8er

Gimme a break. I’ve done both Java and c# for nearly a decade. First off, nothing is free. Secondly, all companies get “locked in” as soon as they start buying hardware and software. Right now .Net 4.0 has surpassed Java both technologically, and in the IDE arena. VS 2010 is incredible and doesn’t cost anymore than Intellij IDEA. There are even free versions available.


6 posted on 05/10/2010 7:30:07 PM PDT by rivercat
[ Post Reply | Private Reply | To 3 | View Replies]

To: SeekAndFind

java’s for girls


7 posted on 05/10/2010 7:31:18 PM PDT by jjw
[ Post Reply | Private Reply | To 1 | View Replies]

To: SeekAndFind

Good analysis. Web Services are far easier in .Net as well. From a company’s cost perspective, .Net programmers can be more efficient, and thus they save money.


8 posted on 05/10/2010 7:32:33 PM PDT by rivercat
[ Post Reply | Private Reply | To 5 | View Replies]

To: libh8er

So, to summarize :

I would use .Net if:

1) If the application is Windows platform specific then use .Net

2) .Net is Language independent, so if the team has multiple skill expertise C#, VB.NET , C++ , developers can still work on the same project with different skill set.

3) MS technologies provides RAD (rapid application development) to deliver projects faster, customers always prefer faster delivery ( Java developers might disagree with this, in which case, you are welcome to critique this statement ).

4) Debugging is very effort-less therefore with Microsoft’s Visual Studio IDE, which is TOTALLY DESIGNED AND DEDICATED TO .NET Technology. Therefore, we can fix the bugs quicker.

5) Deployment is very easy and simple.

6) Ajax implementation is simple & easy

Java on the other hand has the advantage of :

1) Platform independence. If you’re developing for various OS platforms, .NET is useless.

2) Open source, therefore, free.

3) Dependent on the 3rd party tools to develop applications, although companies like Oracle, IBM and others are trying to get everyone to standardize on the ECLIPSE platform.


9 posted on 05/10/2010 7:32:46 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 3 | View Replies]

To: rivercat

So, to summarize :

I would use .Net if:

1) If the application is Windows platform specific then use .Net

2) .Net is Language independent, so if the team has multiple skill expertise C#, VB.NET , C++ , developers can still work on the same project with different skill set.

3) MS technologies provides RAD (rapid application development) to deliver projects faster, customers always prefer faster delivery ( Java developers might disagree with this, in which case, you are welcome to critique this statement ).

4) Debugging is very effort-less therefore with Microsoft’s Visual Studio IDE, which is TOTALLY DESIGNED AND DEDICATED TO .NET Technology. Therefore, we can fix the bugs quicker.

5) Deployment is very easy and simple.

6) Ajax implementation is simple & easy

Java on the other hand has the advantage of :

1) Platform independence. If you’re developing for various OS platforms, .NET is useless.

2) Open source, therefore, free.

3) Dependent on the 3rd party tools to develop applications, although companies like Oracle, IBM and others are trying to get everyone to standardize on the ECLIPSE platform.


10 posted on 05/10/2010 7:33:42 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 6 | View Replies]

To: SeekAndFind

The Java vs. .Net comparison in developer pay are misleading because .Net includes Visual Basic.Net, and those programmers typically command significantly lower salaries than C#.


11 posted on 05/10/2010 7:34:33 PM PDT by FredZarguna (SEC: litigation against Apple by mutiple Federal agencies is likely and imminent.)
[ Post Reply | Private Reply | To 2 | View Replies]

To: jjw
java’s for girls

Hey, I resent that :)
12 posted on 05/10/2010 7:34:40 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 7 | View Replies]

To: FredZarguna
The Java vs. .Net comparison in developer pay are misleading because .Net includes Visual Basic.Net, and those programmers typically command significantly lower salaries than C#.

What in your opinion is going to become of Visual Basic in future ? It looks like companies are slowly moving away from it.
13 posted on 05/10/2010 7:35:51 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 11 | View Replies]

To: SeekAndFind

Python.


14 posted on 05/10/2010 7:37:24 PM PDT by krb (Obama is a miserable failure.)
[ Post Reply | Private Reply | To 1 | View Replies]

To: SeekAndFind

just tryin to stir the pot


15 posted on 05/10/2010 7:40:07 PM PDT by jjw
[ Post Reply | Private Reply | To 12 | View Replies]

To: krb

Well what can I say about Python ?

Python is a fun language, but it has some of the same issues that ‘C’ had - extensibility which makes for tremendous flexibility, but at the cost of potential issues around conflict between customized libraries and of issues arising from a language-centric approach to solving the programming problem.

I’ve chosen Ruby and Ruby on Rails as a counterexample: Ruby is elegant, but really comes in to its own only within the Rails framework. It is the combination of the heterogeneous Rails framework and the consistent Object Oriented design of Ruby that provides a synergistic platform for application development.

Although both camps will probably flame me for the observation, Python and Perl are in this way quite similar: they were invented to more systematically answer systems programming needs, and have found wider adoption subsequently.

But I’d say that Python definitely has a future. It is used extensively at Google. It also has been successfully at NASA.


16 posted on 05/10/2010 7:43:10 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 14 | View Replies]

To: SeekAndFind
Platform independence. If you’re developing for various OS platforms, .NET is useless.

To quote the very correct words of Bjarne Stroustrup: "Java isn't platform independent. Java is a platform." Java exists where the Java Platform exists, and that isn't platform independent. It's also not true that .Net is for Windows. I have lots of Linux apps written in C#, and I have iPhone apps in C# MonoTouch. [There's no JVM on iPhone -- and never will be.]

Open source, therefore, free.

Open source, therefore, actual cost unknown.

If you like open source, use Mono. Dependent on the 3rd party tools to develop applications, although companies like Oracle, IBM and others are trying to get everyone to standardize on the ECLIPSE platform.

Which probably will not happen, because Eclipse is a piece of crap that nobody codes with unless they absolutely have to. Eclipse? Seriously? Please.

17 posted on 05/10/2010 7:43:57 PM PDT by FredZarguna (SEC: "litigation against Apple by mutiple Federal agencies is likely and imminent.")
[ Post Reply | Private Reply | To 10 | View Replies]

To: FredZarguna
There's no JVM on iPhone -- and never will be.

I am interested in getting your take on why there will NEVER be a JVM on the iPhone. What's Steve Jobs' beef with Java ?
18 posted on 05/10/2010 7:46:17 PM PDT by SeekAndFind
[ Post Reply | Private Reply | To 17 | View Replies]

To: SeekAndFind

The road map is pretty clear: Visual Basic.Net is going to converge more and more on C# as time goes by. I doubt M$soft will get rid of it unless the number of VB developers becomes so small it collapses under its own weight. There isn’t any real reason to aggressively push it out as long as it remains CLR in the back end; the amount of effort to support it going forward isn’t going to be large.


19 posted on 05/10/2010 7:49:26 PM PDT by FredZarguna (SEC: "litigation against Apple by mutiple Federal agencies is likely and imminent.")
[ Post Reply | Private Reply | To 13 | View Replies]

To: SeekAndFind
There is no technical reason why there can't be a JVM on the iPhone. I cannot admit I have a JVM on an iPhone because I cannot admit that I have a jail-broken iPhone because I am an SDK developer. So I don't have a jailbroken iPhone. You hear that Steve? I. do. not. have. a. jailbroken. iPhone.

Ahem. Very well then.

What Jobs has against Java is a policy which has existed since the beginning of the iPhone/iPod Touch, which disallows distributed libraries, virtual machines, and any number of other things developers could use to open up the iPhone. This policy gets nastier all the time. Again, I cannot comment on what's in the 4.0 Beta SDK because there are NDA's connected to it, but just Google "OS 4.0 Adobe" or "OS 4.0 MonoTouch" or "Has Steve Jobs Lost his Mind?" to see the latest firestorm.

Now, what Jobs really has against Java is what he has against Flash, and third-party tools: he does not want the iPhone to become commoditized so that developers can write apps for multiple smartphones in addition to iThingy. He also doesn't want developers to be able to break out of the App store (he gets a cut of that), and he doesn't want content to break out of iTunes (he gets a cut of that, too.)

Can you say "restraint of trade?"

Sure.

20 posted on 05/10/2010 8:00:47 PM PDT by FredZarguna (SEC: "litigation against Apple by multiple Federal agencies is likely and imminent.")
[ Post Reply | Private Reply | To 18 | View Replies]


Navigation: use the links below to view more comments.
first 1-2021-4041-6061-8081-82 next last

Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.

Free Republic
Browse · Search
General/Chat
Topics · Post Article

FreeRepublic, LLC, PO BOX 9771, FRESNO, CA 93794
FreeRepublic.com is powered by software copyright 2000-2008 John Robinson