CMS, Framework, Core Language… Nowadays, when approaching a new project, we have the opportunity to use highly advanced tools that allow us to speed up and facilitate the work.
CMS systems are increasingly successful; it is said that half of the world’s websites are created with WordPress (although this data changes frequently…). Frameworks are also thriving today, becoming more advanced and sophisticated.
And what about good old handwritten code? Does it still exist?
But let’s go step by step. I will try to analyze each of these three options, highlighting strengths and weaknesses, and finally, I will share my opinion.
Content Management Systems (CMS) allow managing a site’s content without having programming knowledge. In practice, they offer an interface to write articles and pages almost as if you were using Word. The CMS translates this page into HTML so that it can be viewed by a browser.
Modern CMS, especially WordPress, can greatly speed up website creation. There are even plugins to create the site’s graphics without writing a single line of HTML.
They are the perfect solution for creating blogs (the reason they were created), but they can also be used for showcase sites, landing pages, and low-budget projects.
They boast a huge number of plugins, simplifying developers’ lives by providing pre-packaged services to configure.
On the downside, they may carry a lot of not always useful dependencies. Especially when using plugins, you need to be very careful; otherwise, you may make the page very heavy and significantly slow down the site’s performance.
Personally, I’m not a big fan of CMS, but I recognize that if used for the purpose for which they were created, they are fantastic. For a blog, in my opinion, there is no better solution. Creating a theme from scratch is not very difficult, and you can quickly build an updatable platform.
Frameworks are very different from CMS and should never be compared. If a CMS delivers ready-made solutions, a framework just sets the table.
Frameworks offer a series of libraries that speed up project development but do not replace the programmer’s work. To use a framework, in-depth knowledge of the language it is written in is required.
This is an excellent solution for medium/large projects. All frameworks offer a well-organized working environment, reducing the chance of writing bad code and increasing the speed at which code is written.
They also manage many security issues, removing them from the developer’s mind, who can focus solely on project development.
I personally really like Laravel. Fast, secure, and tidy. Plus, it’s written in PHP, which is the language I use the most at the moment.
In the near future, however, I plan to thoroughly study Django, which seems to be doing great and is much faster than Laravel, but we’ll see what the future holds…
3. Pure Language
A third way to develop your projects online is to build everything from scratch.
Of course, it may seem stupid to start from scratch when the above tools already exist, but it can have its advantages.
If a developer knows a language very well, they can build their own framework and personal CMS. This is not about “reinventing the wheel” every time, but doing it only once and reusing it later. Of course, this has its disadvantages in terms of security and scalability, but it also has many advantages, especially speed.
Well-written core PHP is much faster than Laravel.
Certainly, in this way, you will need to handle all the problems yourself, without thinking that there is already a ready-made program. But a developer is still a developer, and this is his job.
Time and budget are always a problem, which is why the pure language is often disparaged in favor of CMS or frameworks, but where possible, it can also be a solution.
Among CMS, Framework, and Core language, I use all three methods. Over the years, I created my own framework and personal CMS, allowing me to manage projects 100%, customizing every tiny part of the back-end, front-end, and UX very quickly. Certainly, it took some time to create them, and it takes time from time to time to update them and keep up with the times, but this way, I can handle everything I do, I am the real “owner” of my project.
Sometimes, however, it is simpler to use a CMS or a framework, depending on the type of project you want to create.
In terms of speed, if you write good code, nothing beats the core language. In terms of scalability, if many people work on the same project, if a high level of security is required, and if complicated database relationships need to be managed, then a good solution may be to use a framework.
Finally, for a blog or for simple sites with a low budget, a CMS can be used, which will surely be slower than the previous solutions but will take care of many problems, removing a burden from the developer.
This is what I have noticed using these tools. What do you think? Are you a huge fan of WordPress and therefore snub the other options, or do you still write code?
How do you choose between CMS, Framework, and core language?
Let me know in the comments.
Happy coding to everyone!