Let me try to explain, in non-technical terms, what a framework is and why using the Nooku Framework is a good idea.
No, not “preface” as in “this is the start of a long and boring novel”. It’s just two quick preliminary pieces of information that you need to be aware of:
- Nooku Framework is not to be confused with Nooku Content. Nooku Content is more a competitor of Joom!Fish: It’s a Joomla component used for translating content. Nooku Content is also distributed only among paying partners in a partner programme. Nooku Framework however, is a programming framework, and it’s free and open source software (FOSS). Both products are backed by the same developers though, hence the similar names.
- When I say framework, I really mean software framework, a term which Wikipedia defines and explains really nicely. But don’t click that Wikipedia link for now. Instead, let me give you the short story, from a Joomla perspective:
What is a framework?
A framework allows you to reuse common programming code, which is a good thing. Let me explain why by comparing a framework to something a lot easier: Your e-mail signature. In your e-mail software, like Outlook or Apple Mail, you write your e-mail signature once in your settings, then automatically use it whenever you send an e-mail.
- You spend less time writing your e-mail.
- Time saved means you have more time to do what’s important: Focusing on the contents of your e-mail.
- You get the signature right each time; In a stressful situation you might forget to include your phone number or even type your name incorrectly, but not when you’re using a predefined signature.
The same thing goes for software frameworks from a programmer’s perspective:
- It saves you time by eliminating the need to do repetitive tasks, which means you can focus on what’s important: Finishing the application and making sure it meets the requirements.
- You get less bugs in your system, because the parts handled by the framework have been used and tested earlier, and are usually bug free. So the more framework code you use, the less bugs you should experience. More time saved.
- An added bonus: A framework with multiple users allows people to find bugs together, in their shared, common code.
So what’s the difference between Nooku, Joomla and the Gantry Frameworks?
I see many people asking this question, so I just had to answer it once and for all:
Nooku and Joomla try to accomplish the same thing: To make developing Joomla components, plugins and modules easier. This is primarily stuff happening under the hood you might say. Gantry is a framework made by Rockettheme to make developing templates easier, which is more the facade of your website.
In other words, you can’t compare Gantry to the other two. Instead you should compare Gantry to the Morph Framework, which is rumoured to be Nooku based in the future, but that’s a whole different story.
Why do I prefer Nooku Framework over Joomla’s own framework then?
I have been a part of the Mambo/Joomla community since 2004, and I have written components both using the Joomla Framework and the Nooku Framework. So I have tried and tested both, and have decided to use Nooku for the following reasons:
- It’s better. For me as a programmer. It reduces the amount of code I need to write by something close to 80%1, which means more time for me to spend on creating new and cool stuff, and less bugs for you to get annoyed over. The only two programmers that I know of that have looked into Nooku and still decided they preferred the Joomla Framework, have been OSM employees. I.e. the guys who are paid to develop the Joomla Framework.
- It makes me better. Nooku reuses solutions to common problems (called using design patterns) to a greater extent, and unlike Joomla it forces me to adhere to conventions and standards. No slacking around in other words. The predictability in the coding combined with strict data filtering gives my components easier extensibility and my clients better security. I’ve recently also started using HMVC, and I’m loving it.
- It’s Joomla compatible. Any Joomla website that needs custom functionality can start using Nooku to build that functionality, today. It installs like any other extension, and does not interfere with what’s already on your Joomla site and using the Joomla Framework.
- It’s cheaper. I know; too obvious. Less time spent programming + Less bugs = Lower development and maintenance costs.
- It’s the second generation. Yes, literally the second generation. You may now know, but both the Joomla and Nooku Frameworks were built basically by the same guy: Johan Janssens. In fact, Johan is still considered to be the largest contributor to the Joomla codebase (by far!), even though he stopped working with Joomla in January 2008. He took with him the knowledge and lessons learned, and started from scratch to build something better: Nooku.
- It’s got a developer community. Unlike Joomla, development at the framework level is moving forward at a rapid pace, there is lots of activity, and developers are sharing and contributing code between themselves. In the web development industry, things are moving forward very quickly, and for the sake of myself and my clients, I need to keep up and stay sharp.
So I choose Nooku.
If you’re a programmer yourself, go check it out at http://www.nooku.org/framework.html. If not, you should talk to whoever does the programming for you and make sure that they do.
- The 80% figure is borrowed from NinjaBoard’s comparison. This, though, dates back to October 2009, after which the Nooku Framework has improved further, so the number should probably be higher than 80%.