Greg Young [MVP]

Sponsors

The Lounge

News

Advertisement

Java vs .NET Developers

Davy Brion has an interesting post discussing his recent interviews with .NET and Java developers. I have to say that I agree with some of his assessments. Much of what we discuss in .NET is far more common in Java as Java has a far healthier community than Microsoft. You will find terrible developers on both side but the terrible developers on the Java side have more mainstream exposure to good ideas than on the Microsoft side.

The majority of the .NET community is fake as well, led by the leash by Microsoft. I remember in particular a discussion with quite a few people in Atlanta just after Katrina when I was there for a while where I was being laughed at and talked down to (the same tired arguments about sprocs)  for suggesting the use of an ORM, these are the same people who today will reiterate the same arguments and push themselves as “ORM experts”.

How to we break out of this? I had great hopes for alt.net doing this but sometimes you feel like the engineer of a freight train who can see that truck 1/2 a mile ahead and has hit the breaks but is not hoping. I believe alt.net has at the least given the small few who were doing such things already a community upon which they can draw support from when they realize just how bleak of an abyss the .NET development world is. Over time new people will continue to populate alt.net and it will grow but because of the dynamics of the general community we will either need a revolution against Microsoft or Microsoft will need to lead the charge.

 

The drag and drop developer

A sub-theme to the post is the putting down of “drag and drop” developers. It is obvious that Davy in his scenarios values highly things like understanding DI and the SOLID principles.  I agree that these things are very important, in some contexts!

“Drag-n-drop of pure visual components is usually not a big deal… drag-n-drop of data sources on pages or forms or whatever is a different matter entirely ;)

The typical arrogant developer viewpoint … likely the same kind of developer who would build DTOs on top of a domain layer to support a simple forms over data web application. There are contexts where dragging and dropping datasources can be extremely effective.

When people are attempting to use DDD one of the first things I tell them is not to, there are simpler ways and most applications do not justify the expense and complexity of DDD. Can we make a similar argument for development as a whole? Think about the systems that sharepoint is replacing today… Are they being “well crafted”? probably not but they are providing near immediate value at extremely low entrance prices. To help us further identify such systems, they are generally low risk and highly volatile.

The big problem with drag and drop development is not inherent within it but when it is applied to situations that it is inappropriate for.

Microsoft has made this possible with the creation and promotion of the drag and drop developer. These developers lack education, they are easy to bring in, they can produce value almost immediately, and cost a fraction of what a true engineer would cost. There is a vast number of systems that these developers can be extremely productive on while carrying little risk to the business as a whole.  They also free up engineers to work on more interesting systems.

If we want to be effective architects one of our main goals should be to isolate these types of scenarios and build bubbles around them so we can use the lower skilled work force (at lower cost) without forcing our entire system to look like this.  Remember that cost and scalability of a team is a non-functional requirement that we should be optimizing as well.


Posted Tue, Apr 28 2009 10:49 AM by Greg

[Advertisement]

Comments

Peter Morris wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 12:26 PM

When I used to write code in Delphi I would very often find myself doing things that other Delphi developers weren't doing, or weren't sharing their experiences on; so I'd end up scouring C++ resources and translating them.

With .NET I have often wondered if I should research Java materials.  Not because I have any interest in Java at all, but because I have no idea what I am missing out on.

Any suggested communities / resources?

Mike wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 12:30 PM

I'm a C# developer and looked into using Java as an alternative to .NET.  What is available in the Java world that's more streamlined in the .NET world?  What do you suggest using as a platform for development- Spring, Glassfish, JBoss, JSF, Groovy?

Mike wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 12:32 PM

I'm also not suggesting streamlined is drag and drop.  I'm talking about alternatives to fluent nhibernate, the wcf stack, or asp.net mvc.  I've found .NET to be a far more integrated solution with great extensibility points than anything in the Java world.

Patrice Calve wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 1:09 PM

Visual Studio should have two sets of templates:

1) the templates we are used with, for demos and throw away code

2) enterprise templates where we can't cut corners and wright bad code/applications!!

Nathaniel Neitzke wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 1:50 PM

Meh this is just an excuse for Microsoft designing really poor frameworks imho.  Drag & drop could be done well.  There is no reason why drag & drop could not work in say a DDD environment with a really well designed framework.

To get at any advanced functionality you would need to get down to code level, but there is no reason we could not have drag & drop producing the basic code "well" so that it is not such a massive maintenance nightmare.

Greg wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 2:21 PM

@patrice I think thats a cop out

90% of systems I see advertised as "enterprise" would be better off taken simply and are in fact not very enterprisey at all.

As for notbeing able to write bad code. Go to enterprise system A that you wrote 3 years ago ... how's the code in it?

Cy wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 2:21 PM

Greg, this is refreshing. There are those in the community (.Net, Java or otherwise) that turn everything into a pissing match. I know you are active on the alt.net and ddd groups and it's great to see that you can play an active role on those topics, but still understand that they aren't the silver bullet.

Mike wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 2:22 PM

I'm not sure what the point of this article is. Is it that Java programmers are better on average than .NET programmers, that DDD is not always the right solution or that we should isolate less experienced/skilled programmers so we can be arrogant without offending anyone? Strange mix of topics.

Evgeny Shapiro wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 2:30 PM

There is a constant argument which is repeated from one post to another. "DDD is for astronomically big projects, don't bother yourself going this way on smaller ones". I would say that the learning curve and accompanying expenses are rather high, but small and mid projects are a good way to apply the principles and put them all together with real-word requirements.

With this said, I really dislike the shopping cart/blogs eternal samples. It gives you a false feeling that the concepts are quite simple.

Greg wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 3:40 PM

Evgeny if you think the argument is about "big projects" then you have not understood the argument.

DotNetShoutout wrote Java vs .NET Developers - Greg Young [MVP] - CodeBetter.Com - Stuff you need to Code Better!
on Tue, Apr 28 2009 3:57 PM

Thank you for submitting this cool story - Trackback from DotNetShoutout

Srikar wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 4:30 PM

I do think the awareness will grow as more number of Java developers/architects, and evangelists jumping over to Microsoft technologies.

To some extent, Microsoft is leading this change. If you look at the their new platforms specially ASP.NET MVC and Silverlight, it is all about going back to the drawing board and coming up with efficient designs and tools.

Give it some time...

Gregory wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 5:08 PM

Nicely done.  The .NET community would do itself a huge favor if it recognized there are projects for Drag and Drop programming and then there project that merit - have risks/rewards to support a more thoughtfully crafted solution.

JDT wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 5:35 PM

Is this really a problem that is inherent to technology?  Every principle, from IoC to DDD and TDD is not related to technology. With Spring and Spring.NET, jUnit and NUnt,... there are a great many number of frameworks that perform the same functions and differ only in the language they were implemented in.

What is lacking is the community. I started off as a java developer when I was studying, but have been working with C# for the past two years in my job. I find myself going to the java discussions when it comes to architecture, design,... Compare the architecture threads in the java spring forums to the spring.NET forums to see what I'm talking about.

What (new) .NET developers need is exposure. Java developers will find it hard to turn a corner without running into stuff like IoC and DDD. .NET developers are assimilated into The One Way To Develop Software as set forth by Microsoft. Java lacks these 'formal rules', and instead has a community that promotes the ideas and principles that are so dear to us.

Jon V wrote re: Java vs .NET Developers
on Tue, Apr 28 2009 6:10 PM

"They also free up engineers to work on more interesting systems."

Don't forget -- it also gives up plenty of opportunities to come in and fix (scrap) it all, too!

That is why I enjoy being a .NET programmer coming from the Java world. It's nice to be in a place of ample opportunity. Occasionally, you can mentor other programmers, too, which is also satisfying.

Nice article!

Josh Grenon wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 8:36 AM

I have done a little Java programming and must say that setting up the environment was a my biggestpain. It was much easier to do tat .NET because everything I needed was integrated into Visual Studio. That is just my perception on Java vs .NET.

Jason Haley wrote Interesting Finds: April 29, 2009
on Wed, Apr 29 2009 10:13 AM

Interesting Finds: April 29, 2009

Andrew wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 10:53 AM

Nice post, although I do disagree with this statement:

"Microsoft has made this possible with the creation and promotion of the drag and drop developer. These developers lack education, they are easy to bring in, they can produce value almost immediately, and cost a fraction of what a true engineer would cost."

Granted, you do see a few "Jr. C# Developer" positions on Monster.com, but I'd say that most Drag and Drop developers make the exact same money as the "good" software engineers.  The problem comes when those same d&d developers build large systems that need to be maintained, and that maintenance ends up costing the company more and more money due to the lousy design.

Also, Josh I agree 100% with the pain of setting up a Java environment.  

Alex Cavnar wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 10:57 AM

Why can't DDD be "engineering"? I personally find it easier to lay out a form or website, etc,to get functionality down via DnD, then focus on the backend logic. Once you have that down, then you're good to to.

You can still do DDD and make it scalable. If you're writing a small ad-hoc project, you can include drop-in data sources to lessen development time, so long as you identify points during development where additional scalability may be required, exceedng the capability of the drop-in constructs.

Greg wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 11:07 AM

@andrew: yes some people are scheisters.

@alex: can we call drag and drop D&D not DDD it might get confusing for some people who read this :)

Ricardo Shimoda wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 1:04 PM

As an ex- D&D developer I might say that D&D developers suffer a lot when maintaining code and / or extending D&D functionality (and thus we gain some programming experience - the wrong way).

I've abandoned D&D not because of scalability (resources and / or machine) problems but mainly because I didn't want the next developer (to maintain that code) to suffer the same amount of pain as me (and, therefore curse me from behind)

Scott Wojan wrote re: Java vs .NET Developers
on Wed, Apr 29 2009 4:24 PM

Personally, I think Microsoft does a lot more harm than good for its development community.  Take a look at all the buzz around MVC.  While it is WAAAY better than the page controller architecture they pushed with web forms, it’s still an aging architecture.  So instead of doing something nice and modern, there are a LOT of people that will be doing new projects in MVC because MS is promoting it so much.  It still does postbacks which suck!!  Also, don’t get me started on Linq2SQL or the Entity Framework.  I just wish they’d quit trying to reinvent the wheel over and over.

Kim Stevens wrote re: Java vs .NET Developers
on Thu, Apr 30 2009 3:25 AM

I think the only real problem with drag 'n drop is when it becomes "D&DDD".

If you're building a UI, and you have a library of prefabricated parts which can be dragged and dropped onto a canvas, expose an interface and plug into some form of loosely coupled contract - then great, big time saver from which everyone benefits.

However, when the implementation of the business and persistence layers is driven by drag 'n drop behaviour, and the developer puts their faith firmly in the "it just works!" magic motto, without any understanding of the consequences, well that's when things get ugly. In this regard, WYSIWYG is a big fat sugar-coated cyanide pill.

Wouldn't it be great if the IDE actively encouraged separation of concerns, instead of promoting yet another reinvented-for-the-sake-of-profit proprietary wizard-like my-kid-could-build-that-in-a-weekend prescription for "rapid application development"? I believe the later has a LOT to answer for in terms of why software quality and craftsmanship have come to be so greatly devalued.

I had an experience last year where, unfortunately, I had a PM standing over my shoulder whilst I was coding. He saw me using R# and remarked half-jokingly "Hey! I didn't know it did it FOR you! What are we paying YOU for?". If he'd seen someone using drag 'n drop he'd probably be referring to himself as a dev by now.

@Jon V: Well said - I should order a half-full cup of what you're having.

terry wrote re: Java vs .NET Developers
on Thu, Apr 30 2009 10:40 AM

<blockquote>

The typical arrogant developer viewpoint … likely the same kind of developer who would build DTOs on top of a domain layer to support a simple forms over data web application. There are contexts where dragging and dropping datasources can be extremely effective.

</blockqoute>

Thanks for this. Drag-&-Drop isn't inheritently evil it really depends on the project.  Simple problems should be reflected with simple solutions like Web Forms, Drag-&-Drop  and complex problems are likely to have more complex solutions like ASP.NET MVC, it really all depends on the context. Anytime someone says that you should "ALWAYS"  do something a certain way your BS meter should be pinging...

terry wrote re: Java vs .NET Developers
on Thu, Apr 30 2009 3:19 PM

"The typical arrogant developer viewpoint … likely the same kind of developer who would build DTOs on top of a domain layer to support a simple forms over data web application. There are contexts where dragging and dropping datasources can be extremely effective."

Thanks for this.  A simple problem should be reflected by a simple solution like Webforms,  Drag & Drop and a complex problem might need a complex solution like ASP.NET MVC, it all depends on the context. Whenever someone says that you must ALWAYS do something one way your BS meter should be pinging...

Jonathan Allen wrote re: Java vs .NET Developers
on Fri, May 1 2009 1:13 AM

I'm not sure I want .NET to go in that direction.

IoC and Dependency Injection often lead to far more complicated applications that necessary.  As for ORM, two years ago I talked to someone who's .NET project was floundering because of the bad performance they were seeing.

It isn't just that either. Java developers jump on every fad they see. GoF design patterns, J2EE, xml-based coding, factories for everything, etc.  Everything they do seems to needless increase complexity, and that worries me.

hde wrote re: Java vs .NET Developers
on Sun, May 3 2009 7:23 AM

Alt.NET is not as sacred as you think. Most of the major celebrities in Alt.NET work towards a meaningful approach for themselves. They work on Open source Java ports and then provide better tools over them for a fee!. Think about it, find biggest names and then see what they are doing for money. I am much happier having that control with Microsoft (eventually everybody is after bucks)

We are using .NET and very happy with it. I don't get the fuss around trying to push IoC,DI,ORM etc.  I will like to know how much of you have used ORM for a complex business application ? I am talking about scenarios like really complex 5 page queries for reports. They do provide Custom SQL but at that point they are in dumb XML anyways. Let's face it, ORMs not good for eveyrhing. Similary IoC,DI etc not good for everything. People who make major architecture cries are generally who delegate the task and find something to think about. They generally are not the developers themselves.

varun wrote re: Java vs .NET Developers
on Sun, May 3 2009 8:42 AM

Drag and drop behavior sucks indeed perhaps not so much while your prototyping, but things are improving.........  however I would still like to make a point that" for simpler issues simpler solutions must exist".... I mean KISS .

Of course when the complexity increases then one must Develop rather than drag .

I still don't get the view against DDD(not drag and drop ;)), domain driven is good, the idea is to isolate Domain stuff rather than adding all crap  on pretext of domain, if the developer can extract the domain related logic and come up with models and smart wrappers, then things make a lot more sence than need based programming, one can argue that if you are too serious about DDD then you kill the KISS aspect of it, but then we come back to the same point that the trick is to extract domain goodness wrap it and perhaps increase more helper methods in your code to handle the rest part.

btw why should we revolt against MS, just because it came up with an idea of Abstraction and ease(read drag and drop), having a Lotta control is good indeed, but we must remember that there was always legal ways to get back that lost control, one just has to dig deeper, Java is popular, gives people control(by less drag and drop stuff ;) ) but .NET is wonderful, if your not a hard ass engineer you could still Drag nd Drop and Create.... thats the goodness in things, If you won't more you gotta dig in more, can't charge against poor ol' MS for this ..can we ?????

DEL wrote re: Java vs .NET Developers
on Thu, May 7 2009 11:01 AM

The people who read this post are dedicated subscribers, career developer with a conscious interest in learning and building skills. The people who dont read this post are the ones you eloquently label as shallow.

To one crew, you are preaching to the choir. The others wont even receive this message. The post is judgemental, and despite your best attempts, you come across as elitist, telling us who sucks and who doesnt.

It eludes me why you take the time to write about these kind of subjects, it never goes anywhere

me wrote re: Java vs .NET Developers
on Wed, May 13 2009 11:26 AM

Greg, your blog have become unreadable for me. All these flashy ads, c'mon it's not 1995 anymore.

Nathan wrote re: Java vs .NET Developers
on Tue, Jun 2 2009 7:54 PM

I find these we are better coders because arguments annoying.

Java and .Net allow developers to do their thing in which ever way you like. Picking one feature of .Net  and hacking on it because its bad practise in a scenario it was never designed for is like grabbing a cripple and abusing them for not running 100 meters in 10 seconds or less.

Java and .Net are two great development technologies, how you use them is purely up to you.

Greg you opinions are flawed in my own opinion, I find the .Net community to be great, if I have an issue or wish to explore a concept further a quick search will find ample resources to learn from.

Yes .Net pushes certain technologies but you would be a fool to just accept these as the only options. I'm sure if I looked around the Java community I would find articles from people proclaiming X is the next best this.

I would suggest the guys who cam off as elitist should get some perspective here or do something else to feel superior.

Greg wrote re: Java vs .NET Developers
on Tue, Jun 2 2009 7:59 PM

@Nathan when did OO become part of the "community"?

The community is getting better, I will be the first to say that but its got a long way to go to catch up to Java. Go to JavaOne or QCon etc ... then go to the MS equivalent its night and day.

Peer Reynders wrote re: Java vs .NET Developers
on Wed, Jun 3 2009 10:27 PM

"When people are attempting to use DDD one of the first things I tell them is not to, there are simpler ways and most applications do not justify the expense and complexity of DDD."

Eric Evans made this point back 2003 in "Domain-Driven Design: Tackling Complexity in the Heart of Software", as part of the Smart UI Anti-Pattern (p.76-78):

[quote] "Many software projects do take and should continue to take a much less sophisticated design approach that I call the SMART UI. But the Smart UI is an alternate, mutually exclusive fork in the road, incompatible with the approach of domain-driven design.

...

A project needs to deliver simple functionality, dominated by data entry and display, with few business rules. Staff is not composed of advanced object modelers. If an unsophisticated team with a simple project decides to try a MODEL-DRIVEN DESIGN with LAYERED ARCHITECTURE, it will face a difficult learning curve. Team members will have to master complex new technologies and stumble through the process of learning object modeling (which is challenging even with the help of this book!). The overhead of managing infrastructure and layers makes simple tasks take longer. Simple projects come with short time lines and modest expectations. Long before the team completes the assigned task, much less demonstrates the exciting possibilities of its approach, the project will have been canceled.

Even if the team is given more time, the team members are likely to fail to master the techniques without expert help. And in the end, if they do surmount these challenges, the will have produced a simple system. Rich capabilities were never requested.

A more experienced team would not face the same trade-offs. Seasoned developers could flatten the learning curve and compress the time needed to manage the layers. Domain-driven design pays off best for ambitious projects, and it does require strong skills. Not all projects are ambitious. Not all project teams can muster those skills.

Therefore, when circumstances warrant:

Put all the business logic into the user interface. Chop the application into small functions and implement them as separate user interfaces, embedding the business rules with them. Use a shared relational database as a repository of the data. Use the most automated UI building and visual programming tools available.

...

In truth, there are advantages to the SMART UI, and there are situations where it works best - which partially accounts for why it is so common.

...

Remember, one of the consequences of this pattern is that you can't migrate to another design approach except by replacing entire applications." [end quote]

However it is also true that many successful business applications have very simple beginnings and as a result of their success acquire more complexity over time. Then comes a point where somebody has to stand up (early enough) and put that SMART UI application out of its misery, long before it collapses under its own (complexity) weight and becomes a major business liability. Unfortunately, all too often good money is thrown after bad "in order to preserve the existing investment" or "because it's too expensive to replace the existing application" (ignoring what it's currently costing the business in terms of maintenance effort and missed business opportunities).

Peer Reynders wrote re: Java vs .NET Developers
on Thu, Jun 4 2009 7:15 AM

"When people are attempting to use DDD one of the first things I tell them is not to, there are simpler ways and most applications do not justify the expense and complexity of DDD."

Eric Evans made this point back 2003 in "Domain-Driven Design: Tackling Complexity in the Heart of Software", as part of the Smart UI Anti-Pattern (p.76-78):

[quote] "Many software projects do take and should continue to take a much less sophisticated design approach that I call the SMART UI. But the Smart UI is an alternate, mutually exclusive fork in the road, incompatible with the approach of domain-driven design.

...

A project needs to deliver simple functionality, dominated by data entry and display, with few business rules. Staff is not composed of advanced object modelers. If an unsophisticated team with a simple project decides to try a MODEL-DRIVEN DESIGN with LAYERED ARCHITECTURE, it will face a difficult learning curve. Team members will have to master complex new technologies and stumble through the process of learning object modeling (which is challenging even with the help of this book!). The overhead of managing infrastructure and layers makes simple tasks take longer. Simple projects come with short time lines and modest expectations. Long before the team completes the assigned task, much less demonstrates the exciting possibilities of its approach, the project will have been canceled.

Even if the team is given more time, the team members are likely to fail to master the techniques without expert help. And in the end, if they do surmount these challenges, the will have produced a simple system. Rich capabilities were never requested.

A more experienced team would not face the same trade-offs. Seasoned developers could flatten the learning curve and compress the time needed to manage the layers. Domain-driven design pays off best for ambitious projects, and it does require strong skills. Not all projects are ambitious. Not all project teams can muster those skills.

Therefore, when circumstances warrant:

Put all the business logic into the user interface. Chop the application into small functions and implement them as separate user interfaces, embedding the business rules with them. Use a shared relational database as a repository of the data. Use the most automated UI building and visual programming tools available.

...

In truth, there are advantages to the SMART UI, and there are situations where it works best - which partially accounts for why it is so common.

...

Remember, one of the consequences of this pattern is that you can't migrate to another design approach except by replacing entire applications." [end quote]

However it is also true that many successful business applications have very simple beginnings and as a result of their success acquire more complexity over time. Then comes a point where somebody has to stand up (early enough) and put that SMART UI application out of its misery, long before it collapses under its own (complexity) weight and becomes a major business liability. Unfortunately, all too often good money is thrown after bad "in order to preserve the existing investment" or "because it's too expensive to replace the existing application" (ignoring what it's currently costing the business in terms of maintenance effort and missed business opportunities).

Mike Brown wrote re: Java vs .NET Developers
on Thu, Jun 11 2009 3:18 PM

Greg,

  I honestly think the difference between the two communities is that Microsoft focuses on the tooling around .NET so you'll see a lot of demos from MS on how to use the tools (IE DnD) to do something very easily.

  I remember watching a demo during the VS2005 launch where the presenter created a full forms over data application (including authentication/authorization) using the designer only.

  Sun hasn't focused on tooling as much. So their demos have usually been, how do I write code to do X? The documentation around Java and how to use it was sparse and it was up to the community to provide this stuff.

  We can't even talk about the framework itself as being a cause of the difference, because there have been some stinkers from Sun (EJB anyone)? If Java had a tool similar to .NETs datasets and the dataset designer in Visual Studio, it would have taken a lot longer for a framework such as Hibernate to appear.

   Honestly, I think it comesdown to mainstream appeal. Microsoft has done an excellent job at making sure .NET attracts a large swath of developers. These two factors (mainstream appeal plus tools that do most of the work for you 85% of the time) makes the likelihood of finding a .NET developer who doesn't know what a WeakReference is a lot higher than finding a Java developer who doesn't know about NHibernate.

I would like to know how many of the devs that Davy screened came to him from a "recruiter" vs. were referred by someone he knew.

That said, the anecdotal evidence is compelling. And there IS a lot that we need to do to get a higher percentage of developers who care about professional software engineering. I think it all begins at the education system. More and more "Computer Science" programs have a trade school mentality with their curriculum.

Then again, that's not even the issue because the barrier to entry into IT is as low as "Take this 6 week course to become a certified developer".  And that model will continue as long as the developers are able to make "good enough" software for the businesses hiring them.

Najah Talia wrote re: Java vs .NET Developers
on Wed, Jul 22 2009 4:53 PM

From my experience in the software industry as a developer for more than 15 years in the IT environments, I believe that .NET is becoming more mature and more capable than the JAVA platform.

In the beginning when JAVA started it was viewed as magic that is to use same sources on different hardware (run on different operating systems). But lot of critics said at that time that JAVA performance was weak compared to other development environments.

Microsoft came up with different approach with .NET by promoting the concept of using different languages at the same time in the same module and also run time interpretation, same concept as JAVA. But Microsoft did not do what JAVA did, that is the .NET does not run on other operating systems other than windows (Linux with MONO is an exception but is not productive yet!!).

The real thing to say about the tremendous difference between both technologies is that, .NET is being designed by the experts of the windows kernel (know all secrets), JAVA is weak because it does not use the full capabilities of the Windows family of operating systems (JAVA designer is not exposed to the secrets of the Windows OS!!!).

Najah Talia wrote re: Java vs .NET Developers
on Wed, Jul 22 2009 4:54 PM

From my experience in the software industry as a developer for more than 15 years in the IT environments, I believe that .NET is becoming more mature and more capable than the JAVA platform.

In the beginning when JAVA started it was viewed as magic that is to use same sources on different hardware (run on different operating systems). But lot of critics said at that time that JAVA performance was weak compared to other development environments.

Microsoft came up with different approach with .NET by promoting the concept of using different languages at the same time in the same module and also run time interpretation, same concept as JAVA. But Microsoft did not do what JAVA did, that is the .NET does not run on other operating systems other than windows (Linux with MONO is an exception but is not productive yet!!).

The real thing to say about the tremendous difference between both technologies is that, .NET is being designed by the experts of the windows kernel (know all secrets), JAVA is weak because it does not use the full capabilities of the Windows family of operating systems (JAVA designer is not exposed to the secrets of the Windows OS!!!).

Shaw wrote re: Java vs .NET Developers
on Wed, Aug 5 2009 5:20 AM

I remember an interesting conversation between a Java dev and a .NET dev. The Java dev asked him why concepts such as IOC (DI) are not used in .NET, and how come there is only one way for everything.

The ans. from the .NET guy was, whatever MS provides is enough for the solution, and there was never a need for more. In fact, he believed Java has messed up the entire industry by a lot of hype that according to his opinion doesn't deserve. I was not a Java developer then, but I used to be looked up by the .NET folks as some sort of dirt, while the Java folks were more welcoming to alternatives.

I'm doing Java development now,  and I can't say how much my thinking as changed by learning Spring & Hibernate. It's worth it just for the intellectual pursuit, if not for anything else.

It's refreshing to see folks like you exist in .NET. I have had a real bad experience with MS devs, they usually come off as arrogant and have some extreme opinions.

Philip wrote re: Java vs .NET Developers
on Tue, Aug 11 2009 4:25 PM

What kind of moron thinks that a framework is better because they know the secrets of the OS platform they are deploying on.  That is living in IBM mainframe days.  I don't want to develop on a platform where functionality is hidden from me.

Web Design Edinburgh - Website Design, SEO, eCommerce, Internet Marketing in Edinburgh wrote Web Design Edinburgh - Website Design, SEO, eCommerce, Internet Marketing in Edinburgh
on Sun, Aug 16 2009 2:04 PM

Bear Stearns Cos. Chairman James Cayne dumped his entire stake in the embattled investment bank for 61 million as it appears closer to a takeover by JPMorgan Chase & Co.

Steve wrote re: Java vs .NET Developers
on Tue, Aug 18 2009 9:30 PM

I have been writing enterprise Java for almost 10 years and recently moved to .NET. I would say that my understanding of OO design principals and core methodologies are more highly tuned than my counterpart .NET developers. The Java Open Source community has become splintered by the slightest disagreement in the most minor of design decisions and this has resulted in a wide array of web frameworks see (www.manageability.org/.../how-many-java-web-frameworks) for a listing of 54 (yes that's FIFTY FOUR) Java Web frameworks.

While choice is nice it can also produce confusion when it comes to deciding what framework best suits your target domain.  Before a project starts are you really going to investigate all 54 frameworks to find the best? If you do then good luck explaining the 5 month analysis phase to your PM. I have been down this path once before when it came to selecting an object to xml mapping tool. I spent a month coding under one API only to discover that it did not offer one obscure, low-level feature that I needed for my solution. another detractor from the Open Source community is the flame wars that go on between these splinter groups. There are some pretty large egos involved in these splinter groups and discussions can border on pathetic, which is distracting if you just want the technical specs.

That being said the process of analysing a selection of frameworks and tools teaches you to appreciate good underlying design principals such as extensibility and ease-of-maintenance. By the time you have run a proof of concept on the 4th option you have a good understanding of what an ORM, for example, should and should not do.

I am a fan of analogies and a good analogy for the java-.NET comparison is a mechanic. If we have 2 mechanics (lets call 1 Bill Gates and the other James Gosling). Now if Bill only ever works on Toyotas and James works on all other cars then James will get to see the different designs, fuel systems, transmission designs etc.  Eventually James starts to form his own opinion of what is and is not a good transmission system, which fuel injector designs are less likely to fail etc. James is the more knowledgable mechanic.

If I was running a SW development shop I would insist on new developers working in Java for at least 2 years before letting them loose on .NET. Or maybe even make them write C for 6 months first, then C++, then Java then C# ... yes, they should all be like me :)

Danny wrote re: Java vs .NET Developers
on Wed, Aug 26 2009 1:34 PM

@Steve

I disagree somewhat. I've developed in both Java and C# and I've met Java developers that were clueless about design principles as well as .NET developers. I don't think its really the language that matters. There are developers on both ends that just can't cut it.

As far as personal preference goes, after getting into .NET, I refuse to even take a passing glance back at Java. The language features are rich and allow you to accomplish much more with less. I definitely think that drag and drop is an advantage that .NET has over Java because it allows you as a developer to spend less time doing the repetitive work of building and debugging the presentation layer of your particular app and more time writing the supporting logic.

Ultimately, this tends to increase the quality of your code since now you have more time to test and code your business logic. Whereas in a language such as Java you would budget out say half your time on building the UI and the other half on testing and coding for a given feature, in a language such as C# you would spend maybe a quarter of your time on UI work and three quarters on actual business logic. This extra gain in testing/coding time is definitely a plus in languages that support drag and drop development.

I remember my days pulling my hair out over GridBagLayout settings... I'll stick with my drag and drop any day.

As for having your employees spend time in Java before having them learn C#. I'd do the same if the situation was reversed. If I had someone coming to me that worked only in Java, I'd have them learn some C# or C++ or C first. Diversity is always a good thing.

Being a .NET programmer does not make one any less knowledgeable and does not make one prone to bad design decisions. Bad design exists regardless of .NET vs Java. One just has to be proactive in learning what good design is and isn't and constantly honing their skills.

I personally prefer .NET for the added productivity it gives and the wide array of out-of-the-box libraries and frameworks that come with it such as WCF, WF, WPF, WinForms, ASP.NET, etc. To me, it seems like it has the right tool for just about any job I have run into as a developer.

Paul wrote re: Java vs .NET Developers
on Sat, Sep 5 2009 11:45 AM

I am very happy to keep Java runtimes off my machine!

Java blows. Drag and Drop developer my ass...

Do you still copy files by typing them out every time or do you drag and drop your files onto your usb.

saeedouv wrote re: Java vs .NET Developers
on Wed, Sep 16 2009 2:11 PM

i have graduated 8 months ago, and have been working on Java platform during study(because java got its chance in my university in comparison to .Net), however, after graduating, i found my self in .Net world, actually there is tons of articles such as java vs .Net, c++ vs. java, python vs. ruby,etc... , i don't  know what is the best choice to pick, but here are some critical points i must mention:

1- there is NO this better than that, its all the matter of what you like and what you hate, from both sides(in this article are java and .Net) there are huge number of support, releases, articles, and implementations to go through, in my opinion, .Net community is growing larger and better, and YES, MONO project will make .Net more powerful by removing OS dependent programming model.

2- Java's open source community is more powerful than .Net's one, due to Java's Nature, its open source, but still a hope of the growing .Net open source community, as some posts here mentioned, you will find JUnit and NUnit, Hibernate and NHibernate, Lucene and Lucene.Net, and much more. so its a waste of time to determine which is better than the other !!

3- for six months, i have been working hard to just get the idea whether to continue on focusing on java or .Net, one month i say 'java', another i say '.Net' and thats what wasted 6 months of my effort and knowledge rather than spending them in advancing and mastering any one of them, so, my decision is as the following "buying Mercedes is the same as buying  a Honda, 2 are cars, 2 give me my ride, so its only the matter of  made-in  and some extra here and some extra there :D"

improve credit score wrote improve credit score
on Mon, Oct 12 2009 2:47 PM

This conversation is titilating! I\'ll have to come back here often!

Online Money Coach wrote Online Money Coach
on Sun, Nov 22 2009 12:59 AM

If you want your target audience to take action, you need to explicitly use call to action in marketing. This way, you will not only get a much higher conversion rate and ROI in your marketing (be it offline or online, especially on landing pages), but

Add a Comment

(required)  
(optional)
(required)  
Remember Me?