

Ask HN: For new web developer, Java Spring, Ruby on Rails, or something else? - shpen

So I wanted to finally take action on some of my ideas and build the website for one of them. I decided to use Heroku since I've heard great things about it. I like how it handles all of the server management and allows me to just code. Being an experienced Java guy, I decided to build from their Spring sample app. Unfortunately, this was pretty tricky. Having never used Spring, I started searching online for tutorials. Most of them are either outdated or are too confusing. Despite that, I was able to hack up a little something, but at this point, I'm not sure if I should keep going with Spring. I know some Ruby, and can definitely brush up on it if Rails is the way to go, but I've heard many people complain about performance and scalability on Rails.<p>So my question is this: Should I continue with Spring, or switch to RoR or some other web framework?
======
why-el
Unless you think you will face scale issues comparable to those of Twitter or
Github, I am not sure whats stopping you from using Rails. In fact, the amount
of information about how to scale Rails (The latest I have read is from the
guys at Goodfil.ms) makes your task ahead almost trivial.

Having said all this, I worked professionally with Spring and I do personal
stuff with Rails, and Rails is a lot more fun.

------
e12e
You don't really specify what you want to achieve -- a "website" can be many
things. If you know a little Ruby and like working with it, I don't see why
you wouldn't go with RoR.

If you want to stay a little closer to Java, you might want to check out
Grails:

    
    
      http://www.grails.org/
      https://devcenter.heroku.com/articles/grails
    

If you're actually just writing a website, not a web app (however that
distinction is made these days), something like Ruby and Sinatra might be a
better fit:

    
    
      http://www.sinatrarb.com/
      https://devcenter.heroku.com/articles/rack
    

And if you want something completely different, you might have a look at
web2py (on Heroku you would have to deploy that as a python wsgi app).

And while I think Heroku looks fantastic, I'm personally leaning towards
<http://appfog.com/> for the projects I plan to be toying with "in the cloud"
-- I feel their pricing model (especially their "free" tier) makes more sense.
But you should of course choose what is a good fit for your needs.

------
spartango
If you're really comfortable with Java, and you want to get something out of
the door, it may not be the best choice to switch languages (as would be the
case for rails). If you already know ruby, then go rails by all means.

Instead, you might consider a of Java-rooted option:

The play framework is pretty slick (<http://www.playframework.org>). The APIs
are fairly light and easy to pick up, and the templating system is rather
powerful. The documentation is solid, and it's not like you'll need to spend
hours in tutorials to get started Play does both Java and Scala, and works
fine with either. I'd actually recommend you stick to Play 1.x, as the 2.x
docs and stuff aren't as mature and are much more targeted to Scala
developers.

Oh, and heroku loves play. <https://devcenter.heroku.com/articles/play>

------
lumberjack
I was a Java guy too just prior to going into web development and
coincidentally I too encountered the same problem as you did.

I tried Django and quite a few Java frameworks but ultimately settled on using
node.js because I found it to be the lowest point of entry by far.

------
lanna
Have a look at Play! and Scala: <http://www.jamesward.com/category/play-
framework/>

------
logn
Spring and Java EE will make you hate life and those who participate in it.
Java alone is a great language, and I've heard great things about Wicket,
<http://en.wikipedia.org/wiki/Apache_Wicket> . I personally like GWT but no
one seems to use it and even less seem to use it professionally.

------
based2
[http://tapestry.1045711.n5.nabble.com/Re-hosting-
td5032356.h...](http://tapestry.1045711.n5.nabble.com/Re-hosting-
td5032356.html#a5474859)

[http://tapestry.1045711.n5.nabble.com/Retreieving-
specific-b...](http://tapestry.1045711.n5.nabble.com/Retreieving-specific-
blog-td5716268.html)

------
jkrishna
I too have exactly the same situtation. I haven't decided, but moving towards
RoR. Comparing to node.js RoR is kind of stable to me. In node.js, still there
are lot of changes and it hasn't hit 1.0. I am planning to go with client
heavy using Angular.js and backend with RoR. I am also starting with mobile
first.

------
gildean
Despite the hate that this comment is sure to ensue: Why not node.js?

~~~
shpen
I know very little Javascript, and from my attempts to code a bit of it, I
wasn't too pleased. Maybe I just didn't understand it very well, and that put
me off.

------
meric
Since you're starting out I recommend something that is newer than Spring but
still old enough to have plenty of documentation online. Rails would be
suitable.

