Re: Tales from the Dark Side

"Andrus Adamchik" <[email protected]>
Newsgroups gmane.comp.web.webobjects.devel
Message-ID <[email protected]>
This requires a mandatory Cayenne/Click plug. No SOB's, just the code that
works ;-)

BTW, for those who couldn't use Cayenne for political reasons - we just
entered Apache incubator. Maybe that'll help you to pursuade your boss.

Andrus


> I admit it - I have a little play with Ruby On Rails every now and then -
> great for knocking up quick admin apps. Anyway, this post appeared on the
> RoR mailing list from an ex-WO developer. I thought it made interesting
> reading, moreso from the point that the fabled Hibernate/Tapestry route to
> open source nirvana is not as rosy as it seems....
>
> Enjoy,
> Geoff
>
> ---------- Forwarded message ----------
> From: Michael Engelhart <[email protected]>
> Date: 15-Mar-2006 18:20
> Subject: Re: [Rails] [ANN] Gusto.com Rails Site
> To: [email protected]
>
> Hi NIck -
>
> Sure I would.
>
> Essentially we had been actively designing the back end database for this
> application which BTW, also includes a full-blown content management
> system
> that controls all aspects of the front facing gusto.com website.   We had
> a
> very large model (100+ tables) built up to support the business goals and
> had started prototyping the web application using Hibernate + Tapestry .
> I
> arrived at Hibernate + Tapestry from a desire to develop something that
> was
> "like" WebObjects because at the time there was a lot of uncertainty
> around
> the fate of WebObjects and I was also concerned that the community was so
> small I felt it would be hard to find skilled developers as we grew.
> WebObjects, in my opinion is the best Java based tool for building
> database
> driven sites but I couldn't risk using it since it was very poorly
> supported
> by Apple at the time.    So after a pretty good amount of research  I
> arrived at Tapestry + Hibernate being that me and my team were all Java
> developers for the last 5+ years.
>
> Tapestry is a very complex MVC framework that had some points that were
> similar to WebObjects but it also had all sorts of bizarre baggage like
> the
> "rewind" cycle that quickly became unacceptable to have to code around.
> Also in Tapestry the push is to make everything a component and most of
> the
> time, we weren't getting any reuse out of the components we were writing
> and
> had the added complexity of having to write and wire up a component which
> weren't trivial to code in most cases.   Also the much touted feature
> about
> Tapestry that your  designers have the ability to preview your templates
> in
> the browser without having to run the application also quickly became a
> farce due to the fact that to make the design work you needed to have a
> "fake data" in there.  I mean you can't design a page that requires a <ul>
> and yet have no list items so essentially you end up creating all this
> yucky
> fake template to be able to preview and in the end we ended up mocking
> things up in static HTML and moving it back into the Tapestry templates.
>
> As for HIbernate, well that was just a plain bad decision.    Hibernate
> while it does do lots of things and maybe is important if you have a
> legacy
> database that you need to code against, is also a very complex framework
> with which to code your application.   All of the developers on my team
> were
> very skilled programmers but everyone agreed Hibernate was not fun at all
> to
> work with.     Having to write a ServletFilter to close a database
> connection on the fly because otherwise Hibernate would throw
> LazyLoadExceptions was a constant annoyance.  The other thing I found
> irritating about Hibernate was the community.   Time after time when
> researching something in the forums I came to the conclusion that core
> developers were the most arrogant SOB's I'd ever come across.  It's one
> thing to be frustrated with newbies of which there were a lot, but to have
> many many threads that devolved into name calling by a committer was just
> absurd.
>
>
> So after 4-5 months of this, Ruby on Rails came to my attention as the
> news
> surrounding it increased.   I had been a big fan of Python and used it
> extensively when writing data mining code so I wasn't a stranger to
> scripting languages although at the time  I hadn't written any ruby code
> other then hello world a few years ago.
> But after seeing the video, I was tempted to download the framework and
> test
> it out.  It was clear pretty quickly that the framework had a lot of
> potential but I wasn't sure how to go about things so I put in front of my
> team an option to take 2 weeks off from further Java development to
> attempt
> a port of our 25,000 lines of code to Rails and to see how far we got for
> one and to also assess the flexibility and productivity increase if any.
> Keep in mind that none of us had every coded any Ruby.   We armed
> ourselves
> with copies of the PickAxe book, Agile Development with Rails and jumped
> in.
> The first decision made was to adhere to the naming conventions instead of
> trying to force our singluar based model and do all the rails
> workarounds.    That was one of the best decisions we made.   By writing
> some scripts against the schema it took about 2 days to modify the schema
> via a bunch of SQL scripts to support the Rails naming conventions.
> Once
> that was done, we quickly ported a huge section of the website in the
> first
> 2 weeks.   In all it took probably 4 weeks to port both the user site and
> the CMS back office application to Rails and it was all done with smiles
> on
> our faces.    No more Eclipse, no more XDoclet delays when making simple
> changes to a database table.     By the end of the port we had
> significantly
> improved the application while at the same time dropping roughly 15,000
> lines of code from the system which lowered the complexity of our
> application significantly.
>
> At the end of the day, the risk that we took has paid off in spades.  My
> team is happy at work every day and we are pumping out more code and
> features then I ever could have imagined was possible with such a small
> team.
>
> I think a lot of people worry about performance as did I.   Until we
> launched I was nervous about how this was going to scale but now I feel
> like
> it's going to scale very well and easily.   As has been said, the LAMP
> issue
> has been solved and with the application of a memcached our site was hit
> with Siege with 50 simultaneous requests and was delivering the hugely
> database centric pages in under 1 second all from one server.  But under a
> more realistic heavy load situation of 5 simultaneuous users we are seeing
> 200-300 ms response times.
>
>
> Thanks again to this great community for making development fun again!
> :-)
>
> Michael Engelhart
> CTO- Gusto.com
>
> On 3/15/06, Nick Sieger <[email protected]> wrote:
>>
>>
>> On 3/14/06, Michael Engelhart < [email protected]> wrote:
>> >
>> > Hello -
>> >
>> > I wanted to announce a very large  web application that was built with
>> > Ruby on Rails and runs the site Gusto! http://www.gusto.com/ .   It
>> was
>> > deployed yesterday in a little over 4 months of development with 3
>> > developers.   The origins of the site were being developed in Java
>> using
>> > Hibernate + Tapestry and the decision was made to port the 100+ table
>> model
>> > to Rails to see if there were improvements in productivity and job
>> > satisfaction.
>> >
>>
>> Mike, would you be able to share some details of the decision-making
>> process around moving away from Java+Tapestry+Hibernate over to Rails?
>> We're all looking for good case studies and stories that will help us
>> sell
>> Ruby and Rails into existing Java shops.
>>
>> Cheers,
>> /Nick
>>
>>
>>
>> _______________________________________________
>> Rails mailing list
>> [email protected]
>> http://lists.rubyonrails.org/mailman/listinfo/rails
>>
>>
>>
>
> _______________________________________________
> Rails mailing list
> [email protected]
> http://lists.rubyonrails.org/mailman/listinfo/rails
> _______________________________________________
> WebObjects-dev mailing list
> [email protected]
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.