[Radiant] Radiant Plugins and Philosophy

Josh Ferguson josh at besquared.net
Thu Jul 13 17:48:21 CDT 2006


Core's objection to engines is that the pieces are too big. Engines 
encapsulate essentially an entire application, whole vertical slices of 
functionality. The view of core on this is that if you want an 
application then build an application, you most likely aren't going to 
drop in more than one engine at a time ever since the slices are so big 
and most likely won't work with one another without some major 
modification on your part so what's the point in having them pluggable? 
It makes more sense to just download a complete application and go from 
there. Adding mroe than one large vertical slices of functionality most 
often leads to collisions where two plugins are overwriting the some 
pieces of the same classes or views, that is why it's useless to have a 
system where you can install more than one.

That being said the other thing I dislike about engines is that engines 
start out with the philosophy of 'the engine is your application' and 
then you can override views in your application. This is completely 
opposite of what makes sense in our situation, where your application is 
your application and the views you already have get overridden by the 
plugins in the engine.

I think the right idea is to actually start with a core set of 
functionality and then build out applications from there. Because even 
if we get some 'plugin engine' system working, you're only going to be 
able to install one of these 'plugin engines' simply because the 
vertical slices would have to overlap one another otherwise. you 
couldn't have two plugin engines that override one view for instance, it 
just doesn't make sense.

And since you're only going to be able to install one, you might as well 
just make it overwrite the core application you had previously so that 
it's easier to develop and you don't have to work inside two /app 
directories which makes life hell.

Just my 10000 cents..:) Sorry for the longs posts

josh @ besquared

Jay Levitt wrote:
> John W. Long wrote:
>   
>> Jay Levitt wrote:
>>     
>>>> Yup. We do. If this is ugly and hard to maintain against the current 
>>>> Rails code base I'd like to see if we can get the core changes we need 
>>>> pushed back into Rails. It seems like views and routing are the hard 
>>>> spots right now. It should be much easier to create plugins with views 
>>>> that use existing layouts, but Rails makes this hard because it only 
>>>> allows a controller to use one directory structure as it's base view 
>>>> directory.
>>>>         
>>> Aren't these (mostly) exactly the same problems that Engines solve?
>>>       
>> But that's what I mean. The fact that when people start trying to write 
>> applications in Rails that have plugins, they seem to go down the same 
>> route. To me this indicates that something generic needs to be pushed 
>> back into Rails core.
>>     
>
> I agree.. I think DHH has some fundamental (though unstated) objection 
> to Engines that keep them out of the core.  The impression I get is that 
> he thinks we ain't gonna need it, even though we already do.
>
> Jay
>
>   
>> --
>> John Long
>> http://wiseheartdesign.com
>> _______________________________________________
>> Radiant mailing list
>> Radiant at lists.radiantcms.org
>> http://lists.radiantcms.org/mailman/listinfo/radiant
>>     
>
> _______________________________________________
> Radiant mailing list
> Radiant at lists.radiantcms.org
> http://lists.radiantcms.org/mailman/listinfo/radiant
>
>   




More information about the Radiant mailing list