Login   Register  
PHP Classes
elePHPant
Icontem

Why MODX?

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us

      PHP Classes blog  >  MODX: A CMS Framework...  >  All threads  >  Why MODX?  >  (Un) Subscribe thread alerts  
Subject:Why MODX?
Summary:What's so special about MODX anyway?
Messages:18
Author:Artur Graniszewski
Date:2011-09-22 09:34:19
Update:2011-09-23 15:14:09
 
  1 - 10   11 - 18  

  11. Re: Why MODX?   Reply  
Picture of Antonio Zdilar
Antonio Zdilar
2011-09-22 19:02:53 - In reply to message 2 from Lars
1. Performance: Is MODX better optimized than other (sometimes very slow) CMS systems like Drupal or Joomla?

yes

2. Features: Why MODX does not support databases other than MySQL (like PostgreSQL or MS SQL/Oracle)? This is especially strange, because MODX uses the PDO extension. In this case PEAR's MDB2 would be wiser choice for this CMS.

It supports MS SQL.

3. Features: Does MODX provide a huge set of plugins and modules like Drupal, Wordpress or Joomla?

There are enough plugins, which really do matter, not like other systems where you have everything for everything (basically a mess)

4. Support: Does MODX have a huge community of developers ready to assist you in times of trouble?

Awesome community

5. Bussiness: How many experienced PHP developers know the MODX CMS? Small number of experienced devs = more expensive, longer development and less options to find additional, experienced MODX devs.

Not too much but it is growing. And this argument simply is not good, because if we would all reason in this way no new tools would ever emerge...

6. Bussiness: In outsourcing, how a software house can persuade its customers to use a niche CMS, when they're experienced with other, well established systems like Drupal, Joomla, or even Wordpress.

Reduction in development time, code maintance, performance, usability...

7. Bussiness: from the bussiness point of view, nobody wants to make a developer happy, the product must be created with the end user in mind (which will be using it afterwards), rather than a programmer

Modx manages to make both sides happy

Stay well (guy who developed more than 30 sites and applications using modx)

  12. Re: Why MODX?   Reply  
Picture of Thomas Heuer
Thomas Heuer
2011-09-22 19:03:01 - In reply to message 2 from Lars
1. Performance: I never worked with Joomla or Drupal, but MODx caches quite heavily, so it can be very fast, if you use the caching-features.

2. Features: The support for more database is planned for xPDO: http://www.xpdo.org/; but you may use any DB right with MODx via the PDO-constructor.

3. Features: Yes. They are called "extras", but there are not as much for Revolution as for Evolution right now. http://modx.com/extras/?product=revolution

4. Support: Yes, there is a huge and active community, where you would get help: http://forums.modx.com/

5. Bussiness: [strange question, look at the forums-member-listů]

6. Bussiness: It's not a niche CSM any more, there are even hosting-providers specialized on MODx.

7. Bussiness: "nobody wants to make a developer happy" Then your business-model is a pretty ugly. If your developers can't work, because you are just buying cheap machines, weak software and didn't even have enough desks, you will pay a lot more on the long run for fixing bugs caused by unconcentrated developers (who are busy with working around the hurdles you gave them).

MODx also isn't new. It's present since 2004 and was "born" as a fork of Etomite, which existed at least since 2003.

But in general, it seems to me that you didn't get the point: MODx Revolution is better compared to common PHP-frameworks like Symfony, ZEND or Yii then to typical CMSes like Joomla, Drupal or even Wordpress since version 3.

  13. Re: Why MODX?   Reply  
Picture of Mark Hamstra
Mark Hamstra
2011-09-22 19:05:27 - In reply to message 1 from Artur Graniszewski
You mentioned a number of good questions. Some of them were touched on in the article by Bob - but I'll see if I can add to that. I'm a freelance MODX developer, active community member and Solution Partner so I know what I'm talking about when it comes to MODX.


"1. Performance: Is MODX better optimized than other (sometimes very slow) CMS systems like Drupal or Joomla?"
Yes. Caching is built into the core, and besides being very, very, very flexible (you can identify elements that shouldn't be cached with an exclamation mark). It is very easy for extras (plugins/modules) to take advantage of the core caching as well by using the MODX API.

If the built in caching is not good enough, you can override it completely and utilize something like memcached. Granted there's not a 3 step tutorial for that, but it's all possible.

As of the upcoming 2.2 release there is also MySQL replication at the xPDO level, meaning you can use different MySQL connections / servers. More on that on the Dev blog: http://modx.com/developer/blog/2011/revolution-supports-mysql-replication-master-slave/

"2. Features: Why MODX does not support databases other than MySQL (like PostgreSQL or MS SQL/Oracle)? This is especially strange, because MODX uses the PDO extension. In this case PEAR's MDB2 would be wiser choice for this CMS."
I think the article mentions that it's for both MySQL and MSSQL/sqlsrv. As for why the decision was made to create xPDO over using another tool, have a look at this blog: http://modx.com/developer/blog/transforming-modx-oo-mvc-orm/

"3. Features: Does MODX provide a huge set of plugins and modules like Drupal, Wordpress or Joomla?"
Quantity? No.
Quality? Hell yeah.
The fact that there's tons of plugins/modules for a system does not imply they follow best practices or even work. I'm sure you've got experience with finding an addon you need and then figuring out it doesn't work on your version or hasn't been supported in years.

MODX Revolution is relatively new compared to WP/Drupal/Joomla, and comes with a certain mindset, that one tool could be used for many different functionality. So while we don't have thousands of addons, you can do 99% of what you need with the top 10 addons.

So to sum up my point here - quantity of addons does not mean if one tool is better than the other.


"4. Support: Does MODX have a huge community of developers ready to assist you in times of trouble?"
Again - quantity. The forums have roughly 36K users. Nothing compared to WP, but if there's one thing great about MODX it is its community. Even if questions get asked all the time, they take the time to help you out. There's no hating going on, everyone's friendly and nobody looks down on new users trying to figure out what works.

The #MODX hastag on Twitter is also actively monitored so that's a great way to get the right eyes to a question when needed too.

There's also direct support available for enterprises (though anyone who can afford can order it, of course) and the Solution Partners can also help.

"5. Bussiness: How many experienced PHP developers know the MODX CMS? Small number of experienced devs = more expensive, longer development and less options to find additional, experienced MODX devs."
There's definitely more demand than supply right now for MODX (back-end) developers, but the great thing is that you wouldn't need a developer for your site as long as you are comfortable with the markup language you're working with (HTML/CSS usually, though MODX doesn't limit you).
Just replace the menu you coded in HTML with the right MODX Snippet tag and you're ready to roll. Unlike systems like WordPress where you would definitely need an expert to get your custom design integrated properly.

"6. Bussiness: In outsourcing, how a software house can persuade its customers to use a niche CMS, when they're experienced with other, well established systems like Drupal, Joomla, or even Wordpress."
There's a few things you're implying here that I don't agree with.
1) MODX is a niche CMS. Revolution (2.x) has been downloaded roughly 200K times. If you were to estimate every download by an agency would be used to create say 10 sites (knowing there's individuals just installing their own site, and users that work on dozens of sites simultaneously) that would lead to an estimate of 2.000.000 sites running MODX Revolution.
It's just a guess, and there's no data available on that simply cause there is no way to for sure identify a site as running MODX. No arbitrary markup, no specific headers and you can change the location of any of the core folders. I've heard it being estimated to be in the top 10 of PHP applications being used.

2) MODX is not established. MODX has been around for around 7 years, starting out as an Etomite fork. About 4-5 years ago a complete OO rewrite started and the result, Revolution, was released in 2010. Until 2010 the main product was MODX Evolution which has seen 500.000 downloads - and that's just the 1.x releases starting in 2009, not counting the many 0.9.x releases in the years prior to that. MODX isn't known to the masses, but that doesn't mean it isn't established.

"7. Bussiness: from the bussiness point of view, nobody wants to make a developer happy, the product must be created with the end user in mind (which will be using it afterwards), rather than a programmer"
Happy developers make happy products. While the developer can be happy, they don't have to hack core code to create your carefully crafted design. Easy updates, end result exactly how you want it. Everyone's happy.

"Now, Don't get me wrong, I'm not a fan of Drupal or Joomla. Their code is sometimes very bloated, and I know what am I saying (I managed to port Drupal 7 to the C++ source code using the HipHop for PHP translator). Unfortunately your point of view reminds me some Ruby On Rails fanboys implying that "newer is better". From the bussiness point of view - MODX, just like the RoR framework, is not so special, at least not for the next few years, until it becomes well established."

See the prior points about it being established vs known to the masses. MODX runs on any host that has PHP and MySQL figured out while RoR has other demands so I don't think they could be compared like that. MODX is not

"Anyway I congratulate you on writing 700 paged book about MODX, but I disagree with all the hype presented in this article."
Have a play with it and see for yourself. Feel free to send a tweet my way @mark_hamstra if you ever get stuck or have more questions. It's not as much a hype as simply how the system works and why it makes sense to use it.

  14. Re: Why MODX?   Reply  
Picture of dc7
dc7
2011-09-22 19:05:57 - In reply to message 1 from Artur Graniszewski
http://www.trymodx.com/
MySQL: 0.1077 s, 70 request(s), PHP: 0.2497 s, total: 0.3574 s, document retrieved from database.

Looks like the logic itself could be optimized here, 70 query to build that page, I'm wondering how many would be required for more complex ones.

And yes, I know that the amount is not necessary the key concept when optimizing, but still I have trouble just to imagine the use of so many for such a basic demo page and I would need a huge encouragement to stop thinking that this would just not work this "fast" with 100k "resources".

I quote "fast" here cause I get far better (that is ~0.08s avg on a 3 year old dual core LAMP and without apc) generation time on way more complex pages with complex auths and 20k+ items in most selects on a custom build site, but it's hard to compare anything without knowing more about the server behind and the db size.

  15. Re: Why MODX?   Reply  
Picture of Jennifer Simonds
Jennifer Simonds
2011-09-22 21:16:06 - In reply to message 14 from dc7
When I tried that page it told me this:

MySQL: 0.0053 s, 70 request(s), PHP: 0.1759 s, total: 0.1811 s, document retrieved from database.

0.0053 secs isn't too shabby. I notice the page displays 37 forum messages, so that could explain the 70 DB requests. Especially since the other pages are more like this:

MySQL: 0.0009 s, 9 request(s), PHP: 0.0137 s, total: 0.0146 s, document retrieved from database.

Anyway, MODX certainly sounds intriguing. We're looking for a backend CMS solution for our ecommerce site where our freelance writers & editors write thousands of documents for sale. These documents are highly structured, so we'll have to do a significant amount of customizing of any CMS to make it work for us.

I've been really turned off by Drupal's lack of OO & the disorganized mountain of crowdsourced "documentation" you have to wade thru to try to make sense of anything. I hope we can grok MODX more easily than that.

  16. Re: Why MODX?   Reply  
Picture of Jay Gilmore
Jay Gilmore
2011-09-22 23:05:49 - In reply to message 14 from dc7
dc7

trymodx.com is not hosted by MODX, LLC it is on a very inexpensive server by a community volunteer. He is using an add-on for the commenting on his website that is likely being called uncached (which shouldn't be the case) and therefore every time the page loads it queries the db. In addition that site runs on MODX Evolution which contains our old codebase. If you look at the demo of Evo from the link you'll see it shouldn't hit the DB at all. By default it will hit the index.php and then return the cache for the resource being requested. Evo will cack out at about 5000 resources as the cache was not built to handle this.


MODX Revolution the current codebase is a fully OOP and has more robust and scalable caching built in as well as is able to take advantage of external caching such as Memcached and others. There is no resource limit in Revo and it can handle millions of requests per day, can be used across multiple servers and handles clusters. Next version of Revo will support master slave dbs and much more.

You're quite right about being skeptical based on that experience and our reason for building Revo was to have scalable, flexible, optimizable enterprise-level CM platform. I'd encourage you to take a peek if you're interested.

  17. Re: Why MODX?   Reply  
Picture of dc7
dc7
2011-09-23 15:11:38 - In reply to message 16 from Jay Gilmore
Ok then, will make sure to follow the dev now, cause being able to reuse the code and experience for all sort and size of websites is the key ;-)

  18. Re: Why MODX?   Reply  
Picture of Artur Graniszewski
Artur Graniszewski
2011-09-23 15:14:09 - In reply to message 16 from Jay Gilmore
First of all, I would like to thank you all for these answers. I feel that they are very important in understaing the pros and cons of this product.

Now, to answer your questions:
---------------------------------------------------------------------------------------------------------------------
a) I didn't tried the MODx Revolution thoroughly other than seeing the demo and downloading/peeking at the random PHP files in it's code base (and I like the phpDoc comments everywhere - this helps in various IDE applications with intellisense-like features).
---------------------------------------------------------------------------------------------------------------------
b) Sorry for misunderstanding concerning the MS SQL support, I read the basic documentation at the MODx homepage and there was no info about MS SQL.

So, as I understand, there is a plan to add support for other DB's? I looked at the xPDO documentation, especially at the XML schema files describing the various DB data types and I'm concerned about potential compatibility problems with other DB's (read the MDB2 docs about this). Is there a risk that the current API would become incompatible after those changes?
---------------------------------------------------------------------------------------------------------------------
c) Thomas Heuer: "But in general, it seems to me that you didn't get the point: MODx Revolution is better compared to common PHP-frameworks like Symfony, ZEND or Yii then to typical CMSes like Joomla, Drupal or even Wordpress since version 3.".

This is something I do not understand, usually we cannot compare the product to the existing frameworks and CMS at the same time. From my point of view CMS is sometimes created on top of the framework, but then it looses the "primal" features of the framework it is extending. So, can MODx is flexible enough to be used as the framework or not?
---------------------------------------------------------------------------------------------------------------------
d) dc7: "MySQL: 0.1077 s, 70 request(s), PHP: 0.2497 s, total: 0.3574 s, document retrieved from database."

It looks like this page was generated by the older iteration of the MODx CMS.

I wonder however, how many requests are needed in case of uncached page created by MODx Revolution. I remember that Drupal 5 (and possibly 6) performed at least 120 SQL requests just to generate the index page in typical scenarios. Of course, good caching mechanism is very important, but it would be nice to see some kind of comparison between different CMS software.
---------------------------------------------------------------------------------------------------------------------
e) As for bussiness points of view. In ideal world everyone would be happy (devs would be well paid, the source code clean and optimized and customers delighted with the created solutions). Unfortunately it's not the case in the real world. The customer want's the working solution tommorow (so there is little time to write new "extras" from the scratch), his employees must know how to use the software (from the simple markeeters to the company's webmasters), and the final cost must be low (so say "goodbye" to extra trainings on "how to use MODx instead of the old ugly Drupal").

Finally imagine a look of the face of the PHP developer during the job interview, when someone asks him: "Do you know MODx? How many MODx websites have you deployed already?". And then try to look at your boss when he's pondering, if he should risk and hire an unexperienced web developer when the answer he just heard was "No, im experienced in (Joomla|Drupal|Wordpress|etc) only";)

This is however something, which is ignored by the majority of freelancers, and non-corporate people. But trust me, in huge companies (where you can earn more) the experience with "sh*tty software" is often much more important than the expertise in other applications.
---------------------------------------------------------------------------------------------------------------------

All in all, I'm not implyng that MODx is a bad solution. I do not know it, so I will just observe it from the distance. Maybe someday I try this CMS, and who knows, It may become my favourite?

Don't get me wrong, im not trolling or flaming. During my 10 years in PHP development I stumbled upon some similar "hypes" before. For example:
* Prototype library - very popular few years ago, now it's in the shadow of more lightweight jQuery library.
* CakePHP framework - very good promising in the PHP 5.0 era, but as it turned out - it is overrated (and now obsolete with it's PHP 4+ compatibility). It was a major alternative to the Zend framework, now Yii seems to become stronger than Cake.
* Ruby On Rails framework (for Ruby) - in some way revolutionary (models, tests, active record, etc), but still overrated and overhyped (destined to crush the PHP world), after few years its still less popular than PHP.
* NoSQL - just like the magic word "sharding" - it's a new hype on the Internet - everybody knows the term, everybody knows the performance gains, but almost nobody knows how to use it (with the exception of few major players/companies)

etc...

 
  1 - 10   11 - 18