Yesterday I saw a news item go past on Twitter. The item in questions was by a digital agency called Sequence whom implement the Alterian CMS. Their news item originally make the ludicrous claim that they had released the first CMS that supports the Welsh language.

I was actually alerted to this by a Twitter post which translates as 'First Welsh CMS? A complete lie (see joomla / wordpress / plone / sharepoint)'. I contacted Sequence and pointed out to them that they are nearly three years behind Plone (other systems may have been before then even), as Russ Ferriday of Topia demonstrated the Welsh translation of Plone back in 2006. And Plone has been shipping with a Welsh translation out of the box ever since.

Sequence then issued an apology and revised their news item (you see the revised one in the link above). Their apology is that the word 'Enterprise' was edited out of their news item.

This still leaves the claim:

"Sequence have made available what is believed to be the first enterprise CMS (content management system) available in the Welsh language, creating a unique 'back-end' technology system in Wales' national language."

So I guess that leaves the questions as to is Plone an 'Enterprise' CMS? I've always thought the word 'enterprise' to be a particularly nebulous term and originated as a term for commercial vendors to add a few extra zeros to the price tag of whatever they were selling.

Whatever the definition, I'm sure the likes of Novell, Akamai, Belron, Konica, Uniq, Honda and many others might fit it.

I've just read an interesting article over at CMS Watch by one of their Analysts, Adriaan Bloem, entitled Open Source: It's Just a License.

In it Adriaan discusses TCO costs for Open Source vs. Commercial and mentions that there are a lot of gray areas between Open Source and Closed Source systems. In the end he sums it up pretty well with a great piece of advice:

"There's only one thing you can generalize: open source is a specific kind of license. And discussions about which license is better are rather academic. What you'd want to decide on is what your software should do, if and how you want to customize it, and how easy it is to get support when you need it. That means doing your homework, and finding out the real story: you'll certainly want to know what's behind the facade. And that's something that applies to software under any license."

I'd like to actually take this even further, as there is a point further up the article in which he talks about costs with some example numbers:

"Get out your calculator and tell me this: what's more expensive over the course of three years. Software that's $30K up front, with a 15% annual maintenance and support fee; or software that's "free," but with $15K a year in "gold support"? Or, if you're planning on doing it yourself, one FTE?"

You could pretty much pick any numbers out of the air to make this argument and you could make it go either way pretty easily. However it misses a pretty big point for Open Source, and that is control.

Those costs above are a pretty small part of the equation if we are talking about Enterprise-level content management systems. And indeed its a point Adriaan makes:

"It's just an example, but you get the point -- it's very hard to do an enterprise implementation cheap, whichever way you turn it."

Anyone who has done any kind of CMS deployment in a large organisation know that the CMS they procure 'out of the box' is only going to be about 20% of the way towards their end goal. The rest is going to be customisation towards their specific business requirements, processes, branding, etc; and working out what they actually want to do. The key point is how easily does the CMS that you procure allow you to customise it to get the remaining 80% done?

With Open Source you get the choice of how you want to spend your budget. Make no mistake, you are still going to have to spend some money (see above, you have 80% still to do) but you get the flexibility to spend it how you want and when you want. You could start off with installing and evaluating an Open Source CMS with very little initial outlay. Then, as you build the system up and start to implement your requirements, you have the choice of how to do it: you can do it with internal development resources or you can hire in external help (or contract the development out). You can do it with a mix of these at different points in your project as you deem fit.

Furthermore with Community Open Source (as opposed to 'Commercial Open Source' in which, usually, a single vendor produces a system then open sources it) you have a choice of development partner. This is a pretty critical point. You can choose if you want a small local one-man-band with lower costs, or a large consulting company with full-on project management and offices around the globe. You get to pick what fits best in with your organisation... and even better... you are not locked in to them! Should for whatever reason you need to move development partner, then you can pick another one. Each of these companies will (should) have equal access to the core development of the system you have chosen and be able to make changes and fixes on your behalf. With closed source systems you might have a choice of VAR/Integrator/Developer, but in most cases these companies will still be one step removed from the software and have to go via the original software vendor to make any changes.

You also have lower risk with Community Open Source systems. There is no one central company that could go bust or be bought out by another vendor and end your CMS. Just look at the number of vendors acquiring other vendors in the commercial CMS space (there has been quite a flurry recently). These acquisitions are often to bolster an area of the portfolio that the vendor is weak in, but as a side effect they often acquire pieces that are superfluous to their current offerings and may be dropped. And when they are you are in trouble. The same risk is also present with 'Commercial Open Source' too if Alfresco, Hippo or Magnolia went bust then whilst their code might be Open Source, you have just lost the single dominant force in the development and may also have lost support, mailing lists, bug trackers, etc with them too.

So back to Adriaan's advice: "What you'd want to decide on is what your software should do, if and how you want to customize it, and how easy it is to get support when you need it." Do your homework, look at the different systems out there and make an informed choice. Just make sure that whatever system you choose gives you the flexibility and security that you know that you will be able to make the changes you need not only now, but three years down the line when you inevitably procure that new sparkly CRM/ERP/HR system. ;)

Last week Netsight were at the Europython 2009 conference in Birmingham, UK. The main reason we were there was to learn about all the cool stuff happening now in the Python world, but we also wanted to promote Plone as well.

The Plone Stand

To be honest it was a fairly last minute decision as we have just been so busy at Netsight in the past couple of months with client work. Also most of the Netsight team going (Matt, Daniel, Adam, Scott and honorary Netsight member, Dan F) are mainly Python and Zope developers, not really Plone developers. That said, as I've said before, nowadays you don't need to know that much Plone-specific knowledge to be useful in a Plone context, as much of it now is straight forward python development.

The Europython team graciously gave the Plone Foundation a space to have a stand at the conference free of charge. We just needed to bring the materials with us. I wasn't organised enough in time to get any of the bulk order of Plone stickers the foundation had printed up sent over, or get any more printed up locally. We were also traveling by train to Birmingham so didn't want to take too much stuff with us. We mainly took our large vertical Plone banner, a stack of Plone bags, some of the 'Top 15 Questions About Plone' leaflets and some of our Plone brochures with us.

Matt in front of the Plone stand

It was actually quite a different feel, as most of the marketing material we've been creating at Netsight for advocating Plone has been aimed at expos such as Internet World, and IMS in which we are competing against a lot of commercial players. As such much of our material was 'preaching to the converted' in terms of 'What is Open Source?' and the likes. For developers at a conference like this I think we really just needed lots of cool schwag to give away. Items like the Six Feet Up Plone bottle openers or t-shirts would have gone down well.

A few people came up to the stand to come talk to us to find out about Plone, and see what it is up to these days, though we didn't get as many as I was expecting. I think most people either 1) know about it 2) think they already know about it ;) or 3) don't care as they use X instead and why would they want to learn about other systems.

There were some other Plone development companies and individuals there, and we had a great Thai dinner one evening with Martijn and Roel from Four Digits and Laurence Rowe from Jarn. We also bumped into quite a few of the usual faces from the Plone and Zope world: Aiste Kesminaite (POV), Kit Blake (Infrae), Martijn Faassen (Startifact), Christian Theune (Gocept), Chris Withers (Simplistix), Christian Scholtz (COM.lounge), Charlie Clark (eGenix).

Next year I want to try an arrange a bigger Plone presence at Europython, as there were actually no talks on Plone at Europython at all this year (versus about 13 that mention Django in their abstract). I especially think a 'State of Plone' talk (like the ones done by Geir Baekholt and Alex Limi at the European and US Plone symposiums) would be a good idea. A tutorial on doing simple pythonic things in Plone such as creating a viewlet in Plone using Grok would be a great way to show the rest of the python community how easy it can be to get involved in Plone these days.

There have also been a great number of tools that have come out of the Zope world, and used extensively by Plone. The most immediately obvious one is buildout, which I think would be a great tool for with wider python community, but most other projects haven't come across it yet. Martijn Faassen did a great talk on 'Things that I helped Create' which was a journey through his life creating things starting as a kid. It was a fantastic insight into the creative process. Alas he ran out of time before he got onto the more recent items, in which he was going to be talking about some of these tools. One of the Four Digits guys was due to do a Lightning Talk too on Plone, but again time ran out before he had his chance.

-Matt

Photo credits: SafPlusPlus and MrTopf

I'm just on the way home now from Europython 2009 along with some of the rest of the Netsight team. The conference has been massively inspiring, with nearly 100 talks over the three main conference days. A massive thanks to the organising team, who did a great job of both the logistics and social side of the conference, and of course to all the speakers.

Conference Attendees

I did two talks this year, one a case study on a project we are currently working on using WSGI and Deliverance to skin a legacy .NET portal entitled Lipstick on a Pig. The second was an attempt to try and show how you can use some of the technology used by Zope outside of Zope: in this case a beginners' talk on Zope Page Templates. When I submitted the talk for the Zope page templates, the response from the talks team was 'Great! Finally a Zope talk!' as they hadn't had any yet. Ironically my talk was actually about using Zope stuff *outside* of Zope. I put a call out on twitter urging some more people to submit Zope/Plone talks, but alas it seems not many were forthcoming.

When I first attended Europython back in 2004, before any of the other frameworks existed, there was actually a dedicated Zope track at the conference, and there were a load of Zope and Plone talks there. It was actually a bit of an odd feeling, as you had a very distinct split in the conference attendees: those (mainly academics) that did hardcore stuff writing python compilers and simulated particle physics; and those people out in 'the commercial world' developing web apps with python in Zope and developing Plone, Silva, etc.

There was certainly a feeling that those doing Zope work were 'outside' the rest of the python community to a certain degree. This was mainly due to Zope being a trailblazer in terms of what it was doing and hence having to develop quite a lot of its own libraries and practises. Examples of this are libraries such as the DateTime library that Zope had before python had anything similar. I guess in just 'getting things done' some of Zope was maybe not quite as pure as python academics might have wanted, and Zope was a fairly monolithic system with little practical chance for its code to be used outside of Zope.

As a side note: in one of the keynotes this year Sir Tony Hoare talked about the differences between Scientists and Engineers. The former chasing absolute perfection, validation and proof in an ideal world; the latter concerned with an imperfect world and doing only exactly what is necessary to achieve the specification. This ties in with my feelings above, and it could be said that at that time the Zope people were the engineers and the rest of the python academic community the scientists. But times have moved on.

A year or so later the 'Zope track' became the 'web framework track' and Django, turbogears, pylons, etc joined in. This year the talks were completely mixed up together with commercial and scientific talks interspersed. This gave the event a much more coherent feel, and has to me been the best, most friendly, most inclusive Europython I've been to. Steve Holden, Chairman of the PSF, said that in his after dinner speech: Python really is about the people. Bruce Eckel had similar feelings in his keynote when he said after a stressful flight and journey to get here he walked into the conference and immediately relaxed with a sigh saying 'Ahhh... python people'.

I really agree with them and I think that python really is a very friendly environment to work in, both the language itself and the amazing community around it.

That said, we have a problem...

Looking at the talk abstracts for Europython there are 97 talks listed. How talks have the word Plone in the abstract? Zero. How about Grok? Zero. Repoze? Zero. Zope? One. That's my talk I did on using Zope Page Templates outside Zope. Silva? Two.

C'mon people, this is shocking! Zope and related projects and technologies have nearly completely dropped off the radar at this conference.

How many talk abstracts mention Django? Thirteen. Turbogears? Two. Pylons? Three.

Today Zope is a very different thing to what it was back then, with the entire Zope 2 application server being eggified and easy_install'able. The Zope Toolkit (previously known as Zope 3) also a collection of independently usable eggs. Technologies such as the ZODB, Page Templates, and Component Architecture are all usable outside of Zope and can be used in general python work. Projects such as Repoze are splitting things up further and allowing Zope to be used in a WSGI stack and re-using parts of the Zope Toolkit to produce repoze.bfg a lighter weight framework. We have zc.buildout which is an amazing tool for deployment of not just Zope projects, not just python projects, but pretty much anything. Grok, a layer on top of the Zope Toolkit provides a very rapid 'convention rather than configuration' approach to MVC web development, much like Rails does for Ruby.

But... I don't think the rest of the python community have quite got this yet. Maybe they still see Zope as 'that strange beast from years back', maybe the Zope community concentrates its resources on speaking at other events, e.g. Plone has not only its annual conference this year in Budapest (which has the same order of magnitude of attendees as Europython, but exclusively focussed on Plone) but additionally both a European Symposium and and US Symposium. That is a lot of time people will be spending traveling and attending and talking at events, but I think we really do need to get some more visible presence at wider python community events. We need to make sure the rest of the Python community see all the fantastic code and products that have come out of the Zope world.

There was a great talk by Martijn Faassen on 'Things I Helped Create' which was a breakneck speed journey through his experience in creativity in general from a small kid to where he is now. Unfortunately he ran out of time before he got really stuck in to all the Zope stuff he has done. It was still a massively enlightening talk. Christian Theune did a tutorial (alas I didn't make the tutorials) on using the ZODB for persisting objects, which would have also made a great talk (or at least lightning talk).

So this is a call to action. Next year Europython will be back again in the UK, and run to the same fantastic standard it was this year. And I want to make sure that there are more Zope/Plone/Grok/etc talks. Specifically I will be banging the drum come next year and really pushing people to do talks.

I'm even going to go out on a limb here and propose a starter list of talks:

  • Using the ZODB to Persist Objects
  • Using buildout to deploy stuff
  • The state of Plone
  • Introduction to Zope Component Architecture
  • Building a Grok app in 15 minutes.

If you want to find out more about what has been going on at the conference, Reinout van Rees has been doing an excellent job liveblogging the conference.