LebGeeks

A community for technology geeks in Lebanon.

You are not logged in.

#1 October 28 2010

Joe
Member

Why use a CMS when coding a website.

Young developers often feel repulsed by the idea of using a CMS. I remember when I started. I felt it was a "cheap", "easy" solution that was way too "limited". After all, they spent too much time learning those complicated programming languages, they're not going to build websites simply by clicking on simple buttons. I am here to tell you, and them specifically, that they're being foolish, wrong and missing out on great opportunities.


It's ... faster

I will probably not teach much by saying that web development is a very crowded market. Today more than ever before, a web developer has to face competition coming from a wider range of professionals (or semi-professionals). Young programmers, especially the young ones, have to show higher competitiveness by presenting business that is faster, cheaper and more reliable. It goes without saying that CMS like Wordpress, Drupal or Joomla allow you to hit record times. Setting up a blog for example (a lot of clients will demand that), will take less than 10 minutes with Wordpress. No matter how fast you are at coding, you will never reach those speeds with "from-scratch" PHP.


It's ... safer

I see you shaking your heads. You've heard it all before and you're still not convinced. After all, as soon as the application is a bit more complex than a blog, Wordpress will take more than simply 10 minutes. Yes, I agree. But here's my second argument. Even if it would take more time to use Wordpress than go from-scratch, I would still tell you to use it. Why? Simply because their code is better than yours. Whether it's Wordpress, Drupal, Joomla or any other popular open source CMS. These products are the results of work of hundreds of experienced developers. Even the best developer alone cannot do anything better than their combined efforts. For instance let's talk about code security. If you have ever worked on a large project, you will probably have noticed how difficult it is to avoid those dreaded exploits. Anyone could miss a type casting, or htmlspecialchar() at one point. After all you're only human, how can you deal with those thousands and thousands lines of code? Open Source CMS are constantly tested and updated by hundreds of relentless coders in the world. Better have hundreds of eyes watching your code rather than just yours right? Same principle can apply to stability, scalability, performances, ...


It's ... easier to maintain

Have you ever had to maintain a thousand line code with no ways of contacting the original author? Let me tell you, it is pure hell. Every coder has his own style, it's understandable. But when it comes to reading it, it's not always the coolest thing to do. What CMS can give you is a uniformity in your code.

Say you hire a new programmer to help you maintain and code your super cool webapp. If your code is "from-scracth" you will have to give him some time to understand your code. Basically you will need to train him to your way of working. Instead of using Joomla, you could simply hire a programmer with experience in Joomla, and he will be productive right away.


It's ... not always necessary

However there are cases when you won't find what you need with those CMS. It happens. They do have some very serious limitations, and sometimes they are hit. But even then, do not write from scratch! For the exact same reasons stated above, you would prefer using web frameworks like Django or Symfony, who would provide a far greater flexibility while still providing security, stability and uniformity.


It's ... really what happened

Let me tell you about the internship I did from February to August 2010. I was hired as a web developer in a small start up who operated (they still do) a commercial website. The website was huge, with 2 million unique visitors per month (15 million page views). It was a home built website developed from scratch in PHP by the owner of the company. To this day I think he's the best coder I've ever seen. He is literally a genius, having graduated from high school at 15, with an engineering degree at 20 (don't forget that it's a 5 years program here in France). Although younger than me, he taught me some really impressive techniques. And I have never seen anyone write SQL queries so fast. Anyway the point is that this guy is a PHP guru. The code of the website (which he wrote when he was 14), showed higher performances than any of the publicly available CMS and web frameworks.

Yet my project was still to destroy everything this genius did to replace it by Symfony code. I had to re-write the website from scratch but this time using Symfony to do it. Why? Simply because home-made code doesn't give you the flexibility and stability (and all the other things mentioned above) needed to be competitive in the professional market. It took 6 months and a team of 5 full-time developers to achieve this.

Just a real life example of the cost of using home built code.


It's ... seen before

CMS, interpreters, compilers and operating systems have all something in common: they add a new layer to the abstraction scale. Operating systems hide the hardware, compilers hide the assembly code, interpreters hide the operating system and CMS hide the interpreter. All of these inventions met with heavy criticism when first introduced. It's always the same "limited and cheap" arguments. I guess I'm simply invoking the History argument here to back my claims.


It's ... over

Well that's it. I hope you enjoyed my ranting, and I invite you to please tell me what you think. However, take my word and for the love of God:

NEVER use home-built code in your production environment!

Offline

#2 November 19 2010

Kassem
Member

Re: Why use a CMS when coding a website.

I have to agree with many of the points you've mentioned. But I'm still not sure about using a CMS. I would prefer using a framework instead. That guarantees that it's not really "from scratch", but still not relying fully on someone else's product.

Last edited by Kassem (November 19 2010)

Offline

#3 November 19 2010

jajoja
Member

Re: Why use a CMS when coding a website.

cms is a good start for non-coders or non-web-designers

Offline

#4 November 19 2010

sudeya
Member

Re: Why use a CMS when coding a website.

CMS is the better and user friendly for both parties( Web Masters and clients). Specially its  very user friendly for clients even they did'nt know html or any other web design or development knowledge.

Last edited by sudeya (November 19 2010)

Offline

#5 November 19 2010

Ayman
Member

Re: Why use a CMS when coding a website.

The more I hear about CMSs the more I feel I should start using them. Can someone suggest good books for joomla and drupal? I am seriously thinking of going deeply into one of them. At least I will be able to finish freelance projects in an extremely fast way which would make customers happy. Developing from scratch is awesome but many end users don't seem to appreciate it or even want to hear about it.

Offline

#6 November 19 2010

BashLogic
Member

Re: Why use a CMS when coding a website.

why so simply because you use programing to create tools. you use tools to serve functions.
you do not program to serve functions! it does not take more than that rational thought!

Offline

#7 November 19 2010

MrClass
Member

Re: Why use a CMS when coding a website.

if you are developing sites for clients, it wont matter if you did the site from scratch. Whoop Di Do, the client doesnt even care. Well if no one will say it, I will: If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid. Enough said.

Offline

#8 November 19 2010

jajoja
Member

Re: Why use a CMS when coding a website.

MrClass wrote:

if you are developing sites for clients, it wont matter if you did the site from scratch. Whoop Di Do, the client doesnt even care. Well if no one will say it, I will: If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid. Enough said.

how dare you  100% true i love joomla :)

Offline

#9 November 19 2010

Joe
Member

Re: Why use a CMS when coding a website.

MrClass wrote:

If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid.

I agree completely. Re-read my (super long) post, you'll see I said it first

@Ayman: No need to buy a book. A simple tutorial should be enough to get you started and for the rest, you'll learn on the go. Most books will spend too much time teaching you how to set up a database or use an FTP to send files to your servers.

Offline

#10 November 19 2010

BashLogic
Member

Re: Why use a CMS when coding a website.

MrClass wrote:

if you are developing sites for clients, it wont matter if you did the site from scratch. Whoop Di Do, the client doesnt even care. Well if no one will say it, I will: If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid. Enough said.

mrClass, mrFirstClassIdiocy,
yes it matters if you do site from scratch, sites are based on requirements and requirements define what methods and procedures to implement! even it todays rational existance, no one aproves of the thought of reinventing the wheel? or is it so that you attempt to peal a banana starting with your left index and then trying with all four extents? wakeup and smell the coffeeee!!

Clients do care, if they dont, then it takes an idiot to find another idiot and nothing beyond that, hence in other words dont even thing of progress at an level!!

i concur to your comment in regards to creating own cms in contrast to using existing ones. the reason for such is of the most elementary reasons, if you can not learn what the hype lingo is all about, and you can not respect that someone else has invented the wheel, then do not sit on that horse carriage because you would not know how to steer the horses!

Offline

#11 November 19 2010

BashLogic
Member

Re: Why use a CMS when coding a website.

rahmu wrote:
MrClass wrote:

If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid.

I agree completely. Re-read my (super long) post, you'll see I said it first

@Ayman: No need to buy a book. A simple tutorial should be enough to get you started and for the rest, you'll learn on the go. Most books will spend too much time teaching you how to set up a database or use an FTP to send files to your servers.

/me smacks Rahmu with a baseball bat!
1- do not disencourage reading
2- do not disencourage investigating
3- do not disencourage the thinking independatly
4- do not presume that simple explanatories provide a view of the big picture! simple explanatories are not autonomous in role to the whole big picture!

Offline

#12 November 20 2010

Joe
Member

Re: Why use a CMS when coding a website.

hmmmm ... Why not read a Wordpress/Joomla/Drupal/younameit book?

- Most (if not all) books are geared towards the tech illiterate wanting to "set up a website in 40 mins". You spend most of your time reading how to operate your FTP client. Ayman is an accomplished web developer, he doesn't need that, a simple tutorial would give him all the info he needs.

- Over-documentation is nothing more than another form of procrastination. The best way to learn is to get started. Practice is your best teacher in that case. (Once again, Ayman is already a web developer).

- CMS are not meant to be hacked. They're supposed to be a black box opaque to the user. However the source code is available for those who feel like going the hacker way.

- Not everything needs to be hacked. The reason to adopt CMS is to boost productivity, to deliver faster than ever before. If you need to hack, do so on side time, by reading the code, not a book.

Offline

#13 November 20 2010

MrClass
Member

Re: Why use a CMS when coding a website.

rahmu wrote:
MrClass wrote:

If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid.

I agree completely. Re-read my (super long) post, you'll see I said it first

@Ayman: No need to buy a book. A simple tutorial should be enough to get you started and for the rest, you'll learn on the go. Most books will spend too much time teaching you how to set up a database or use an FTP to send files to your servers.

but, it is interesting to learn how to make up your own joomla module or component. I also want to learn how to modify joomla templates to add new positions for your modules.

Offline

#14 November 20 2010

MrClass
Member

Re: Why use a CMS when coding a website.

BashLogic wrote:
MrClass wrote:

if you are developing sites for clients, it wont matter if you did the site from scratch. Whoop Di Do, the client doesnt even care. Well if no one will say it, I will: If you think that your own CMS is better than Joomla, Wordpress, or Drupal, then you're stupid. Enough said.

mrClass, mrFirstClassIdiocy,
yes it matters if you do site from scratch, sites are based on requirements and requirements define what methods and procedures to implement! even it todays rational existance, no one aproves of the thought of reinventing the wheel? or is it so that you attempt to peal a banana starting with your left index and then trying with all four extents? wakeup and smell the coffeeee!!

Clients do care, if they dont, then it takes an idiot to find another idiot and nothing beyond that, hence in other words dont even thing of progress at an level!!

i concur to your comment in regards to creating own cms in contrast to using existing ones. the reason for such is of the most elementary reasons, if you can not learn what the hype lingo is all about, and you can not respect that someone else has invented the wheel, then do not sit on that horse carriage because you would not know how to steer the horses!

Ok, first, I didn't understand anything you just said  . Second, of course each client has his own functionalities and requirements. I did not say that Joomla's (or drupal or wordpress) modules and component extensions are enough for you. Actually I do ALOT of programming even when using Joomla. How is that? Well look for Sourcerer ( a Joomla extension that allows you to add your own PHP code to the website). Imagine having Joomla's CMS and your own coding combined together, how awesome will that be?

Last edited by MrClass (November 20 2010)

Offline

#15 November 20 2010

jsaade
Member

Re: Why use a CMS when coding a website.

Very awesome.
does any CMS joomla/drupal or even any framework (yii, ..) support page transitioning? ie, they do support re-routing but for example I want to do this:

http://www.asual.com/jquery/address/samples/events/

check the links, the page does not change, the content is the same, but has its own hashed url.
Now, what are the possibilities?
First of, not changing the page while you got from section to another.
Secondly, have page transitions (most clients want the end result to look good).


Commercial CMSes are nice but even with modules/extensions they sometime are not the best solution.

Another smaller example:
A client has a website that has a picture gallery. The client needs to update the gallery, nothing else. Why use Drupal? it would be overcomplicating it for him if he is not familiar with drupal. He would need a small custom CMS for the picture gallery.

Offline

#16 November 20 2010

Kassem
Member

Re: Why use a CMS when coding a website.

jsaade wrote:

check the links, the page does not change, the content is the same, but has its own hashed url.
Now, what are the possibilities?
First of, not changing the page while you got from section to another.
Secondly, have page transitions (most clients want the end result to look good).

That's a very interesting feature if found in a CMS. But even if it's not found, this can be achieved using AJAX (either for your from-scratch websites, or by hacking the CMS's code).
EDIT: apparently, jQuery Address is what takes care of all this stuff: CLICK HERE.
And about the page transitions, there's a Flash framework called GAIA which takes care of page transitions and all this kinda stuff. But I assume you're asking for a non-Flash framework or CMS, right?

Another smaller example:
A client has a website that has a picture gallery. The client needs to update the gallery, nothing else. Why use Drupal? it would be overcomplicating it for him if he is not familiar with drupal. He would need a small custom CMS for the picture gallery.

That's what I keep trying to say, and that's why I prefer building custom CMS's.

Last edited by Kassem (November 20 2010)

Offline

#17 November 20 2010

rolf
Member

Re: Why use a CMS when coding a website.

I think CMS are often overblown... I mean come on installing a 20 megs CMS with a database for the site of some shop or something who just want presence on the internet? What part of this is "fast"?
BUT if you stay long enough in commercial, regular web design, you WILL end up using some sort of CMS or framework for your work... so It's... unavoidable.

Last edited by rolf (November 20 2010)

Offline

#18 November 20 2010

jsaade
Member

Re: Why use a CMS when coding a website.

Kassem wrote:
jsaade wrote:

check the links, the page does not change, the content is the same, but has its own hashed url.
Now, what are the possibilities?
First of, not changing the page while you got from section to another.
Secondly, have page transitions (most clients want the end result to look good).

That's a very interesting feature if found in a CMS. But even if it's not found, this can be achieved using AJAX (either for your from-scratch websites, or by hacking the CMS's code).
EDIT: apparently, jQuery Address is what takes care of all this stuff: CLICK HERE.
And about the page transitions, there's a Flash framework called GAIA which takes care of page transitions and all this kinda stuff. But I assume you're asking for a non-Flash framework or CMS, right?

Another smaller example:
A client has a website that has a picture gallery. The client needs to update the gallery, nothing else. Why use Drupal? it would be overcomplicating it for him if he is not familiar with drupal. He would need a small custom CMS for the picture gallery.

That's what I keep trying to say, and that's why I prefer building custom CMS's.

What I meant to say is that it depends on the client. Commercial and public CMSes are great for some stuff but
for other stuff they are not that useful. It depends on the client and the product.
I have worked on GAIA and flashMoto before, they are good but even in flash, sometimes you would need a more custom CMS.
As for security, if you know really know your language (PHP or .Net) then implementing security is very straightfoward and you do not need to wait for a CMS to be updated when an exploit is found.

Offline

#19 November 20 2010

Joe
Member

Re: Why use a CMS when coding a website.

As for security, if you know really know your language (PHP or .Net) then implementing security is very straightfoward and you do not need to wait for a CMS to be updated when an exploit is found.

I worked on a PHP project whose code size was over 115MB. That's over 200 000 lines of code, written over 7 years by over 10 different developers. How can you be 100% positive it's safe?

My job was to migrate the code to a public framework. Security was one of the main incentives. It's easy to say that "implementing security is very straightforward". But when the shit hits the fan, you'll always wished you have taken the serious solution and went for the foolproof thoroughly-tested framework.

Offline

#20 November 20 2010

jajoja
Member

Re: Why use a CMS when coding a website.

yes cms have two disadvantages , security flow and the size of the code/file , if your a webdesigner + using cms you should bypass those disadvantages by your own patches , in anyway you have to use your skills even if its just plug and play .

Offline

#21 November 20 2010

rolf
Member

Re: Why use a CMS when coding a website.

rahmu wrote:

I worked on a PHP project whose code size was over 115MB. That's over 200 000 lines of code, written over 7 years by over 10 different developers.

I'm really curious to know what kind of web app could possibly be so big as to require 115MB of PHP code. Are they building an intelligent robot or something? :-D

Offline

#22 November 20 2010

xterm
Moderator

Re: Why use a CMS when coding a website.

rahmu wrote:

My job was to migrate the code to a public framework. Security was one of the main incentives. It's easy to say that "implementing security is very straightforward". But when the shit hits the fan, you'll always wished you have taken the serious solution and went for the foolproof thoroughly-tested framework.

A framework and a CMS are two different things, not to be mistaken at any point in time.

Offline

#23 November 22 2010

jsaade
Member

Re: Why use a CMS when coding a website.

rahmu wrote:

As for security, if you know really know your language (PHP or .Net) then implementing security is very straightfoward and you do not need to wait for a CMS to be updated when an exploit is found.

I worked on a PHP project whose code size was over 115MB. That's over 200 000 lines of code, written over 7 years by over 10 different developers. How can you be 100% positive it's safe?

My job was to migrate the code to a public framework. Security was one of the main incentives. It's easy to say that "implementing security is very straightforward". But when the shit hits the fan, you'll always wished you have taken the serious solution and went for the foolproof thoroughly-tested framework.

It depends, this is a sword with 2 blades. If you go with a known framework you are also eligible to known framework exploits and you should keep updating your framework with latest patches.

Security depends on the project at hand, sometimes fullproof solution is not needed and is a waste of time.

I have used drupal a bit but I prefer to work on php frameworks rather than full CMS solutions.

Offline

Board footer