views:

136

answers:

6

To develop a new project we are thinking to train .NET people learning either JEE or Ruby on Rails. This decision is just because of open source and to avoid purchasing of operating system also Sql Server database.

Currently there are no people who work on either JEE or RoR. All team members should learn from the scratch.

If application is growing in future and requires to have multiple servers, does open source / free software gives me TCO when compared to train people and recruit more experienced guys?

Please suggest me whether this is good decision or not.

+4  A: 

Why not consider Mono? you can leverage your existing knowledge, and use open source software.

RedFilter
+8  A: 

You can program in .NET completely free with VS 2010 express and an open source database.

I'd stick with whatever everyone in your team has the most experience in. If you have several man-years of .NET experience, I would not move because you lose all of that.

You do not want your entire team "learning from scratch" when they are trying to build something for production. There is nobody there to guide the team across the vast asteroid field of gotchas and little quirks that each new programming language presents when you first start learning it.

My advice, stick with .NET even if that means using the open source alternatives available to you.

Also, if your project is going to grow into something that spans across multiple servers, etc... you may want to consider biting the bullet and buying commercial licenses. This way, you get support and you have someone to "blame" when (not if) things go wrong.

Either way, there are plenty .NET open source and commercial solutions that can be used to ensure your project has the right level of cost associated with it, while still being able to leverage your team's existing skill set.

Robert Greiner
I mostly agree, except the part about "commercial licenses". When things start going wrong, the people who licensed you the OS and DB aren't going to come to your rescue (at least not on any useful timescale), and your customers aren't going to keep paying you just because you have someone to blame. What I'd want is to pay someone to keep a *service* running for me. And then I don't care how it's licensed, as long as the service stays up. I've launched and supported web services on free and proprietary systems, and neither has strictly better product support. The name of the game is services!
Ken
+3  A: 

I would give a resounding NO on that.

  • If you development costs with respect to tools are a determining factor then this should be a very small project. Programmers Cost regardless of which tool you have them code on.

  • Your foundational assumption is incorrect. A there is a free version of visual studio. B. the compliers themselves for the .net languages are free. mono is available and is completely open source.

  • The cost of inexperience with a tool can cost a lot more then the cost of purchasing a tool over the long run.

  • .net is database agnostic you could utilize mysql for cost.

rerun
A: 

If Open Source is a strong constraint sure you have to shift to JEE or RoR (Mono is too young). But you have to consider that the TCO of your project will be augmented by the higher price of JEE consultants.

I don't know very well RoR, but you could have some problem to find consultants at a professional level.

DOT.NET is easier to use and to develop with and you can find a lot of developers, not so expensive. Sure you have to pay for the OS and platforms as SQL Server and so on, but you told us the TCO, so you have to consider all the costs...

Especially JEE has a lot of consultants in an enterprise environment, so the cost are higher than .NET. IMHO :-) And you have to consider that JEE tools are not so refined as .NET Tools. JEE people wants to sell you consulting, not OSs ;-)

May I advice you a 4th choice? PHP: it has a lot of consultants, it is open source and you can find guy developers or professional developers. It's not so elegant or appealing as Java, .NET and RoR, but a lot of Web Application are developed in PHP: Facebook is a great example! Joomla, Wordpress.

With PHP you find all you want as consultants and platforms.

Sure I assume you want to develop Web App because in the case of fat I advice you only .NET!

IMHO

robob
A: 

You're going to love this answer: it depends.

Don't just think about development staff, initially or for later maintenance, but also what kind of operators you're going to need. The smaller the market penetration of your platform, the higher their wages, if you can find them at all. And to scale, you're going to need them, since unforeseen problems will arise whatever platform you use: the interaction of network infrastructure with your app servers is seldom completely trouble free. Also don't just think about your current staff, but how easily it is to recruit new people (and how much they're going to charge).

To go over the options you are listing, risking religious outcries:

  • RoR is great when you have a certain kind of app and database structure. Going outside those is going to hurt. On the plus side, the developers you'll find are likely to be eager and curious, willing to learn new stuff. On the minus side, will they leave to jump on the next bandwagon? (To be fair, this is a challenge for all relatively new technologies.)
  • I'm not sure I'd recommend J2EE as a strategic direction: other Java enterprise frameworks have gained significant traction. On the plus side, finding staff for generic J2EE dev't isn't too hard, but specific vendor extensions for operation and monitoring will vary between products.
  • .NET suffers from internal fragmentation (or, to be positive, from a multiplicity of options): are you talking ASP.NET + SQL Server? Silverlight or SharePoint front ends? Or even Azure 'cloud' apps? The greater the range of options you actually use, the harder the total set will be to operate and maintain. For some of these technologies, finding staff is a piece of cake.
Pontus Gagge
What kind of app and/or database structure does rails do poorly?
Dave Sims
From what I've seen (NB: haven't actively tried developing, so maybe I'm off my... rails!), Rails wants to define the data model -- so any kind where you don't define the database, or there are other usages with structural requirements (e.g. non-Rails reporting). To quote: 'Rails is opinionated software', optimized for certain ways of doing things. If these fit with your other requirements, great. If not, you're in for a headache. The usual tradeoffs apply: you get convenience at the cost of flexibility (and flexibility only at the cost of convenience).
Pontus Gagge
+2  A: 

I would strongly suggest to move on to Ruby on Rails

Reasons will include Much easy to learn when compared to .NET or J2EE. Open Source. Very very very active community which does a lot of work for you.

Scalability wise, you've a lots and lots of options.

Instead of paying to developers pay for hardware and consider Horizontal scaling.

RoR is a complete stack to develop an web based application. It has quite a lot of support for almost all the databases (including but not limited to MySql, SQLServer, Oracle, MongoDB, NoSQL, HyperTable, etc)

A wide variety of web servers support (WebRick, Mongrel, thin, passenger, etc)

It is much faster to develop applications with Ruby on Rails. Hope both .NET developers and J2EE developers will accept this fact.

best of luck...

Kannan R.

KannanR