On Wed, Oct 21, 2009 at 1:42 PM, mdipierro <mdipie...@cs.depaul.edu> wrote:

>
> Every time we discuss this we spend time on semantic issues and I
> would rather not enter into this discussion.
>

Semantics would be about different meanings for the same / similar terms;

The problem here is not semantics, but fuzzy definition - use of a term that
has different meaning than apparent use.


>
> What I want:
>
> 1) ability to built applications in a more modular fashion ({{=LOAD
> ()}} provides that)
>

That's fine - dynamic loading is but one way to accomplish this, and I hear
you value that.

This - however - is incongruent with "each app should distribute it's
plugins" - that is simply tangential, and (worse in my view) a sign of
completely unnecessary coupling, and appears contradictory to "modular"
desire.

(Meaning - not semantics)

2) ability to take a piece of an app out and reuse in another app (the
> "plugin_" prefix and some conventions could allow this)
>

First - the PREFIX method is ... archaic, and creates a interweaving of
source (spaghetti!) with an existing app.  It feels messy, and the only
thing I heard arguing for it is that you understand how to implement this.
It LOOKS LIKE design coupling (intermixing code with unrelated, supposedly
modularly distinct code) - bad idea in my book.

That you are calling for tools to install and uninstall this coupled weave
is a red flag;  that, because the code is editable, such tools are likely to
be fragile is also a bad indicator.

These are all signs that this design needs more thinking, is not ready.


> 3) the ability for some special types of app (CMS) to auto-discover
> certain special types of plugins (like in Drupal) and change
> accordingly (we do not have this yet because I am not sure what the
> requirements are).
>

Fine - still more need for definition (e.g. requirements, and clarity of
meanings).

>
> The purpose of a plugin, as I intend it, is not to replace the concept
> of python modules (i.e. pieces of codes that you import once and are
> available everywhere), it is not to create a new new complex system of
> dependencies between web2py objects (which would be nightmare), and it
> is not to create a new mechanism for installing/uninstalling
> applications (or pieces of an application). This means an app can
> depend on a plugin but plugins should not depend on each other, a
> plugin can be designed for a specific class of apps.
>

All of this, and your correct observation that we get into discussions of
meaning (not at all semantics) is a sign that this design work is not done.
Every time I see this, I shudder, and ask "what are you doing?"

I would suggest to throw all the hacking out, and start with what you want
(forget about arbitrary "app must distribute plugin" - that too is but an
artifact for incompletely thought out design, as if discovery where there,
then auto-loading, ala shared library concept would be possible, and all
that would be needed is a specification of what plugin should be in the
system, and a graceful behavior set in the lack of presence of that.

*sigh*

- Yarko

>
> My goal is always to simplify the "web2py experience" not make it more
> complex.
>
> Massimo
>
> On Oct 21, 1:18 pm, Yarko Tymciurak <resultsinsoftw...@gmail.com>
> wrote:
> > On Wed, Oct 21, 2009 at 1:14 PM, Alex Fanjul <alex.fan...@gmail.com>
> wrote:
> > >  I think that the best  cms "framework" for take a sight in it is
> Drupal
> > > and his great plugin system...
> > > It has core plugins and optional (downloadable plugins). Firefox is not
> > > comparable because all of them are "optional" type,
> >
> > I respectfully state that this is the difference between a component (not
> > optional, part of a build) and a "plugin" (plug in ==>  insert or
> remove).
> >
> > > you can not choose if you want to use gecko engine (for example)
> > > It would be great to have a "web2py-centraplugin.com" to download or
> find
> > > all of them...
> >
> > > alex f
> >
> > > El 21/10/2009 20:03, Yarko Tymciurak escribió:
> >
> > > On Wed, Oct 21, 2009 at 11:41 AM, mdipierro <mdipie...@cs.depaul.edu
> >wrote:
> >
> > >> This is up to the developer. You can choose to store all plugins in
> > >> one app and have other apps call them
> >
> > > *sigh*
> >
> > >> {{=LOAD(...,application='otherapp')}}
> >
> > >> The fact is that if you distribute or compile an app, all plugins
> > >> should stay with it.
> >
> > > "should"?  Several cases in point:
> >
> > > - shared libraries are not distributed (and consider the reasons that
> > > exists over static linking)
> > > - Firefox is NOT distributed with all plugins - the end user adds those
> he
> > > wants to use (think of the reasons);
> > > - a "survey" plugin.... how will it be added by the person who
> downloads a
> > > (for example) wiki app?
> >
> > > The entire concept of "plugin" and it's purposes, and motivation needs
> to
> > > be explicit.
> >
> > > I am concerned we do not be holding a mouse and calling it a tiger...
> >
> > >> Moreover it should be possible for two apps to
> > >> use two different version of the same plugins since we cannot
> > >> guanartee creators of plugins will not break backward compatibility
> > >> and we cannot guarantee the non-existance of plugins with the same
> > >> name. They belong to the app but you can share them.
> >
> > >> Massimo
> >
> > >> On Oct 21, 11:25 am, Yarko Tymciurak <resultsinsoftw...@gmail.com>
> > >> wrote:
> > >>  > On Wed, Oct 21, 2009 at 11:16 AM, mr.freeze <nat...@freezable.com>
> > >> wrote:
> >
> > >> > > I like how the plugin system is shaping up but have one question
> about
> > >> > > the folder structure. It seems more manageable to structure it
> like
> > >> > > this:
> >
> > >> > > applications
> > >> > > -- my app
> > >> > > ---- models
> > >> > > ---- views
> > >> > > ---- controllers
> > >> > > ---- plugins
> > >> > > ------ myplugin
> > >> > > -------- models
> > >> > > -------- views
> > >> > > -------- controllers
> >
> > >> > > This way a plugin would basically be a sub-app, making it easier
> to
> > >> > > install/uninstall/upgrade and could also have multiple
> models/views/
> > >> > > controllers.  I remember some discussion about it but can't
> remember
> > >> > > what the reasons against it were.
> >
> > >> > <sarcasm flag UP>
> > >> > ...yes, with the added benefit that you get to make copies and
> copies of
> > >> > plugins into every applications that needs it, woohooo!...
> > >> > </sarcasm>
> >
> > >> > Seriously, folks - think about plugins in other systems.
> > >> > Plugins need to be that - logically, I expect them to be per web2py
> > >> > installation (not as a component within an application);
> > >> > Logically, I also _might_ like to see them versionsed, so that
> pluginA
> > >> has a
> > >> > DEFAULT version which links to a specific version (without talking
> about
> > >> the
> > >> > mechanism for that "linking").
> >
> > >> > > On Oct 21, 10:18 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> > >> > > > The new web2py in trunk (1.68.2) also contains an improved
> > >> > > > experimental solution for plugins.
> > >> > > > Here is a new video about it
> >
> > >> > > >http://www.vimeo.com/7182692
> >
> > >> > > > It includes suggestions from various people but I am sure it
> still
> > >> > > > needs a lot of work. Anyway, give it a try and let us know what
> else
> > >> > > > would you expect from a plugin system.
> >
> > >> > > > The interface for uploading/downloading plugins is missing,
> among
> > >> > > > other things.
> >
> > >> > > > Massimo
> >
> > > --
> > > Alejandro Fanjul Fdez.
> > > alex.fan...@gmail.com
> > >www.mhproject.org
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to