Go Back   SitePoint Forums > Forum Index > Manage Your Site > Scripts and Online Services
Newsletter FAQ Members List Calendar Mark Forums Read

New to SitePoint Forums? Register here for free!

SitePoint Sponsor
 
Reply
 
Thread Tools Display Modes
Old Sep 14, 2004, 12:25   #1
[MaDMaX]
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: San Diego
Posts: 30
How many CMS's do there need to be?

I would guess that something like 1/5 of the developers here have written their own CMS. This seems to me like a large waste of resources. Why do you think that there are hundreds of commercial PHP CMS's, and prolly thousands of personal projects? Are the problems CMS's solve that diverse? I doubt it. What's your opinion?

While we're at it... Do you think that someone will come up with a universal CMS that will eclipse the current ones?
[MaDMaX] is offline   Reply With Quote
Old Sep 14, 2004, 12:48   #2
yodaddy
SitePoint Enthusiast
 
yodaddy's Avatar
 
Join Date: Aug 2004
Location: georgetown, tx
Posts: 97
Quote:
Originally Posted by [MaDMaX]
I would guess that something like 1/5 of the developers here have written their own CMS. This seems to me like a large waste of resources. Why do you think that there are hundreds of commercial PHP CMS's, and prolly thousands of personal projects? Are the problems CMS's solve that diverse? I doubt it. What's your opinion?

While we're at it... Do you think that someone will come up with a universal CMS that will eclipse the current ones?
I don't think there's such a thing as universal...
yodaddy is offline   Reply With Quote
Old Sep 14, 2004, 12:53   #3
vgarcia
☆★☆★
silver trophy
 
vgarcia's Avatar
 
Join Date: Jan 2002
Location: in transition
Posts: 21,481
Every CMS has a slightly different goal or approach in mind. Most CMSes I build would have little relevance to anyone but the clients I build them for. In some cases, it may be applicable to other clients in the same industry, but that's about it. Also, what I find to be important may not be what you find to be important about content management, so it can come down to a matter of style. Finally, you'll always have some people who'd rather write their own software than use something off the shelf for whatever reason, so the proliferation of the homegrown CMS will continue on.
vgarcia is offline   Reply With Quote
Old Sep 14, 2004, 13:27   #4
aldob
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: chile
Posts: 44
I think that the real issue here is that PHP developers tend to build applications rather than libraries.

An application tends to solve too many problems, and the resulting product will only suit you if you have exactly the same problems. This is what happens with most CMSs out there.
And this is why we have to reinvent the wheel over and over.
Take ezPublish for example... they have put effort in building their own db abstraction layer, xml parsing classes, cache, roles, etc, etc even templates!. Not only did they repeat work that has been done 1 trillion times, but the result is a take it or leave it package, it either suits you or it doesn't (it can be extended, but basically you cannot tear it into pieces and rearrange it as you please).
(Anyway, I do congratulate them for developing a standalone library and documenting it.)

I believe that a universal CMS is not what we must look for (I agree with vgarcia, we all have different needs), but rather a universal set of libraries and specifications that would allow us to build customized applications.

I hope that PHP5's SPL, PEAR or any centralized effort will lead to this in a near future.


But it's not all dark... I do believe that there is a standard solution that might suit 90% or more of the content websites (not applications). I personally use a CMS I developed and I havenīt needed anything else for a long time.

By the way, I'm starting to build a list of specifications to create a new CMS (another one? nooo! jaja). This time the idea is actually to reuse open source projects at all cost, no duplicate efforts. I already started a thread on data structure for the sake of fun, if you'd like to participate.
Does anyone know of a similar project? Please tell me, I'd rather use my time helping in something big (maybe a cms implementation over mojavi or binarycloud, etc)

cheers,
aldob is offline   Reply With Quote
Old Sep 14, 2004, 13:30   #5
asp_funda
SitePoint Wizard
silver trophybronze trophy
 
asp_funda's Avatar
 
Join Date: Jun 2003
Location: Andromeda Galaxy
Posts: 4,610
Yeah, I agree. I build my own, though I do look around for quality free CMSes like Mambo, WordPress, etc. so that I can see what features they have & how do they do it but I build my own for the websites that I make, more for the reason that Vinnie explained. Each of my CMS is also relevant to that particular website, though I do have ready to use components for CMSes which are more or less same in every CMS I use but they are just 1-2 components. The rest is made so as to seamlessly fit into the website & the works.

Also, I like working on my own CMSes as I learn new things each time I make a CMS & then I find it easier to hack my own code than Mambo or any other.
asp_funda is offline   Reply With Quote
Old Sep 14, 2004, 13:44   #6
arborint
SitePoint Wizard
 
Join Date: Aug 2004
Location: California
Posts: 1,672
Some in the CMS community has been trying this for a while but there is too much noise between the different language communities.

Then you have ideas like, "it can come down to a matter of style." That is true in a sense, but certainly each CMS does not have 100% different style. If you did a survey of the different CMSs (or template systems or database abstraction layers) you would find that a least half of the code (or more) is common and the rest would fall into 2-4 different styles that could share code as well.

There are lots of everything in PHP because we are part of the Bazaar. It looks messy and wasteful as you wander past the stalls, but taken as a whole it ends up being an efficient way for an entire community to progress. If you want a Cathedral approach then .NET is for you.

Things don't have to be as bad as they are in PHP. We are lacking in leadership in this area. That is not to say we don't have good leaders. PHP had lots of smart people who have wisely chosen to let Bazaar operate naturally. The problem is that when the Bazaar has evolved a solution, it's up to those leaders to formalize that solution to benefit the community. But groups like PEAR and things like PDO tend to promote yet-another-solution rather than solidifying the consensus.
arborint is offline   Reply With Quote
Old Sep 14, 2004, 13:54   #7
aldob
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: chile
Posts: 44
YUP,

I cannot agree more with arborint.
aldob is offline   Reply With Quote
Old Sep 14, 2004, 14:07   #8
aldob
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: chile
Posts: 44
A note aside for those reluctant to use other people's code.


At first I thought that the best reason for using 3rd party libraries, standards and projects was saving development time.

I was wrong!
I realized that I developed much faster when using my own code, tips and tricks.

The thing is that learning to do something in other way rather than yours will cost you more time at first (sometimes the learning curve can be quite steep actually). Speed will only come with practice...

However, the rewards are huge:
- robustness
- using bug-free components
- existing documentation
- adhering to specifications when things get "not so clear"
- ease for other people to hack my applications

And anyone who has built a large project knows that these four points are well worth the time penalty. And in most cases, time will be recovered when it comes to debugging and deploying last minute changes.

Jaja excuse me for posting so much on this, it's just that I've really been through hell with custom made CMSs and spaghetti coded applications in PHP.
aldob is offline   Reply With Quote
Old Sep 14, 2004, 23:34   #9
asp_funda
SitePoint Wizard
silver trophybronze trophy
 
asp_funda's Avatar
 
Join Date: Jun 2003
Location: Andromeda Galaxy
Posts: 4,610
well, I'm not against using 3rd party code, which has not been developed by me, but its like this, I like to do some things my own way. So in all, I both code myself as well as use 3rd party applications.
asp_funda is offline   Reply With Quote
Old Sep 14, 2004, 23:50   #10
arborint
SitePoint Wizard
 
Join Date: Aug 2004
Location: California
Posts: 1,672
On the subject of any kind of standardization there is always the "I like to do some things my own way" factor. I have always suspected there much fewer ways than it appears. So here is my challenge to this thread:

How many distinct "styles" of CMS are there really?

By "style" I assume it means a distinct database layout and code architecture. But I am open to other definitions.
arborint is offline   Reply With Quote
Old Sep 15, 2004, 01:48   #11
[MaDMaX]
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: San Diego
Posts: 30
Quote:
Originally Posted by arborint
How many distinct "styles" of CMS are there really?

By "style" I assume it means a distinct database layout and code architecture. But I am open to other definitions.
1. Page-oriented (i.e. Contribute, Citydesk)
2. Framework-oriented (i.e ezPublish)
3. Portal-oriented (Nuke)
4. Database-oriented (glorified DB editors)

That's what I came up with.
[MaDMaX] is offline   Reply With Quote
Old Sep 15, 2004, 02:11   #12
[MaDMaX]
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: San Diego
Posts: 30
Quote:
Originally Posted by aldob
By the way, I'm starting to build a list of specifications to create a new CMS (another one? nooo! jaja). This time the idea is actually to reuse open source projects at all cost, no duplicate efforts. I already started a thread on data structure for the sake of fun, if you'd like to participate.
Does anyone know of a similar project? Please tell me, I'd rather use my time helping in something big (maybe a cms implementation over mojavi or binarycloud, etc)
I, too, built my own CMS. It is maybe 2k-3k lines of my code, but it uses:

* Smarty
* SmartyValidate
* ADODB
* Sarissa
* KTML-lite
* phpMyAdmin

That makes the entire package weigh in at about 10 Megs. It's a bit heavy, but far from unmanagable.

The front-end is Smarty templates, with features for easy relational data access with paging, site-search, friendly URLs, and form validation/handling features. The database variables Smarty uses are initialized automagically (kinda complicated to explain), so PHP is really only used for form-handling.

The back-end is an extensible (custom field controls and "actions"), skinnable (Smarty), object-oriented database editor (SELECTS, INSERTS, UPDATES, and DELETES). I leave the database design to phpMyAdmin. I do some small customization of the backend on a per-client basis, but it's really flexible and basically needs 10 minutes of config. Advanced functionality (file uploads, WYSIWYG) is provided in the custom field controls.

I've been looking to sourceforge it eventually, and if you, or anyone else wants to help, that'd be cool. It's not "big," but I think it has potential.
[MaDMaX] is offline   Reply With Quote
Old Sep 15, 2004, 15:14   #13
ponticelli
SitePoint Zealot
 
Join Date: Mar 2004
Location: Milano
Posts: 127
MadMaX: I'd like to see your project in action (... and source too of course).
ponticelli is offline   Reply With Quote
Old Sep 15, 2004, 15:18   #14
arborint
SitePoint Wizard
 
Join Date: Aug 2004
Location: California
Posts: 1,672
Quote:
1. Page-oriented (i.e. Contribute, Citydesk)
2. Framework-oriented (i.e ezPublish)
3. Portal-oriented (Nuke)
4. Database-oriented (glorified DB editors)
Can you break those down more. For example, it seems like the all have a database and a framework.

Are the differences in the frontend whether the are block oriented or template oriented? Is it access controls?

Are the differences in the backends on the how smart articles are about themselves? the types of relations? what the smallest or common content unit is?
arborint is offline   Reply With Quote
Old Sep 16, 2004, 00:56   #15
poornam
SitePoint Member
 
Join Date: Jul 2001
Posts: 13
From what was listed, I think this can be a fair description.

Page oriented editors are sort of editors like frontpage, where static pages can be easily created and uploaded.

A Framework oriented model can be adopted when you want to use the libraries of a CMS(role management, multilanguage, access rules ... ) and build a specialised site over it. This works out great if you want to build a CMS from bottom up, but don't have the time or money to write all the libraries. (another example of a framework - seagull)

A portal oriented CMS like Nuke can be used off shelf. Usually has many free and commercial third party modules which can be installed on the base CMS. You can even write your own module. This model does not lend itself to very high degree of customization. They are built rather for quick use.

Database oriented CMS - Basically these types of CMSs may not have a lot of libraries to support your sophisticated configurations. If you want a site where all the static pages need to be editable by a simple editor online, then it comes in this category. No rule management or access controls.

Each type has its own purpose. What happens is most times, developers can't get the CMS they want and then end up developing from ground up. If any developer reaches this situation, I would suggest using a framework and then build what you want.
poornam is offline   Reply With Quote
Old Sep 16, 2004, 02:27   #16
Brak
SitePoint Addict
 
Brak's Avatar
 
Join Date: Jul 2004
Location: Central Coast, CA
Posts: 365
Simply time saving. I save time when I code my own CMS. I know how it works from the inside out, and it would inefficient for me to use someone else's CMS. Most CMS's are used for updating one or two pages throughout a site. Very few people use a CMS to truely keep an entire site dynamic and managed by multiple people.

Plus, most CMS's suck. Yes, they suck HARD. I recently had a run-in with mambo and honestly I can't belive it's been given any praise at all. Customizing it took me longer than it would have for me to code my own.

We have this issue in the PHP community where programmers create applications for programmers... NOT web producers who end up using it. They create a CMS that can even make my coffee in the morning - but lack to ask the question of whether or not it can be easily implemented into a site of variing layout/content.
Brak is offline   Reply With Quote
Old Sep 16, 2004, 03:04   #17
poornam
SitePoint Member
 
Join Date: Jul 2001
Posts: 13
Use the right CMS for your application. If you want to simply edit a few pages, write your own code or use a glorified DB editor. Using a sophisticated framework like mambo or seagull and trying to modify it won't work.

On the other hand, If you want to have role management, access control, multi-language support, template support, external module support and so on in your CMS, then writing your own code from ground up can be very expensive and unnecessary. It is cheaper to use an existing CMS framework like mambo or seagull.
poornam is offline   Reply With Quote
Old Sep 16, 2004, 03:47   #18
loadx
SitePoint Addict
 
loadx's Avatar
 
Join Date: Jul 2004
Location: Melbourne, VIC, Australia
Posts: 228
I think what was said about the standard libraries is a BRILLIANT idea, like most languages PHP is fairly robust when it comes to web applications and so having some kind of standard library is always a bonus because it means less time re-inventing the wheel and more time debugging etc.

i will agree that most CMS's are purely made because current CMS's don't offer a feature and sometimes even just the 'bloat' factor of the current CMS's around you look at some CMS's such as PHPnuke (probably a bad example and they are just chock a block full of useless crap that a business would not require or use at all.

Also security issues if you take an open source CMS, again ill use PHPNuke and you integrate that on your site then you gotta constantly have to update it as new exploits are being found for out of the box products everyday and if you create something yourself with security in mind you will usually keep the script kiddies away provided you know what your doing and there won't already be 32 pages of exploits written to delete all users in your database

So yes id agree to make a kind of standard library BUT dont make one CMS that will do everything because at the end of the day something that suits your small business is going to be either too much or too little for another project and will jsut be wasting space and memory.
loadx is offline   Reply With Quote
Old Sep 16, 2004, 05:33   #19
Tanus
SitePoint Addict
 
Join Date: Apr 2004
Location: Melbourne
Posts: 362
Quote:
Originally Posted by [MaDMaX]
1. Page-oriented (i.e. Contribute, Citydesk)
2. Framework-oriented (i.e ezPublish)
3. Portal-oriented (Nuke)
4. Database-oriented (glorified DB editors)

That's what I came up with.
Another approach is that of discrete objects encapsulating all the different types of data, such as Matrix. It's similar to a portal oriented CMS, but data encapsulation is a lot better, which lends itself to better scalability.
Tanus is offline   Reply With Quote
Old Sep 16, 2004, 10:52   #20
mystic
SitePoint Member
 
Join Date: Sep 2004
Location: Port Townsend, WA, USA
Posts: 1
some missing points

My number one question is whether the system is for my use or a client. I wrote my own CMS and used it for a while. Actually, I still use it for a couple of pages (it's a great ego stroker) but there are some difficulties with that approach. The point is that it is okay for me but not something I will put on client's sites.

While it is possible to customize your own code, there is a big time element involved in developing, what is basically an alpha application, then putting it in a production environment. What have you forgotten? What bugs are going to show up on a client's site? What security issues will you have to deal with? How much documentation will you have to write for the client? How portable is the site if the client needs to include other developers or designers?

Those are all big concerns to me, especially the security and documentation ones. A CMS with an active developer or community will have taken care of these issues.

And it's a huge plus to have a well written and thorough manual to offer with a CMS website. I print out a hard copy of the admin instructions when I train the client on a CMS. It builds confidence and goodwill, and is more than worth the effort of manhandling a CMS to meet their needs.
mystic is offline   Reply With Quote
Old Sep 16, 2004, 11:03   #21
phirenze
SitePoint Enthusiast
 
Join Date: Aug 2004
Location: Catalunya
Posts: 51
I think this happens the same way as any other software, for example OSes . People that don't like a "default" one create their own to fill their needs. With CMS the same. And I like originality, I hate for example nuke sites. They are all same.
phirenze is offline   Reply With Quote
Old Sep 16, 2004, 11:50   #22
Hal9k
Afraid I can't do that Dave
 
Hal9k's Avatar
 
Join Date: Mar 2004
Location: East Anglia, England.
Posts: 634
Quote:
I hate for example nuke sites. They are all same.
I agree there. A lot of people just take php nuke and use it out of the can. A year back I used to wonder "how did they make all that cool log-in stuff?" - Now it's more like people can't be bothered to practice the art of making a CMS.

Sure, if I was seriously pushed for time, or designing a site for mission critical use, I would invest in a pre-made CMS. As for now, I find it fun tinkering away with a little CMS project I have in development, and don't really see it as a chore. Re-inventing is one of the best ways to learn how something works, so maybe that's why a lot of people choose to do so.
Hal9k is offline   Reply With Quote
Old Sep 16, 2004, 12:46   #23
Gator99
Non-Member
 
Gator99's Avatar
 
Join Date: Sep 2004
Location: Florida
Posts: 644
Mostly I believe it's a flexiblity issue. Most sites have existing php, admin, systems etc and want to integrate with that rather than add a full blown app. As far a portibility, classes are alot more usefull. Before I do anything that I imagine has already been done a kazillion times, I usually check on phpclasses.org. Its kind of like the php version of CPAN.
Gator99 is offline   Reply With Quote
Old Sep 16, 2004, 13:39   #24
Tekime
I <3 Internet
 
Tekime's Avatar
 
Join Date: Dec 2003
Location: Maine
Posts: 354
I think it's great that there are so many CMS'. There are just too many ways to do what us developers need to do for one CMS to fit the bill. Not only is PHP going through fits of change, but the entire world of web standards is and will continue to do so.

The reason I have created my own CMS is threefold:

1. I learned 75% of what I know about PHP coding my own architecture. It was/is fun and challenging.
2. I use zero 3rd party code, so it's all mine. Not to say I won't consider opening it up down the road, but right now it's actually becoming a big part of our business model.
3. It's what I want it to be. It is both an architecture and a portal, depending on how and what you wish to implement.

Even if there was a 'perfect' CMS, I believe that we would continue to see them crop up everywhere. I love the 'Bazaar' model, there wouldn't be nearly as many experienced coders out there if all of these folks didn't invest the time into learning how to do something from scratch, and hence far fewer resources for the rest of us to indulge in.

This isn't to say I wouldn't like to see some more standardization as an option, but I think that the technology surrounding 'templating', as well as what different people actually view templating as, holds us back amongst other factors.

Anyway this post probably makes little sense, as I'm sleep deprived and trying to sum up years of contemplation in the few minutes I have right now.
Tekime is offline   Reply With Quote
Old Sep 16, 2004, 13:56   #25
aldob
SitePoint Enthusiast
 
Join Date: Sep 2004
Location: chile
Posts: 44
MaDMaX, ponticelli

Yes I am willing to participate in an open source CMS project, but for now I'm too busy to commit into anything too serious.

However, I do believe that a lot can be learned by posting in these forums, maybe we could organize things a little. Perhaps create a research plan. If we really want to define a consensus and reuse existing projects, there is a need to locate valuable experiences and ideas, and that will take some time.

Check this out ( http://www.cmsreview.com/ ). You'll be amazed with the number of CMSs out there... there is a lot of reading to do.

My idea is not to create yet another do-it-all CMS. I think of using a different approach, by defining different tiers within a CMS system, creating different solutions for each tier behind a unified API, and letting people configure their solution from this.

The two of you seem quite interested in CMSs (and for what I can see from madmax's post, you also have experience on the subject). So I'll ask you in turn:
Would you be interested in teaming up to organize some sort of research?

I'm leaving for the weekend, see ya next week.

Last edited by aldob; Sep 16, 2004 at 14:57.
aldob is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread | Next Thread »

Thread Tools
Display Modes

 
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Sponsored Links
 
Forum Jump


All times are GMT -7. The time now is 07:32.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 1998-2009, SitePoint Pty Ltd. All Rights Reserved