Forums / Developer / eZ Publish code vs Drupal code

eZ Publish code vs Drupal code

Author Message

Marko Žmak

Tuesday 01 June 2010 3:51:16 am

last few days I'm inspecting eZ vs Drupal, and since I haven't found any feature that would made one CMS better than the other, I decided to take the comparison to the code level. Since I'm using eZ for many years now I'm familiar with it's code and concepts. So I took a look at the Drupal code and I was really disappointed...

No object oriented code, no abstraction layers, no transaction safe operations, no clear coding model...

Is this Drupal code really so much behind the code of eZP, or am I missing the big picture?

Has anyone used both eZ Publish and Drupal and can give some opinion about the quality of their code?

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Christian Rößler

Tuesday 01 June 2010 4:18:23 am

you just second my opinion on drupal. I encountered the same results when i was investigating ez and drupal (and joomla, wordpress). you are not alone ;-)

EZ has by far the most advanced codebase i know of.

cheers,
chris

Hannover, Germany
eZ-Certified http://auth.ez.no/certification/verify/395613

Marko Žmak

Tuesday 01 June 2010 5:05:36 am

Yes, but the problem is that I would like an opinion from someone that is objective. Could it be that we eZ developers got so used to eZ that we don't see some big potential in Drupal code?

Christian, how much did you investigate Drupal?

What do you think of its PHP based template system?

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Bertrand Dunogier

Tuesday 01 June 2010 5:24:29 am

My opinion probably can't be considered an objective one for obvious reasons, but I'll step up anyway.

Real object oriented PHP CMS are not that common, as a matter of fact. PHP is very simple to use, and the basic tendency is to keep it that way. Large flame wars have happened on that topic :)

We at eZ believe in PHP as an industry ready language, but this comes with a price. A proper object oriented architecture (which, in my opinion, eZ Publish doesn't really have yet) takes a lot of design, and some think that PHP + OO = java.

It is a fact that procedural code is faster to execute, as it usually remains more simple. But this also comes with a price: flexibility, extendibility, testing, etc. I don't think you're missing the big picture of drupal. The choice is procedural code + PHP templates as opposed to OO code + specific templates. The later is the approach I, and hopefully a big part of our users, believe in. Regarding the PHP templates, there is something here. That topic is another flame-war one, and both approaches are valid. This is actually one area where we would like to offer more flexibility :)

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

Marko Žmak

Tuesday 01 June 2010 5:43:48 am

Thank you Bertrand, just a note about the PHP templates...

In my opinion PHP based template system leads to a lot of confusion. Yes, offering more flexibility is nice but it should have some limits. It's not only the problem of inexperienced coder to make a dumb part of PHP code, it's also about having a template system that forces you to follow the concept of the CMS you're using while you're coding.

Having a template language where you could execute any PHP command, or execute any database query can lead to a disaster.

Bertrand, have you ever seen or used Drupal's code?

P.S. I would still like to see an objective opinion.

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Bertrand Dunogier

Tuesday 01 June 2010 6:05:56 am

Yeah, I have checked the code a bit. As I've said, it's not an approach I appreciate, but it gets the job done...

Regarding the templates, don't worry, you don't have to convince me. I've been using templates in PHP programming for... yes, years. First a crappy very simple templating system back in 2000, then Smarty, and finally ezpublish templates. I still believe that despites a few very valid criticisms, they're the way to go. But we should also make it possible not to use them.

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

Marko Žmak

Tuesday 01 June 2010 6:18:21 am

Could you specify which are this "few very valid criticisms" about using templates?

--
Nothing is impossible. Not if you can imagine it!

Hubert Farnsworth

Christian Rößler

Tuesday 01 June 2010 6:27:22 am

"

Christian, how much did you investigate Drupal?

What do you think of its PHP based template system?

"

Besides drupal i also was trying out typo3light (heard of it but never used it).

I installed drupal, typolight, wordpress, joomla and tried to investigate the following things below. Then, on my dev-host, I tried to install all of the cms' mentioned and did some stuff using the all the shipped features those cms' gave me. Finally the target was to implement a given homepage with any of those cms'.

Features i investigated:

  • multilanguage capability (how is it implemented)
  • active community (its more a project feature)
  • clean documentation for users AND developers (also more a project feature)
  • dynamic / multiple content-types, extensible (not only header, intro, body; ez: contentclasses, attributes, ...)
  • design-separated storage of content (what a real CMS should do, only ez did that)
  • friendly urls, no php-getter-nightmare
  • sort of extensions to enhance the cms... somehow, whatever
  • project community-driven? charges money for something (pointing to ez since 4.3 release *flaming starts now* )
  • admininterface AND frontend-editing possible (like ez website toolbar)
  • auth-features (http, database, ldap, sso)
  • mysql, postgres, sql-server ? database-abstraction ?
  • caching, clustering, scalability ?
  • integrated searchengine, extensible via 3rd-party-stuff or extensions?
  • connectivity to the non-php-world (webservices, API, scripts, ...)

I was pretty much impressed on how good drupal behaves compared to the others - even ez. But since i am a developer and not an end user oder marketing-guy, I took a look under the hood and investigated the sourcecode, directory-structures, extension/module-directory-layout (do i find things easily?) and so on.

At this point, drupal really goes from "wow, nice stuff" to "wtf, such crap...". As mentioned by Marko, drupals code is not that shiny as its user-interface and features. Same (at some other level) goes for wordpress, joomla and co.

I believe php IS (and was born as) a template language, so why for whatever reason put a smarty-like-templating-engine around it? Saying that, i like plain php templates and enjoy any progress made by the ez team to go for it in future releases. I also like the ezcomponents effort to support php and abstracted templating languages - or your own if you want to.

Wordpress has a very intuitive user interface, as drupal and others too. Codebase is a bit more OOP-Style with classes, but seems to be a bit skiddish (not clean implemented, sometimes weired). Community is great as for drupal and typo. They are free and possible will be ever, since there isn't a company behind it.

Typo3light was a pain to install as i already felt over 3 bugs i filed the same day (try using a numeric-only-DB-password with leading zeros). After that i just played around a bit but did not even try to create some sort of mini-test-homepage with it. Can't remember what the code looked like.

Finally i made my choice and stuck with ezPublish and ezComponents. Regardless of the past developments around those products (no maintenance relases for community of ezpublish, ezcomponents developers left?).

My review of drupal ends with the following statement i saw years ago on the net:

shiny surface wins awards, real substance wins developers

Hannover, Germany
eZ-Certified http://auth.ez.no/certification/verify/395613

Bertrand Dunogier

Tuesday 01 June 2010 6:27:25 am

Well, what you'll find if you google for php templates:

  • PHP is a templating language
  • I don't wanna learn yet another language
  • templates are slow
  • There should be no logic in templates
  • ...

Validity is flexible, but you can't just ditch these. In my view, a template engine is what controls the display logic, therefore control structures etc are mandatory. It also allows for more control, but this is a topic that will never get a clear and final response :)

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

tom stovall

Tuesday 01 June 2010 7:10:50 am

I regularly theme sites in both CMS. I find some of drupal's conventions just silly.

eZPub is the Apple to Drupal's Microsoft. Drupal is bigger and has a larger install base, but eZPublish is not only more elegant, but just seems to make more sense in so many ways.

For what it's worth, The Whitehouse web team released a drupal module that lets you embed nodes, similar to ezpublish embedding. It seems to make drupal easier to deal with and more "ez"-like.

Neither is going away any time soon.

Doug Brethower

Wednesday 02 June 2010 7:39:49 am

Wordpress code was unbelievable bad on first release.

Widespread use got some good coders involved to make it useful. An advantage of open source.

Apple and eZ demonstrate the ability of focused leadership to bring artistry to technology.

Apple with devices and user interfaces, eZ with code and user interfaces.

IMHO that kind of artistry is not achieved by community or committee. It has to be somebody's "baby" to reach the level of art.

All the open source offerings will get better. They can study the artistry of eZ to enlighten their forward path ;~}

Doug Brethower
Apple Certified Technical Consultant, Southwest, MO USA
http://share.ez.no/directory/companies/lakedata.net