A month ago, if you would've told me that I was soon to become a raving Groovy and Grails
fanatic, I would've told you that you were crazy. I've had a passing
interest in Groovy for awhile, but not enough to really get excited. As
for Grails...well...I just lumped it in along with Trails, Sails, and all of the other Rails wannabe frameworks.
But then I sat in on Venkat's Groovy and Grails talks at the LoneStar Software Symposium. In short, I was blown away!
The first thing I learned was that Groovy had matured quite a bit
and is likely to reach 1.0 status in the very near future. This is good
news because it will help bring Groovy out of its current "toy" status
and into the proverbial "real world". Also, Venkat was able to
demonstrate some killer language features in Groovy that up until now
have been reserved for the Ruby folks.
Then in his next section, Venkat covered Grails. I sat in as a
skeptic, but walked out a believer. Grails isn't just a
Rails-wannabe...it's the real deal! While Venkat was demonstrating
Grails, I downloaded and installed Grails and followed along, building
the same example on my laptop. I was very impressed at how very
Rails-like it felt. It's not a perfect match to Rails, but it's darn
close...close enough to make me like it.
When developing in Grails, you can run your application within the
built-in Jetty server. In many ways, this is much like running a Rails
app in the built-in WebBrick server. Once you're done, Grails provides
a command that creates a good old-fashioned WAR file, suitable for
deployment in your favorite servlet container.
What's even more cool about Grails is that it has Spring and
Hibernate under the covers. But you won't need to know that unless you
want to wire dependencies into your controllers using some of Spring's
dependency injection goodness or if you want to tweak the database
Speaking of database mapping, this is one place where Grails differs
slightly from Rails. Where Rails uses ActiveRecord for domain object
persistence, Grails uses GORM.
Some folks I know are a bit put off (understandably so) by ActiveRecord
which starts with a database schema and infers a domain model. GORM, on
the other hand, takes the opposite approach, starting with domain
objects and infers a database schema. Of course, if you don't like the
inferred schema, it's Hibernate under the covers, so you're free to
tweak the mapping to your heart's (or data architect's) content.
What's more, I also learned that Oracle has put their stamp of approval on Grails. Not that it matters much to me...but a big name like Oracle legitimizes Grails a bit more.
Finally, with a fewGroovy and Grails books making their debut, now's a perfect time to plug in and learn some Groovy and Grails stuff.
You'll notice that I've added a "Groovy|Grails" category to my blog.
This is the first and only blog entry under that category for now. But
expect more stuff here as I dig into Groovy and Grails more.
posted on 2007-04-06 23:59 山风小子
阅读(509) 评论(2) 编辑 收藏
所属分类: Groovy & Grails