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 want to code my next work project in a language I'm unfamiliar with (python). I can think of plenty of reasons from my point of view why its a good idea (not least of all because it sounds fun). However my manager will probably ask me why. I'm a little stumped on the advantages from his point of view.

EDIT: I normally code in C#

EDIT2 My reasons for wanting to code in another language;

  1. It will make an easy project much harder so I will learn more and it will be more interesting
  2. I have just read a book on python. I want the chance to apply it in a business application so I properly understand it
  3. It will increase my skill set and make me more employable
  4. Python looks fun
share|improve this question
1  
What language would you be writing it in usually? –  RYFN Oct 10 '11 at 16:03
1  
"I can think of plenty of reasons" What are they? How does this translate to business advantages and disadvantages (cost,effort)? –  P.Brian.Mackey Oct 10 '11 at 16:06
5  
Why not see if you can use IronPython. That way you can at least still use .NET –  Jetti Oct 10 '11 at 17:26
    
Other than it sounds fun what are your reasons for wanting to use python? –  Chad Oct 10 '11 at 19:19
1  
Coding a for-work project using unfamiliar languages etc is a risk. It also introduces long-term maintenance issues (how many languages will future employees need to know?). There need to be strong project-specific advantages to outweigh disadvantages like that - the language should be particularly suited to the project. And if you don't have experience of the language, you're not in a good place to judge that. –  Steve314 Oct 11 '11 at 9:55
add comment

7 Answers

up vote 8 down vote accepted

I would rather choose a language that is better for the task I have to accomplish. Which kind of project? This would not only be of benefit for your company but also for you (choosing the wrong tool can cause trouble later).

If Python is something that could enter in your company/group strategy and you want to learn it, I would be honest with your manager and tell it that you want to do it in Python to learn Python. He will be then able to choose if the cost/benefit ratio is OK.

BTW what is the alternative? (i.e., the 'default' language)?

share|improve this answer
add comment

Shouldn't you approach it from the point of "what should I do that is best for the company" rather than "what do I want to do and how can I convince them of its value."?

share|improve this answer
add comment

You should probably not take risks with your employer's time/money for your own benefit... just a thought.

Learn Python on your own time - then making an argument for using it will happen naturally if its appropriate.

share|improve this answer
add comment

It sounds like you just want to "have fun" on the company's time.

Choosing a language with no compelling advantages to solving the problem at hand, taking longer to deliver and leaving a support nightmare behind you. What is there for your manager to like?

You have no justification for doing this. If you want to play with a new language, fine, but do it in your own time before you try to convince your boss to let you use it and pick a project / language combination that actually adds value.

To give a counter-example:-

I once used PERL to automatically do some conversion of a large Delphi codebase. I had already spent some time playing with PERL at home, the code did not to be supported beyond the end of the project and the RegExp functionality built into PERL made me several times more effective than writing the same functionality in Delphi even though my PERL knowledge was quite limited.

share|improve this answer
    
+1 for the counter-example. Some things can be done faster in a language like Python than in C#. –  Mechanical snail Oct 11 '11 at 3:59
add comment

Is there any hint in your company that you will be leaving the Microsoft stack or a desire to get away from being totally locked-in? Having developers with knowledge in other areas would make this easier.

There are suggestions to only use a particular language if there is a specific benefit to the project. This always seems difficult to do when you haven't learned a language. How do you know what you don't know? Sure you can research or ask on SO and either get your question closed or at best, receive a 'it depends' reply.

It may help you develop new techniques to handling current problems.

There may be an advantage to being a dual-language shop when it comes to recruiting talent. Your next programmer may have a Python preference, but is willing to do some C# work as well.

So many places complain that their developers are set in their ways and don't want to learn new things. Start a small project and show you're eager to learn, but willing to work within the parameters of what helps your company.

share|improve this answer
add comment

Some advantages (depending on what kind of project you want to accomplish and what the alternative language would be ;)

  • clean OOP with dynamic typing (so inherently generic)
  • good for rapid prototyping
  • Mixable with other languages
  • open source and popular
  • portable
  • Powerful language constructs and toolkits / libraries
  • good for internet scripting
  • automatic memory management
  • Fun and fast to learn and use

Other then that, think about why you want to learn Python, and you'll probably find several benefits for your company, too. If not, Python is not suitable, and you shouldn't pick it.

share|improve this answer
    
Good answer - but "good for rapid prototyping" - I always cringe at this, there are lots of different things you might want to prototype... I'm not saying Python isn't well suited for some, but I can think of situations where even C would be better simply due to performance limitations (yes these can apply to prototypes too - e.g. you want to real-time edit some video and the real-time part is key to the feature). –  jheriko Oct 10 '11 at 19:30
add comment

Where's the value for your company?

My reasons for wanting to code in another language; 1) It will make an easy project much harder so I will learn more and it will be more interesting

And in the process, make the project take longer and increase the risk of a total failure. There is no clear benefit to the company here, only costs / risks.

2) I have just read a book on python. I want the chance to apply it in a business application so I properly understand it

No benefit to the company here, unless Python is a technology that they want to embrace anyway.

3) It will increase my skill set and make me more employable

... and more likely to get a job elsewhere?

4) Python looks fun

So does water skiing. Both are irrelevant to the company.

OK, there are benefits to having staff enjoy their work, but no manager is going to buy into the idea that having fun is more important than actually doing the required work efficiently and with minimum risk.


Learn Python on your own time on your own projects. When you are good at it, and when you've gathered a sound body of evidence to bolster your case, talk to your manager about whether it is in the company's interest to adopt it. (And be prepared for a pragmatic response of "No" or "Not yet".)

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.