Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I would like to have some professional opinion about the programming language used for a project in a company. Let's explain me...

In my company, the first argument to choose Java as the main language is its name and its popularity from the perspective of the customer. It appears that if you propose to develop the client's software in Python/Ruby/..., he is less convinced.

I would like to know if you are experiencing this kind of situation and what you think about that ?

share|improve this question

migrated from stackoverflow.com Mar 27 '11 at 12:39

This question came from our site for professional and enthusiast programmers.

1  
Is your question therefore 'Should I go with what the customer thinks they want, or what I/we think would do best?' –  The Communist Duck Mar 27 '11 at 9:52
    
I think both views are interesting –  Sandro Munda Mar 27 '11 at 9:54
    
Customer is King! –  Aditya P Mar 27 '11 at 12:50
1  
@AdityaGameProgrammer I don't think... the goal of a analyst/developer is to correctly explain the best solution of the customer's needs. –  Sandro Munda Mar 27 '11 at 12:52
    
Are we talking about a software that is delivered to a single client, a software that is sold to a number of clients or a software that run on your company's servers ? –  Matthieu M. Mar 27 '11 at 18:20
add comment

6 Answers 6

up vote 9 down vote accepted

There can be many reasons why the client prefer Java over Python/Ruby. Here are a few:

1. There are more Java programmers than Python/Ruby programmers out there.

If they ever want to take development elsewhere it will be easier to find Java developers.

2. The client already have most of it's software written in Java.

If they ever decide to get their own software department to maintain the software it's much easier if everything is written in the same language.

3. They might want to integrate the software with existing software.

This is also much easier if it's written in the same language.


Even if the client doesn't have any existing software the first argument is a pretty strong argument. The only way you're going to convince the client to use Python/Ruby is if you can prove that it's quicker to develop and easier to maintain and thus saving the client money.


EDIT: I'm currently an iPhone developer, so I don't have that discussion any more, but I've had it in the past. It's almost always that the client wants it written in a language that they are comfortable maintaining.

share|improve this answer
    
I can attest to bullet #1. My company switched to C++ because they felt they could hire more college graduates who already knew the language. –  Kristo Mar 27 '11 at 13:36
    
+1. Also, Java is a far more stable language than Python and (AFAIK) Ruby. You can be pretty sure that your Java code will compile and run with the latest Java SDK ten years from now. –  Nemanja Trifunovic Mar 28 '11 at 2:50
add comment

I have had customers demand VB.NET over C# because "C# developers are more expensive." I don't care whether my guys type semi colons at the end of the line or not and I don't adjust their pay based on it.

You know that guy who says "I've been rich and I've been poor, and rich is better"? Well I've had customers who tell me what language to write their code in, and customers who don't, and with the exception of writing demos and sample apps (a line of work that has tremendous benefits), not telling me how to do my job is better. Some of my best customers remain focused on their business problem and trust me to solve it. They don't know the difference between Java and PL/1, never mind Java and Python, and they don't care either. They have stuff to ship of their own.

If you don't have the option of not having these people as a customer, don't try too hard to get them to change their tech. They have their reasons and they might even be valid (knowledge of the maintenance team, knowledge of the IT team who is going to run backups or configure servers or open ports, license costs, security risks, availability of alternate vendors.) About the only thing that does work is "I can't do it in the tech you're asking for (at any price) but in the tech I like I can give you more than you're asking for, for about half your budgeted amount." I've done that once and succeeded.

share|improve this answer
1  
+1 Exactly. Should a person who wants to have a house built tell the carpenter what tools to use? "I'm sorry Mr. Carpenter, but I do not like hammers..." –  Walter Mar 27 '11 at 13:29
1  
@Walter it's not unreasonable to use screws everywhere. It is a superior technology, you know. ;) –  Erik B Mar 27 '11 at 13:46
1  
@Erik - some how I knew someone here would be a smart-a** and say that exact thing. :) –  Walter Mar 27 '11 at 13:50
    
To which you should reply "competent VB.NET developers are more expensive, because few self-respecting experts are willing to touch VB.NET" Quoting the price for delivering VB.NET source code at 3x the price for C# source code may help drive that point home. –  Ben Voigt Mar 27 '11 at 19:06
1  
There is a line here though. If you are commissioned to build make a Windows desktop app and you chose Clojure they would have a valid concern in regards to maintenance and future development challenges (i.e., easily finding competent programmers to maintain it) –  Ed S. Mar 28 '11 at 0:59
show 3 more comments

choose the right tool for the job

if the tool doesn't matter, consider client preferences vs development and maintenance costs and explain the trade-offs clearly; let it be a business decision

if the tool does matter, insist on using the right tool

Note: if the client does not trust you to choose the right tool, they don't trust you at all. Find better clients.

share|improve this answer
add comment

You might convince them if you estimate 100k to build it in Ruby and 200k to build it in Java.

share|improve this answer
    
Only if it'll really cost you twice as much to write it in Java vs. Ruby. Otherwise you're just lying to your customer - probably not a good idea. –  Kristo Mar 27 '11 at 13:33
    
They could charge a higher rate for Java development. –  kevin cline Mar 27 '11 at 14:59
add comment

I experienced this situation more than once in my career life. Once we had a very successful native application and we wanted to sell it to a customer and they demanded .Net because they have been told that it's the future. Other situations were very similar.Some customers ask for some kind of technology because they are influenced by marketing and ads.

share|improve this answer
add comment

I agree you should apply your expertise to best inform the customer, but at some point you're just going over their head with technical information without really justifying one language over the other (in many cases). Why spend the extra effor to convince them to go with something outside of their comfort zone? They may want some sort of security if they feel they can either hire another Java developer or use inhouse expertise should your company decide not to continue their project.

You've made a good choice in finding out if this is common. Your collegues seem to be making guesses without providing any data. I don't know what industry you are in, but you may want to look at competitors who write custom software or off the shelf application and see what language they use. Be careful, you may find some Microsoft shops out there ;)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.