Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As someone who has very little experience in it, I would like to know what makes you think that Joomla can fulfill all you requirements?. What makes you choose it over development from scratch (or using a framework like Yii or Kohana).

What are the most common or crucial problem that you are facing when using Joomla? Since I don't have much experience in it, I would pressume that one of the biggest problem is flexibility. You can't scale or customize the behaviour of your app, and even if you could, you need to break some rule in Joomla, or wait for the next release. Is this true?.

Currently I am building a long term project, there might be a lot of specific functions and behaviours in it. I would like to build it from scratch or with help from some PHP frameworks. But I've seen so many websites (and some of them are great in terms of complexity) are using Joomla. This gave me some doubts about choosing the right tech.

I would like to know is there any, one or two ultimate reasons to choose Joomla/other.

share|improve this question

closed as primarily opinion-based by gnat, Simon, GlenH7, Philipp, Bart van Ingen Schenau Jan 10 at 17:33

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

13  
Joomla is one of the messiest pieces of code ever written. Kittens die and gods cry whenever a programmer has to work on a joomla site. Don't use it. –  Click Upvote Mar 31 '11 at 6:27
5  
Do. Not. Use. Joomla –  blivet Apr 2 '11 at 3:34

7 Answers 7

If you want to better understand how the various frameworks function, it can help to develop your own. That being said, there are only so many ways to produce a wheel, so how badly do you want to reinvent what's already been done?

I personally developed my own simply because I didn't need all the extra functionality something like Wordpress or Drupal offer. That being said, my "CMS" won't scale much past me using it, so I'm in trouble if I want other people to contribute.

My personal opinion is to use a framework like CakePHP, CodeIgnitor, Modx, et al, to develop your own CMS, and then maybe down the road migrating to something like Joomla, though by then you likely won't want to...

HTH.

share|improve this answer

First of all, sorry for my bad English. I am using joomla since last 4 years. I have used it as framework to develop different kind of web sites. There is nothing wrong to use Joomla. It has extensions to create sandbox for custom extensions and it reduce much time. Numerous extensions are available already for free to use. And use can create your own in very short time.

share|improve this answer

I was often asked about the big three CMS's and felt bad not having any answers, having never used any of them at all. Until about 1.5 years ago when I suddenly had no choice but to dive into Joomla 1.5.x.

  • Forget learning Joomla extension development by any other means than reading the source. I promise, if you stray from that rule then many moons will be lost.
  • Joomla doesn't help you with much (yes I'm aware of 1.7+, only talking about 1.5.x here). Don't expect any RAD features from Joomla, in fact you'll be writing all the HTML by hand, forms, tables, grids, filters, searches, yes all of it.
  • Joomla has 1 relational ORM type ability, JModel's canDelete method which can be specifically told what tables to check for records to return boolean "canDelete", that's all, you'll have to write all your ORM queries by hand.
  • Use JxExtractor (I think) to generate the required table schema files or manually modify the table files after any db schema change.
  • Joomla 1.5's ACL's are a lie, read that source code and you'll get it. Only wasted about a month assuming they were gonna be there once I needed them.
  • VirtueMart. Oh boy, umm. Quick, duck! Whew. Close call.
  • JInstaller's purpose in life is failure and passing the buck, it complains about things unrelated to what's causing the failure, or at least complains in terms as cryptic as any girlfriend I've had. It's NEVER to be trusted, it lies, you're the fool if you lend it any credence!
  • Configuration over convention, or just general inconsistency throughout. GetVar(), get(), getValue(), getConfig(), getCfg(), getParam(). Forget about guessing anything, ever, everything requires looking at the source/api.
  • There's at least 4 "ways" to build for Joomla, and they have nothing in common, save yourself the pain a just copy the com_weblinks component.
  • Joomla's a very sparse codebase. On one hand I like this about it, it's source is short and functional (albeit inept). If your coming from a framework, don't make the mistake of expecting anything like what frameworks offer, pretend your going back in time about 8 years, because you are.
  • Code generators. A must, Jacc in the extension directory is pretty nice.
  • Don't expect much help from the web, maybe I'm retarded but it appears that there's such a volume of cruft online for joomla that finding useful tutorials/guides/references is just another waste of time, read that source code friend.
  • Joomla isn't interested in documentation for developers, which sadly, makes sense in the end, since the codebase in so plain.

All in all, don't use Joomla CMS if your already familiar with higher order tools, or you may become suicidal and have 10 places high enough to jump from pinned on Google maps like I do.

P.s. Joomla 1.6 (1.7) improves on many of these short comings but it won't matter because getting client web stores (VM's) migrated to the 1.7 is a pipe dream, no matter how much I beg.

share|improve this answer

My opinion of Joomla:

  • It more of a point and click CMS for people with little technical knowledge/experience.
  • Being a point and click type product it requires more overhead to achieve this functionality (I find it to be slow - even with caching enabled).
  • Since it is fairly big, making changes to it, alterations or additions I find take more time then they should.
  • Don't get me wrong there are some great plugins/modules for Joomla however there are a ton that don't work properly or try to do too many things half way.
  • Constantly needs patching. I remember one time a hack was discovered on a Monday, a patch came out the next day and on Wednesday one of our clients sites was hacked. Even if we had a upgrade/patch policy in place with the customer if we did patches once a week (if needed) and they were done on thursdays each week, we would have been too late in this case. Plus # of patches times # of clients can be very time consuming.
  • Anyone who can write echo 'hello world'; calls themselves a php programmer these days. Joomla is a way for non-technical people to make decently looking websites with little effort (point and click, remember).

For a long term project I would recommend:

  • Using a framework to give you the basic functionality (like CodeIgniter)
  • Keep your code base lean as too much bloat early on is hard to pare down, down the road.
  • Using a framework also makes it easier to change direction or make adjustments quicker (if there isn't a plugin for Joomla that doesn't already do what you want you will have to build it)
  • Once you know the basics of the framework you know your code inside and out. Making addition, alterations, changes are much simpler and take much less time.
  • Avoid Joomla. Especially for long term on going projects I have found it to eat a lot of time.

Just my two cents. Hope it helps.

share|improve this answer
    
+1 for codeigniter –  Click Upvote Apr 2 '11 at 6:47

If you are building a website you may use a CMS like Joomla and others.
But if your are going to build a web application, I think it should be built from scratch. At that time, you may use a framework.

share|improve this answer
2  
To know the difference between a website and a web application, you may see- programmers.stackexchange.com/questions/64535/… . Actually I myself asked the question after answering this! –  Gulshan Apr 3 '11 at 1:26

Why Joomla? It is a CMS. If you can cover the needs of your project with the modules etc available from one of the major CMS's then great. The next question is - can you modify the code to change it if necessary. As far as CMS systems go take a look around and see what others compete with Joomla.

share|improve this answer

AFAIK Joomla is a CMS. So basically it competes with other CMS's like Drupal and Wordpress. While Yii and Kohana are frameworks where you have options like Zend, code-ignighter as well. To my understanding, A CMS is an application with it's set of API and extension to manage the content of the web while A framework is a code-base which can be tweaked to our need in order to create a web application. So, you can create a CMS with a framework. I would recommend to go for a framework rather than a CMS for application development. I believe frameworks approach lets you dive into methodology such as MVC as well as give you options regarding database and templates.

P.S. This is just my understanding. I have heard that Drupal and Joomla are very extendible as well as tweakable but I have not used them. Some months ago, I had looked into Yii and it seems very well documented and easy to learn framework.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.