Thursday, June 24, 2010

Ruby On Rails Or Java/J2EE

Choosing the development technology is a very important decision for any company Big or Small. For a Big Company, most of the times speed of development is not an issue. They normally want reliability of their programs. For Start Ups Normally it is getting the product out ASAP and most of the times its the Microsoft model...throw it out and then keep on fixing it.

I have had experience of building applications in both the languages i.e Ruby On Rails (RoR) and Java/J2EE. Infact developed very similar applications using both the technologies. I have had good and bad experience with both the languages.

1) Finding Resources who can work on Java/J2EE: Believe it or not, this is one of the biggest advantage of using an Old and popular technology. You get lot of seasoned resources. Finding resources for Ruby On Rails especially in Los Angeles is not easy.

2) Java/J2EE not being as dynamic as ruby has its own advantages as well. Compile time errors will throw errors for you right away if you misstyped a variable in your code that will be executed once in a year. Unless you have a test case for that piece, your code is set to break for that one day.

This is the biggest irony for RoR. RoR is preffered for its speed of development.And you can develop as fast. But then because of its dynamic nature, for RoR to be bug free, developer needs to have extensive test cases built. Thus slowing the release to production. Though if your product is not very complex and not many cases and ifs and thens, then it might not hurt you.

3) Performance: Java/J2EE performance wise is so much better. Wonder why twitter fails so much whereas other websites that use traditional Java/J2EE or C#/ASP.Net or
C++ websites even with similar or more traffic do not fail so often. Performance.

4) Finding solutions to problems online: Since Java has been in use for so long, problem you are facing today, chance are someone else faced it before and solved it and documented the solution.

5) Technologies are designed with Java/.Net in mind: Certain technologies do not have any RoR support. Many technologies are building support for RoR currently thus not everything out there is as reliable.

6) With all its disadvantages, RoR has its advantage, speed of development. For small changes no builds required, no server restarts required. Plus all that magic that Rails provides, it does help to improve the speed.

7) RoR is fairly easy to master and start working on.

8) The console of RoR helps you debug so many issues so quickly and effeciently.

With that comparison, i am very confused what technology i want to go with. I am working on product and it is taking lot of my time to refine and refine. Plus my job is becoming much more demanding. So i am seeking help of a strong technical guy. But i want to be part of technology as well so i will be choosing from either of the two languages. I need to decide which one and will look out for the technology partner in that field. I would also love to talk to people who are expert in both and have a very good Web 2.0 experience. People please be free to contact me incase you are strong in these fields and interested in a start up life and want to start something from scratch. Incase you are based in Los Angeles or in vicinity, even better.

Regarding DB, i think to begin with i will need to go with MySql for the time being but i might opt for Oracle eventually. Oracle is so smooth and so reliable. There is no confusion other than price.

I think in the long run Java + oracle is a very deadly combination but to begin with and to give the company a standing, Ruby with MySql might not be a bad idea either. People please try to convince me otherwise.
Follow starttowonder on Twitter