views:

421

answers:

2

Greetings, everyone. I consider myself to be an intermediate developer, but, to be candid, probably closer to novice than expert. In any case, I have more experience with C# and the .NET platform, but my current job has me working almost exclusively with Java. This in itself is sort of a problem, but I'm dealing with it fine and I'm not really in a position to change my role at the moment.

On the side, I am starting to work on a highly interactive, database-driven web project. I'm doing it because I feel that it's a great idea and I know that the experience of doing something like this from scratch will help me immensely.

I initially wanted to go with ASP.NET MVC and I am still leaning that direction. I'm not even sure why, but I love the community behind it and, in my opinion, Visual Studio is the best IDE around. However, doing that would be counter-productive to my current job. That brought me to Grails. Even though I realize that Groovy is not Java, it seems to be similar enough (not to mention that it runs on the JVM) that the skills I learn should still help me at my current job. The more I looked into Grails, the more I loved it, especially after having to deal with what I consider to be an extremely complex J2EE environment at work.

But with the good I found the bad. I can't help but notice that there are a lot of developers who are irritated with the amount of bugs in Grails. Being that I am starting a new project and I am fairly inexperienced, do I even want to consider Grails? Is it a liability? And what's the consensus about its longevity? I would really hate to get too involved if there is a good chance of it fading into obscurity within the next few years. And even if the bugs and longevity issues aren't a huge deal, how would you compare the ease of development of Grails with that of ASP.NET MVC? I realize this last part is highly subjective. But for the sake of comparison, let's say that someone with virtually no technical background were in the same position. Would you recommend they take a look at ASP.NET MVC or Grails?

Thanks so much. If anything needs clarified or reworded, please let me know. I sincerely hope I'm not opening a can of worms...

A: 

This is something that's been pretty much asked before here...

http://74.125.155.132/search?q=cache%3ABpGj8RtSUIsJ%3Astackoverflow.com/questions/1283935/what-technology-asp-php-joomla-rails-grails-for-a-website-from-scratch+Which+technology+to+choose+%28ASP.net+or+Grails%29&cd=1&hl=en&ct=clnk&gl=us&client=firefox-a

Good Luck though!

Mark Iliffe
I did read that thread before posting this. While the question is similar, its scope is much larger and I really want some insight on my specific questions. I do appreciate your response and encouragement, though!
grt3kl
A: 

Hi,

I am the author of this question and I can give you some shares on my own experience.

As it is stated in the question, I had no real preferences and I was opened to any technology/platform that could fulfill my requirements. After many tries of different technologies (at leats few days with PHP, Rails, ASP and Grails) and some answers from StackOverflow, I ended up with the same dilemma as yours : Grails or ASP.NET MVC ?

And I chose Grails. Why? Because of GORM. Almost only because of GORM. This is fantastic to deal only with your domain classes and have your DB schema automatically generated/updated. Of course, it has its limits but this is so powerful for querying and maintening your DB. You do not write SQL anymore and it is very easy to learn.

Now here is my 2-cents comparison of the 2 technologies:

GRAILS STRENGTHS

  1. GORM (see above)

  2. Complete Web Stack Framework : you can generate a website in minutes and everything is already configured

  3. A lot to learn : You have Spring MVC, Hibernate, Sitemesh, Java, JEE, Groovy...Once you have mastered Grails you can add an additional page into your resume

  4. Java world. Whatever you need, if it already exist in Java, you can use it.

  5. Groovy : I really like this programming language. It takes time to get familiar but once done, you will love it.

GRAILS WEAKNESSES

  1. Memory usage. Grails/groovy is greedy for memory and it might cost more than ASP for Web Hosting

  2. Grails bugs : there are some and when you start a new project on a new technology, you assume that most of the problems come from you...until you find out (after 1 or 2 days) that it is a Grails bug. So my advice is to proceed by steps : test as soon as possible and don't try to twist the framework. It is rough on the edge so go after what is generally recommended. However, after 2 months, I do not encounter big problems anymore.

  3. Debugging : due to the multiple layers of frameworks, errors are generally hidden inside tons of exception lines. Also, the only decent IDE debugger is IntelliJ but this is not as easy to debug as .NET under VS

ASP.NET MVC STRENGTHS

  1. The community : it's HUGE ! First it is supported by Microsoft and secondly 30% of the websites out there are built in ASP.NET. You can find any snippets of code, any widgets, any AJAX components, any CMS...Grails community is very active but can you rival against millions ?

  2. Visual Studio : I definitely agree with you : there is no better IDE. IntelliJ is very good for Grails but having using both, I prefered VS

ASP.NET MVC WEAKNESSES

  1. The youthness of ASP.NET : this is a young framework. Built on a stable technology but young enough (less than 2 years) to have also some bugs/some bad practices. Indeed, the next version of ASP.NET MVC is strongly awaited by the community.

  2. Microsoft : even if ASP.NET MVC is open-source, you are totally dependent on their decisions (and prices).

The Bottom Line If you project has tight deadline and if it is crucial for you to succeed, then go for ASP (according to your background). Otherwise, give a try to Grails..don't worry, you will also succeed but it will take more time. I am also deeply convinced that Grails has just started its long journey and it has a great future (see google trends)

Update by Dmitriy: If your refer to Google Trends you have to compare the 2 of them Groovy Grails and ASP.NET MVC.

Good luck

fabien7474
I have updated the answer to include Grail AND ASP.NET MVC into the Google Trends. It would be just a bit more fair.
Dmytrii Nagirniak
Dmitriy - Thanks so much for your detailed answer! That is exactly what I was looking for. I really think that this is an example of what sets SO apart from any other forum out there.I do intend to play around with both Grails and ASP.NET MVC before picking one or the other. I've done a little in each and hope to make a decision in the next week or so.I will wait a few days to choose an answer, in hopes to get some more insight from others. Thanks again!
grt3kl
Oh and is the memory issue in Grails a huge concern? This is actually the first I've heard about that. Also, I seem to have it in my head that ASP.NET MVC will just have less hurdles and things will happen more seamlessly. For a large, scalable application, is that even true? Are there just as many hurdles on both sides? Sometimes I wonder if my bias towards .NET is warranted or if I'm basing it on things that might not even be true.And correct me if I'm wrong, but would this perhaps be the fairest way to compare them in Google Trends?http://www.google.com/trends?q=grails,asp.net+mvc
grt3kl
My mistake. My questions were directed at fabien7474, the author of this answer. I haven't got around to doing much in ASP.NET MVC but I have been following IBM's Mastering Grails series, which, although a little outdated, seems to be extremely helpful!http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=mastering+grails
grt3kl
@grt3kl. Both technologies APS.NET MVC and Grails seem to have a growing community according to their respective google trends. But comparing both on the same graph will give you rather a flat slope for grails since ASP is far more popular.
fabien7474
BTW, the StackOverflow website is a proof that you can build a large and scalable app with ASP.NET MVC
fabien7474