tags:

views:

165

answers:

4

At my company we develop applications that run on the JVM (JEE and Grails) as well as .NET applications (ASP.NET and client/server Forms apps). In your experience, when have you recommended one over the other to a customer?

I asked this question incorrectly here but I think the fact that I put an initial list got it closed. I'm looking for things like if you want to do X then Y is better because of Z. I think this would be a valuable resource/case-study to the community. For example, I tried doing some USB hardware stuff in Java/Windows and would not recommend it again because of the lack of good libraries in Java.

+9  A: 

Don't bother explaining technology, explain solution and its benefits.

Dev er dev
I agree, however some clients want the details and giving them a 'map' of what is good for a certain scenario is helpful.
Abdullah Jibaly
Mike Robinson
A: 

I'd recommend to see if the customer is remotely happy or unhappy with one solution (e.g. check for deployment platform requirements) and - if there are no obstacles from this - go for the environment that the team (or qualified majority thereof) working on the solution has the most and best knowledge in. I've found it way more productive to work in the personal comfort zone than outside of it.

Of course, sometimes you want to get out of the comfort zone in order to learn new stuff, but I wouldn't recommend doing so on paid customer projects (at least not if everybody is outside of their comfort zone). You need a way to estimate effort after all and you cannot do this if you don't know the environment.

Olaf
A: 

This is a big rabbit hole, however...

If I ever have to argue for one technology over another, I do it around cost savings now and in the future. i.e. I can get it done faster by starting with an open source Java project now, but it will more expensive to upgrade and maintain later.

I don't think you can put this stuff in a magic grid because every project is different, every team is different, every company is different, and all of those factor into platform decisions and recommendations. Except for maybe the simplest cases like use Perl isn't the best choice to write an MS Office Add-on... which is useless information.

JasonS
+1  A: 

If you want tight integration with Windows, other Microsoft products, or COM components, .NET is better because it's designed with such integration in mind.

If you need to provide or consume XML Web Services, then .NET is better because the tools for that kind of development are more consistent and easy to use.

If you want to develop or deploy on non-Windows platforms, then target the JVM because there are stable implementations of it available for most platforms.

Apocalisp