I am working on a website called FoxSaver.com
http://www.foxsaver.com, and I would like to be added to Powered By
Play! page.
Basically it turns user-recommend pictures into Media RSS feeds,
consumed by any RSS reader, and a FireFox plugin.
Previously I started with Ruby on Rails, and get it up and running
fairly quickly.
But after a while, the problems comes. Ruby is slow. I tried all kinds
of ways to speed it up. But being on a virtual private server, the
memory usage also kills. I can only have 2 ruby processes, and they
have memory leaks. I need to use God(a ruby program) to restart the 2
rails processes now and then. Also tried jruby(which every release
always has hundreds percent of performance improvement), also slow as
hell.
Another problem is that, as time goes by, I kind of forgot what are
the tricks I did in the code. And the task to maintain, with all the
miscellaneous customized packages, it's just simply confusing.
Installations on testing/dev machines are a struggle. And I am afraid
of upgrading also. Ruby 1.9 maybe faster, but it can not run my
current code.
I switched to Play! seamlessly. Nobody even notice it(unless some
exception happens). Play! is as simple as Ruby on Rails, and Django
(And better keep it simple.)
Performance is much better. It runs smoothly, the CPU usually stays
around 3~5 percent, and I no longer have the 2 concurrent requests
limit.
With Java, the code is easier to maintain also. Code Refactoring with
Eclipse is soooo easy. And Java can be concise too. Well, not that
concise as Ruby, but we can continuously refactor the code.
And it's so fun to have robust exception handling, robust memory
management, and native threads.
The down side of java I encountered is the cumbersome handling of JSON
and YAML files. Most of the packages tries to be smart and marshal
json/yaml to and from objects. I struggled with all kinds of json/yaml
packages. I learned that keeping things as maps simplifies everything.
A side note is the JPA/Hibernate ORM, I avoid it and used iBatis. Play
has been flexible to use any ORM tool, which is great!
Play! framework developers have been very helpful and knowledgeable,
and resolve issues quickly. Thanks!