Why does everything need to be integrated into a framework?


There is occasionally people asking about things such as “Is there an integration for X in framework Y”

Then they are disappointed when it isn’t, acting as if it’s a really bad thing.

But why do things need to be integrated to begin with?


A lot of people asking for these integrations seem to be from a Ruby on Rails background. It’s understandable considering there are lots of integrations for all sorts of libraries like unit testing tools and such for RoR.

However, I think it’s actually not such a great idea to integrate everything.

A very good example about this was quite recently when a person was asking if there’s an integration of any browser testing tools for Zend Framework. Something like Selenium or such.

As far as I know, there aren’t any for ZF, but why do you even need one?

This person was a Ruby on Rails developer, and had already learned a browser testing library, which was integrated into RoR itself. Infact, it was integrated so deeply he couldn’t use it for anything but RoR itself.

What if there is no integration?

Now, what if there was no such integration at all for Rails?

He probably would have learned to use Selenium. After learning to use Selenium, he would have been able to use a tool which is completely technology agnostic. Selenium works with Rails, ZF, Django, anything you throw at it. It’s a much better skill to have than some Rails-specific library.

One could argue that integrated libraries give you a productivity boost. While it may be so, I think the main boost you get is the very first steps: It’s easier to get started, but after that the benefit fades. In the long run, it may even turn into a poor investment in general, as you could have learned a general purpose tool instead.

So next time you’re looking for something that integrates into the framework of your choice, consider the other options too. It may prove much more beneficial.