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.

As an example I want to switch from C#/.NET to Scala/Jvm. I'm working as a self-employed and I'm free to choose my favorite language/platform. Having more than 8 years of experience in C#/.NET leads me to have lots of reusable codes, libraries and framework. I can work on my projects and ideas without thinking about language so I'm focused on what I'm doing.

Why should I do such migration? Because;

  • Scala is open-source and innovative
  • Scala runs on JVM which is cross-platform that decreases costs and some risks
  • Scala has all C# feature (with something more)
  • Benefit of Java comminuty
  • More open-source libraries in Java platform
  • Doing open-source in .NET is a little harder and doesn't get attention as it does in Java or other plaforms.

Is it OK to manage such a big risk and learn a new language/platform (in this case, Scala, Play framework, etc.) and use it in at least a small commercial project to find out if it's suitable?

share|improve this question

closed as off-topic by JeffO, Corbin March, MichaelT, GlenH7, Robert Harvey Aug 16 '13 at 3:37

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – JeffO, Corbin March, MichaelT, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Have you considered F#? It's .NET's "Scala". –  Den Aug 15 '13 at 8:34
    
I don't care about functional programming a lot. I care about Scala new OO futures more than functional. –  A. Karimi Aug 15 '13 at 8:47

4 Answers 4

I wouldn't use an environment that's totally new to me in a commercial situation, as you don't know the pitfalls of the language and frameworks. This will cause your estimates to be grossly incorrect, as you need more time to find solutions to problems that are new to you.

If your customer is fine with that, go ahead. Otherwise I'd try to convert an existing .NET application to Scala in my own time.

share|improve this answer
    
I think it's mature enough to use in a simple commercial project as it's used by LinkedIn! –  A. Karimi Aug 15 '13 at 8:11
12  
I wasn't talking about the language's maturity, but your experience in it. –  CodeCaster Aug 15 '13 at 8:11
3  
CodeCaster is 100% correct here. i have a c# background, but started a new venture using Node and JavaScript. Estimates were way off, but it wasn't and issue as this was a project for myself not a commercial one. –  Roberto Modica Aug 15 '13 at 9:42

Not many customers will be happy for you to be learning at their expense. They may have given you free reign to pick, but be assuming that whatever you pick, you are an expert in.

I am self employed as well, and frankly, the only consideration for me is whether I will be able to find new contracts using my skillset.

Dropping my bread and butter stack to learn a new one makes sense if the old one is becoming obsolete and there is less and less work available doing it. And even then, I may have to pitch myself at a lower level to get work in the new stack.

That being said, older stacks are more niche and come with higher rewards, but you need to find the balance between there suddenly being no work, and your skills being out of date.

share|improve this answer

At the risk of teaching grandma to suck eggs, you'll of course have to learn this in your own time. Unless you have some very understanding customers, they're unlikely to give you the time (or money) to develop new skills at your own pace for your own professional gain.

As a former contractor/freelancer myself, there is a definite benefit of coding in a language where expertise is freely available. My freelancing price structure was $X for development and doubled if they wanted the source.

I was brought in on one C# freelance project specifically because the previous incumbent was writing their software in an arcane language (knowing that expertise wasn't readily available) and fleecing the client for the simplest updates.

share|improve this answer

As long as the customers are happy with solution, it does not matter which platform you are using or planning to switch to.

It is very important to choose tools and appropriate development platforms that will deliver the solution. One of the most important phase of the system requirement analysis is to choose the right/available and familiar tooling to tackle the project.

However, be aware that totally new development platform and tooling does require upfront time investment.

share|improve this answer

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