Hi! I have been developing for 3 years now and have learned many things about web development. I was wondering what is the best thing to choose between a CMS and a Framework considering I know nothing about CMS and that I've learned a framework named Laravel. I use those language to code: HTML, CSS, JAVASCRIPT, JQUERY and PHP The question is: Should i use a CMS to develop my website or should I be developing it from scratch using Laravel? Considering those 3 points:
Thanks :)
Well... you know CMS as a acronym for Content Management System is, basically, a framework. Because framework is just a bunch of tools and you can use them by following some rules and guidelines.
Of course, this is a very simplified version but it also is a truth. For example, WordPress is a perfect example - has a bunch of functions and classes that do a lot of things. You can build basically anything, it is made by PHP, just like Laravel - so it is a framework.
Now, your problem is not CMS vs Framework, your problem is that you do not know what problem you have to solve.
Security, efficiency, maintenance - wrong questions. What is the business requirement? That is the most important thing, and when you have that defined, you can choose a proper tool.
Todd
Software Security TechLead
Here's the thing:
A framework and a CMS are not directly comparable... So much so that I'm not even going to directly address those points because it doesn't really make sense to. A CMS can be made using a framework. Your comparison is like saying "What should I use, a hashtable or an array?" when in fact a hashtable is an array of linked-lists most of the time.
Having said this, I get what you're wondering and I've actually had that internal discussion before myself. The answer is, it depends completely on the project requirements.
Does the client (or you) need a basic, "canned" blog/website? In fact, I would go as far to say that WordPress is barely even canned anymore, since there are so many options of themes, plugins, etc... But nevertheless, do you need a highly customized back-end system coupled with a highly-custom front-end? Some examples... Facebook, Banks, PayPal, Hashnode, StackOverflow all were determined to need a more highly customized system than what Wordpress could offer. I'll leave you with this: Who is/will be your clientele? If it's larger enterprises, mid-sized companies, or tech companies, focus on mastering some frameworks. If you're looking to do jobs for a lot of smaller non-tech and even some larger non-tech businesses, you can get some serious cash becoming a CMS pro with a CMS such as WordPress or another.
If you really want to learn which is better, pick a project for yourself and start by trying it with a CMS... If you start hitting brick walls and the CMS is boxing you in, you need a framework or perhaps even to freecode something.