2012-04-18 Update: People have pointed out that, in the year since I wrote this post, a lot has changed regarding Nooku and that many things I wrote about didn’t end up as I “predicted.” Keep in mind that I wrote this post with the knowledge I had at that time, and that I’m leaving this post up as part of my “Don’t unpublish anything” policy.
If you’re somewhat involved with Joomla! you’ll have heard of at least three new arrivals in the Joomlaverse. A lot of debates took place, some more civil than others. But let’s put emotions aside, and look at the facts.
What’s new?
Of course, there’s Joomla 1.6. A lot has been said about this “new version”. Arguments were had about the release cycle, about the features… Then, there’s Molajo. We’ve already explained to you that Molajo is a distribution, which will offer a selection of improvements that’ll improve people’s Joomla 1.6 experience.
We never got to Nooku, though. The reason for that was quite simple: before we open our text editor, we’d like to know what we’re talking about. With some help, we proudly present to you: our post on what Nooku is, and how it will affect you, the end user or developer.
Nooku, a framework for Joomla!
In this post, “Nooku” refers to the Nooku Framework – which is part of the “Nooku Platform”. For this post, we’re just going to focus on the framework. I can see you wondering: “What’s a framework, exactly?” We asked ourself the same question, so we called in the help of some experts, to find a “definition” of a framework.
It’s hard to define what a framework is, so we borrow the explanation from a well known site:
“a framework is a collection of the best solutions to common problems developers face often, to prevent reinventing wheels and repeated coding”.
To dumb it down: a framework is used by developers, because it makes it easier to develop whatever it is they develop, For example, there’s the .net framework, (Windows programs), Cocoa (Mac OSX programs) and DirectX (Games for Windows, Xbox).
The Nooku Framework is the second framework written for Joomla. Both the Joomla Framework and the Nooku Framework are creations of Johan Janssen. The goal of these frameworks? Help the Joomla! developers to create a variety of extensions for your favorite CMS.
Yeah, sure, but how does that affect me? I’m not a developer.
I’m glad you ask, because we asked ourself that very same question. The answer doesn’t lie in what you, the end user can do with it. but rather in what developers can do with it.
When using the Nooku framework, creating an extension for Joomla! is easier and less time-consuming. A lot less code is required, as the stats about Ninjaboard indicate.
Even though it’s not a panacea, Nooku FW has sped up my dev time by a factor of 4, compared to the J! FW. – Nikolas Dionysopoulos, Akeebabackup.com
This means the developers have more time to spend on the things that are important to you: the user experience, component features, or creating more great extensions for you to use! It’ll lead to better, richer components.
Like what?
Nooku isn’t 100% “complete” yet, but there’s already a few cool extensions out there to prove my point. Take Ninjaboard for example. A neat, easy to manage forum extension, created using the Nooku Framework. Because less time had to be spent on the boring part (aka coding), they managed to implement an importer that’ll import a complete PHPBB3 forum (minus the users) in only a few minutes. In case you’re wondering… yes, that’s impressive.
Cross-compatible!
Although many developers have been working hard to create new components for Joomla 1.6, there’s still a lot of work to be done. The reason is simple: Joomla 1.5 and Joomla 1.6 are completely different beasts. If your favorite component isn’t available for Joomla 1.6 yet, that’s not because the developer is lazy, but because it’s hard work. Doesn’t it sound like a huge waste of time to completely rebuilt a component?
Nooku will change that, as well. Once Nooku is ready for Joomla 1.6 it’ll be possible for developers to build a single component, that’s compatible with both Joomla 1.5, Joomla 1.6 (and Molajo) and… why not, every new Joomla version where you can install Nooku. To quote a Nooku developer on how soon “theory” will become “reality”:
“The PHP side is ready, we only have a few JS conflicts left to solve due to 1.6 using MT 1.3 without any kind of compatibility layer.”
We even heard someone mention WordPress would be supported as well. Proof can be found here, here and here Editor’s Note: Let’s hope the Ninja’s which we stole this info for aren’t out for revenge.
That means that you, the end user, would be able to use the same component on different Joomla version – if it’s built using the Nooku Framework. I probably won’t have to tell you that this is a good thing, right? You spend less money and waste less time figuring out if “the new component still works like it did.”
Everyone is a winner!
I’m not a developer, but for me it’s clear that “we all win” with the Nooku Framework. Developers win, because it’s easier for them to build great components. End users win, because… well, their favorite developers will be building more great components. The visitors benefit, because you’ll be worrying less about troubleshooting misbehaving components.
And Joomla? Joomla wins because all the stakeholders are winning.
Editor’s note: Our commenting policy is simple: Comment away! But please, behave. Don’t make us use the “Delete button of Doom.”
And let’s not forget the Joomla Platform, to be released separately from the Joomla CMS in the next few months, will also change the game and offer a lot to developers building any sort of application – not just Joomla CMS extensions developers. As you’ve alluded to, just like we see template designers encroaching into the WordPress and Drupal market, the Joomla Platform will also offer a solution for Joomla developers to write cross-platform addons. It will also offer innovation and new features at a faster pace than the CMS release cycle, making it even more attractive to developers. Even better, all the prep work for the first release is totally public and can be found here: https://bitbucket.org/joomla/joomla-platform (after the first release, platform contributions will be handled in the normal way – well, maybe a “new normal” because we’ve switched to a DVCS).
There may be even more platforms in the future so developers will have a lot of choice (though, that brings it’s own set of complications as well, for example, which one to choose).
The Joomla Framework is definitely very promising 🙂 We already build applications using only the framework & have some really interesting Cases of how it could be used. For instance, we built a Agricultural Purchasing system using the Joomla framework a year back & are now working on a Ware house Management system ..
> And let’s not forget
I’m not sure people can forget something they’ve never heard of 😛
Sounds good, but it seems to me this is a re-invention of the wheel for the sake of re-inventing the wheel. Hopefully I will be proved wrong when the official announcement eventually appears on joomla.org 🙂
Mark, it was announced by Louis at Joomla Day USA West last year and spoken about at other events and a bit on the framework list. Easy to miss but lots of people know about it 😉 No, it’s not reinventing the wheel. It’s more like making the engine plug-and-play so that it can be used in more things than just the CMS.
Andrew, that sounds very promising! It’s great to see that Joomla! is moving forward and tries harder to keep on growing.
I believe I heard Ryan Ozimek speak of the platform, but now I understand what he was talking about 😉
Yeah, I think, no, I know it will be huge. It will allow developers to build completely new types of things while also being able to capitalise on the strength (and marketability) of the Joomla brand and the resources the project offers. Interesting and amazing times ahead 🙂
This is incorrect. Joomla 1.6 ships Mootools 1.3 including the compatibility layer to MT 1.2, which provides compatibility with all documented API of MT 1.2 (notwithstanding any bugs). However a future version may remove that compatibility.
The issue this unnamed dev has is probably that many extensions rely on Mootools 1.1.x which originally shipped with Joomla 1.5. (Mootools 1.2 is an optional part since 1.5.19) However MT 1.1 is so seriously outdated, and incompatible with most 3rd party scripts written for Mootools that it just wouldn’t have been a wise choice to stick with it.
Rouven,
That’s the reason I was given by the Nooku developers, and I have no reason to doubt him. I’m not a developer, I just did a lot of research for this post and the Nooku team explicitely gave me this reason for why the framework isn’t 1.6 compatible yet.
Wether that’s correct or not, is something you’ll have to discuss with them. 😉
Going OT now, but this is why Mootools is a poor choice for a CMS project that values backwards compatibility.
Many Jquery scripts written years ago run just fine and dandy on 1.5.1.
Joomla! Values backward compatibility?? Every major release has been a giant pain to migrate to in my experience.
Joomla! simply doesn’t care about backward compatibility. Probably that is the reason to choose Mootools.
Hi Rouven,
No that’s correct.
What’s being talked about is a compatibility layer towards Joomla! 1.5, that means that both MT 1.1 and 1.2 needs to be supported.
Or that 1.5 drops 1.1 entirely.
Either way, as long as the default library loaded in 1.5 is MT 1.1 then we can’t just drop support for it.
This is not about sticking with 1.1 at all, but supporting it and not force sites to upgrade to 1.2 when there are so many sites and extensions out there that break if they turn that on.
So again, there is no kind of compatibility layer in 1.6 similar to what the mtupgrade plugin got. This causes an significant difference between the joomla versions that causes the amount of work to stay compatible best can be unnecessary difficult, and is also why it havent been an priority to fix yet.
Also, the only layer I know for 1.2 on 1.3 is for the difference in Function.bind that in 1.3 by default got changed to follow the EC5 standard which is incompatible with how 1.2 used to do it.
You’re right that the real issue is all of the extensions that exist out there that rely on 1.1, but even though I completely agree that there’s no reason why anyone should continue using 1.1 at all when it’s already 2 (!) major versions behind, you still can’t just ignore the fact that stuff will break.
It’s kinda like the IE dilemma. You don’t want to support it because its quirks cost you lots of development time => money. But too many people use it for you to justify ignoring it.
Hope this makes things more clear.
Cheers
Hey! Thanks for your post. Very useful.
You wrote:
“That means that you, the end user, would be able to use the same component on different Joomla version –if it’s built using the Joomla Framework.”
Didn’t you mean “Nooku Framework” at the end of that paragraph?
Oops… Yeah, I meant the Nooku Framework. Will fix that right now. Thanks 🙂
You, Steven Zeegers should be hired (I know they have lots of beer to pay with) as a PR/Evangelist of Nooku, you’ve managed to explain with the right words a complex beast to non coders, hats up for that
No offence to Nooku guys, alles goed hé 🙂
I do what I can 😉
Very well written there! I’m no developer too but looks like from the way you explain it into dumb terms, I think Nooku would be a great help for all – saves time and encourages creativity and other productive work. Developers will have less headache from users too. 😉
There is also a great article here that is a bit more technical, but along with this post helped me understand a bit more about Nooku.
Pingback: Nooku is 4! « Nooku Blog
Interesting to read this just one year later. Despite the claims that NF would make it super easy and fast to create Joomla components that operated on multiple versions of Joomla we are still waiting for any signs of a release of the supposed flagship example (ninjaboard) for anything other than joomla 1.5
Yes, Johnny, I agree that it’s “interesting” to read back on this blog post as many of the things that were said back then (not by me, mind you, I just wrote the article) didn’t came to life. Apparently they are now moving away from Joomla! completely, which is their right of course. Which means this will probably be the one and only article on the topic.
I hope you don’t see this post as “misleading”, I can only work with the information I’m given 😉
No not misleading by you although clearly they have finally showed their true colours. And are doing something they always denied both publicaly and privately. If nooku was all it was claimed to be then …
🙂
Nooku has been available for Joomla 2.5 for a long time, and many extensions work well with it on Joomla 2.5.
The reasons behind the delay in migration of Ninjaboard have nothing to do with Nooku. If that were the case, then you might have seen our non-Nooku extensions already running on Joomla 2.5. We (NinjaForge) have some basic Joomla modules with only a few lines of code in them that still don’t run on Joomla 2.5. Surely you can see that the Ninjaboard delay is the fault of NinjaForge and NinjaForge alone? 🙂
Also, that Nooku will soon be standalone is a red herring. AFAIK this has always been a goal and has never been denied publicly or privately. In fact, there have been experiments blogged about in the past where Nooku was made to run in WordPress.
I think you misread the latest announcement. The fact that Nooku will no longer depend on Joomla doesn’t mean it can’t/won’t be used in Joomla. The only difference is that it can now be used to make software without using the Joomla CMS. This is identical to another recently born project called…. the Joomla Platform 🙂
Well, it’s not quite identical – it’s better to now compare it with Zend, Symfony, CakePHP or similar. The Joomla Platform has a tight, symbiotic relationship with the Joomla CMS that those external frameworks don’t. Of course the Joomla Platform ran standalone last year; no need to wait for next year 🙂 Seriously though, I don’t think their backward compatibility policy is going to be attractive to mainstream developers. And sure you can still build components on it, but then the problem for extension developers is, as it is with other frameworks, what happens when extensions X and Y use different versions of an external framework … Not easy questions to answer just from a very practical point of view.
> The problem for extension developers is, as it is with other frameworks, what happens when extensions X and Y use different versions of an external framework
Can’t argue with that.
Not every end user will be willing to use extension x if it means they can’t use extensions y and z.
On the other hand, developers want to enjoy their work (or code as a hobby) and it can be frustrating having to develop extensions with Joomla, knowing that ‘this would be so much simpler if only I used Nooku Framework’.
Every developer has their own motivations, and will choose their framework accordingly.
Hrm, threaded replies not so good (that’s wordpress for ya, hehe).
Mark said:
> it can be frustrating having to develop extensions with Joomla
I know, but improving the core Joomla code is also an option to solving those problems. For all that “it’s so much simpler in Nooku”, I think we’ve had only one or two serious discussions started (but never finished) on any development list about exactly what does make Nooku simpler, easier, better, etc (1.6 also made a lot of things simpler in many areas). The ideas site certainly voted Nooku up, but when it came to thinking about how that would actually work – silence. I still can’t understand why there is resistance to merging the many common features I know are in Nooku into the Joomla Platform. Maybe it’s just because Timble is too heavily invested in their stack they provide for commercial projects _shrug_ – who knows.
The whole claim of nooku was that it would enable developers to easily write code for all joomla versions. The fact that an employee of Trimble the company behind nooku and the lead (only) developer of ninjaforge are one and the same and yet still cant get it released says far more about nooku than it does about ninja
🙂
Unfortunately a framework doesn’t write extensions, people write extensions.
> still cant get it released
That implies a serious effort was made.
Stian worked for NinjaForge. Now he works for Timble, doing part time work for NinjaForge when he can. For the past couple of months, he has not been able to dedicate any time to NinjaForge. If fingers don’t meet keyboards, extensions don’t get developed, no matter what framework or magic code underlies the extension.
Feel free to carry on your agenda against Nooku, but using the Ninjaboard project as an example of a Nooku failure is a little silly.
This isn’t my discussion, but I’d like to point out that from what I know Stian has been rather busy on projects *not Ninjaboard*. To say that Ninjaboard development is halted because of Nooku seems strange to me, because other ‘apps’ (I know Nooku guys like that word) like Ohanah and Anahita are under constant development.
And as much as I like Ninjaboard personally, I wouldn’t go as far as labelling it as the “flagship extension” for Nooku… (No offense, Ninja’s 😀 )
Gawd, I wish J drama were more interesting if it isn’t going to be fact based. Can’t we suggest someone is having an affair or got caught sneaking drugs over the border?
I tried, but my request for Joomla-the-sitcom.com got refused… and I had it all planned out.
Serious reply: Don’t shoot the blog post writer 🙂
Amy, you need to realise that some people like to “talk” about things and we don’t have to like all the same things (gosh, it’d be a boring world if we did). It’s no different to people getting together and jibing each other when they follow different football teams. We’re developers for goodness sake – loosen up 😛
Andrew – You are the team captain of my platform software team, but I don’t follow your team, I play on it.
I am speaking of the comments. I also don’t see what the problem is, but, I must really not understand what matters to some people.
I assumed you were. I always appreciate any comments, but to be honest it baffles me that people re-opened debates after a year (or even found this post which is basically buried). Oh well. To each it’s own. 🙂
Agree.