The Dark Side of Nooku Framework

This is a guest post from Daniel Chapman, CEO and Founder of Ninjaforge, Nooku Contributor and community member.

The dark side of Nooku Framework

Drinking the Nooku coolaid can be dangerous

After we released Ninjaboard, our first major Nooku Framework based extension, Johan asked me to say a few words about what we felt about working with Nooku Framework.

Aside from Ninjaboard, we have used the Nooku Framework on a few client sites for custom work. We are also currently porting all of our major extensions over the Nooku Framework. At Ninja Forge, we are hoping to be fully Nooku Framework powered in the near future.

There has already been a lot said about the good things that the Nooku Framework has to offer so I am going to do the opposite, I am going to talk about the downsides that we discovered when using the Nooku Framework.

Leaps of faith are required

For those of you old enough to remember, there is a scene in Indiana Jones and The Last Crusade where he needs to cross a seemingly bottomless chasm. But as soon as he steps out over the chasm, he notices that there is a bridge there that wasn’t visible before from the ledge, as it appears to be part of the opposite wall.

Working with Nooku Framework often leaves you with a similar feeling to that scene. It does so many things automagically and, more importantly, correctly, that after wasting a couple of hours trying to code a solution yourself, you realize that it already does what you need it to. You just had to have a little faith and take a step forward.

In all honesty, it is quite unnerving until you get used to it, to have things just work without coding anything.

Invoices get more difficult to justify

Developing custom work is often so fast that we are finding it hard to justify invoices. On a recent job a customer asked for a quote to add some extra features – a couple of forms on the front end. Based on previous experience it would have taken me a day or two with regular Joomla/PHP coding, as I needed new controllers, views and models. However, Nooku Framework let me finish it within 20 minutes of them asking, as I only needed to code the form HTML and add some states to a request.

I made the mistake of showing it to the customer just after it was done, making it impossible to charge more than an hour’s work for it.

Charging for support now fails as a business model

For the most part, things run so well under Nooku Framework, that there are far less bugs in our code than before, meaning that customers won’t be signing up for paid support as much as before.

Extension updates from Bizzaro world

Development on Nooku Framework is progressing at a rapid pace, so much so that almost every week when we refresh our snapshot there are new features replacing what we were already doing manually, only better in most cases. The result being that updates to our extensions usually end up with more features but LESS actual code.

I have charted a graph which predicts that if the current rate of code deflation continues, our extensions will eventually need to absorb code from surrounding extensions on a site upon install in order to maintain their existence in the same time and space as the site.

Non Nooku Framework development halted

Whenever we go to work on our non Nooku Framework extensions now, we can’t help but feel limited, bored and frustrated.  If we had never used the framework then we wouldn’t know any better and so could be blissfully ignorant of the better ways of doing things. This has left us with no desire whatsoever to work on our older extensions, except to convert them to use Nooku Framework.

As you can see, there are a lot of downsides to Nooku Framework-based development, it’s not all just fun and games (though there is a lot of that)! Make sure you go into your next development project with both eyes open.

  • http://topsy.com/blog.nooku.org/2011/02/the-dark-side-of-nooku-framework/?utm_source=pingback&utm_campaign=L2 Tweets that mention The Dark Side of Nooku Framework « Nooku Blog — Topsy.com

    [...] This post was mentioned on Twitter by brian teeman, rmd Studio Inc., anahitapolis, Chris Rault, Nooku and others. Nooku said: We have a guest on our blog: The Dark Side of Nooku Framework by @daniel_chapman ! Check: http://t.co/Yb0lAmJ [...]

  • http://twitter.com/chill_creations David-Andrew

    Great post Daniel, thanks!

    I am also quitely considering using the Nooku Framework for future extensions at Chill Creations. And have also come up with a few downsides, some prpobably specific to extension developers that develop extensions as “off the shelf products”. Let me start with one:

    For developers wanting to use Nooku FW just so they don't have to migrate there extensions to Joomla! 1.6, I would say: there are many better reasons to use Nooku FW, then “just” not wanting to migrate to Joomla! 1.6. It should not be the only reason you use Nooku FW, because using it, just shifts the “version” problem. Users can now install your extension on all Joomla! websites, don't need to think about Joomla! 1.x or Joomla! 1.z. But now, they need to think about “Ninjaboard uses Nooku FW 0.7, and com_Foobar uses Nooku FW 1.0″. So the version issue is just moved. Johan told me (correct me if I am wrong) Nooku FW versions will not be backwards compatible, so as there are more extension “products” developed with Nooku FW, this problem becomes larger.

    Daniel: What is your idea on the above issue?

    Personally, it think (without having used Nooku FW) it could be possible that the time (and thus money) saved by using Nooku FW could be more then the time (and money) needed to support version issues/conflicts with other extensions that live on older Nooku FW versions. What do you think?

  • Daniel

    We have already encountered such issues, and the working solution is generally that when installing a new extension, if the included framework is older, nothing changes, if the included framework is a newer version than the one already installed, then it installs over the top.

    While it is not necessarily BC, that doesn't mean that every version of Nooku breaks the previous one, just that there are lots of features added all the time, so something developed on a newer version probably won't work on an older version. But something developed on an older version will often keep working on a newer version.

    This is especially true if you use a lot of the Nooku Automagic, because they automatically change to match the new version. It's only if you do a lot of overrides that you need to make large changes.

    This will also become a lot less of a problem once there is a stable version of Nooku out. This is bleeding edge work at the moment, and there are risks associated with that.

    However you are right that the time and money we save overall, is far greater than the time it costs to deal with those issues. It's not perfect, and may never be, but the advantages of that imperfection outweigh the disadvantages.

    One good thing about it though is that it requires you to stay on your toes and keep developing your products. I do not recommend Nooku FW for people who like to fire and forget extensions, for this reason, or they will find it crops up a lot for them.

    It has been said several times in the main Joomla camp that developers are avoiding J1.6 because they are lazy or don't like change. But I have found that developers by and large embrace change when it is an improvement.

    Every new version of Nooku we work with, adds good features, and improves existing ones, and whenever we need to re-factor code, it ends up better than it was before, which is very satisfying.

    That sort of change is easily accepted. Often more so than just staying the same.

    If the changes however were pointless or added little, then it would painful to work with Nooku, as dealing with those sorts of changes feels like you are just treading water, expending energy just to stay afloat but without progressing at all.

    Lucky for us it isn't.

  • http://www.facebook.com/people/Ken-Lyle/1253700987 Ken Lyle

    Well done, Daniel…thanks!

  • http://johan.janssens.me Johan Janssens

    David, the version problem with Nooku Framework will be solved once we move the 0.7 version into beta, which is planned for May this year. Beta means the API will be frozen and compatibility will be guaranteed.

    As I told you on the Dutch Nooku Jam, there might still be API changes before we hit 1.0 and backwards compatibility between 1.0 and previous versions is not guaranteed.

    The roadmap from 0.7 to 1.0 will be drafted once 0.7 goes beta. At that point we will also have a better idea on possible backwards compatibility issues. API changes are always documented though, which makes it fairly easy for developers to follow suit.

  • Thangbh

    Didn't start development on Nooku Framework yet, but feel really excited. One of my major concerns is can I expect Nooku Framework installation package for Joomla! 1.6+?

    Anyone can shed the light here please?

  • http://johan.janssens.me Johan Janssens

    We don't offer any installation packages during alpha phase. Installable packages will be made available once we hit beta. Nooku Framework can be installed through SVN at the moment and works on both Joomla 1.5 and 1.6. For more info visit our getting started guide on the wiki http://wiki.nooku.org

  • http://twitter.com/chill_creations David-Andrew

    Thanks for your reply, Johan! There was a misunderstanding on my part then, as I thought you said that there would never be backwards compatibility between Nooku FW versions, but you obviously said “not between alpha/beta” versions. Doh! :-)

  • http://twitter.com/chill_creations David-Andrew

    Daniel, thank you for your extensive reply as well!

  • http://johan.janssens.me Johan Janssens

    No problem. So just to be clear there won't be 100% backwards compatibility between Nook Framework versions < 1.0, once we hit 1.0 we will guarantee compatibility for all 1.x releases.

  • http://twitter.com/Torettox84 Steven Zeegers

    I'm not a developer (if only I were!), but I heard that, in theory, it'll be possible to use Nooku Framework to develop extensions that are compatible with both J! 1.5 and J! 1.6. And Nooku and Molajo, of course.

    Is that true? Just trying to learn what the new evolutions in Nooku / Molajo / etc. mean exactly. :)

  • http://johan.janssens.me Johan Janssens

    That is correct. Nooku Framework is developed as a standalone framework. It can run both in Joomla 1.5 and 1.6, Molajo, etc. We even did a proof of concept running it inside Wordpress.

    We have a few remaining compatibility issues with 1.6 we are still ironing out. Hope to include those in 0.7 alpha 2.

  • Kapil Sahu

    i have new to coding i am using joomla from 6 month since i am a MEC student i want to code for my site i know little php , know html , css completely i want to ask can i start developing in nooku framework from day 1 or i have to learn some other thing before starting coding in nooku framework please guide me & from where i should start

  • http://johan.janssens.me Johan Janssens

    Hi ! The best way to start is to sign-up for our mailing list (http://nooku.org/framework/request.html) and to read the wiki. (http://wiki.nooku.org)

blog comments powered by Disqus