What Plone can learn from Rails

Authors: Andy McKay
Date: October 2007
Email:amckay@bluefountain.com
Copyright: Blue Fountain

Rails and Plone are not the same thing

Rails is for pretty simple sites

Focuses on little site re-use

Comparing apples and oranges

img/826864344_02c7017ca6_b.jpg

Easy to be envious of Rails

Went from nowhere to huge quickly

Why?

Just hype and marketing?

Yes a bit

Really hit a new audience

Compare to...

...Java struts, ASP, PHP

I believe it has...

A shallow learning curve

Zope has the famous Z shaped learning curve

So what can Plone learn?

Keep the learning curve shallow

1 Product refresh is damn helpful

Yes it's a hack, but new developers use it

Fiddle, refresh, fiddle, refresh

Can we find a way around problems for example

Refresh only views, or skins or zcml?

Not everything in Rails can be refreshed

But enough

2 New terms are confusing

Viewlets, portlets, zcml, oh my

I don’t know what a portlet is. Or a component, module, block, or snippet. The last system I evaluated had something called "mambots" which, to me, sounded like robotic assistance for breast-feeding.

http://adaptivepath.com/ideas/essays/archives/000365.php


New acronym or name is a barrier

img/1125677281_68c20249fe_o.jpg

A view in Plone is similar to a view in Django, but...

...a view in Rails is completely different

Can't win

3 Every new technology introduced is a barrier

Some things like Page Templates rock, glad they got invented

In rails you write .rxml

... or .rjs, a wrapper around Ajax

I would much rather write Ajax

If it was Ajax

... a new developer could pick it up quickly

... I could write it whilst sat in hotel in Milan with no internet connection

New wrappers or new technologies

Can be more effort than they are worth

4 Zope 2 is a barrier

It's fantastic, old, quirky and wierd

Fun text on button in moodle

Use carefully -- it can make Apache/PHP crash ...[snip]

Then again... some ZMI messages

img/687140878_8db547e3b8_o.jpg

So many old ideas can get in the way

Do we need Script (Python), External Methods any more?

Do we need the ZMI?

Does it help?

5 Don't forget TTW

People love TTW, it's great

It's the ZODB persistence that sucks

Yay for generic setup

6 Trying to separate presentation is good

Writing Ruby in rHTML is hacky

Can get even uglier in helpers

7 Community is a huge difference

Hard to keep up as things grow

#rails sucks

No matter how fun Rails is I will always miss #plone

Geoff Davis

8 Avoid making Plone do everything

You can't its not possible

People get frustrated and leave trying to bend it

A ticked off developer or failed project

...can do more harm than a happy one

9 Keep unit tests easy to write

Developers will avoid writing them otherwise

I really like Rails test fixtures

10 Marketing really does help

Seen those Rails "20 minutes build a whole site" demo?

They use scaffold

It's a peice of $%&^

img/228622762_30cd2838ec_b.jpg

Should never be used in the real world

Does nothing good

Yet everyone thinks that's what rails can do

We shouldn't lie, but we can focus on...

...building an application incrementally

11 We need a 37 signals

We've got lots of cool companies

But do any have recognition outside Plone?

Conclusion

...what I'd really like to do is give a new talk...

What Rails can learn from Plone

Credits

Help:Ian Cottee, Geoff Davis