|
From: <an...@io...> - 2005-07-18 20:35:54
|
Teemu is on a vacation this week so I'll try to answer for him since I
think this is quite an important topic.
Salve J Nilsen wrote:
> Basicly I agree with you, but I also think the question of "wether or
> not OI2 is a CMS (or has a clear end-user decipherable mission statement)" isn't
> the most important question at this stage. Today, I think we're much better
> off if we try to make OI2 as developer-friendly as possible.
I think Teemu was trying to say that setting goals and guidelines is a
very important part of making OI2 developer-friendly. I agree that is it
mainly important for the end users who write their applications on OI2,
but the fact is that we will probably never get people on board who are
just OI2 developers - their motivation will always (at least in the
beginning) be their own application which runs on OI2. It's just the way
open source projects usually work.
Also I think that it is very hard to make something easy to develop if
there are no guides on what is the preferred outcome. It's like coding
with bad specs - you hack up something and hope that it is suitable.
This is not a good way to encourage contributing to OI2 itself.
> To do this, it may help to point out that OI2 isn't a _product_, but a
> _project_. Asking product questions (e.g. "Does it do A") can be useful, but
> not nearly as much as asking project questions (e.g. "Can someone help me write
> feature A" or "How can we make it easy for someone to write the A
> feature").
OI2 might be a project but that does not mean that every piece of code
written on OI2 should part of that project. OI2 is an excellent platform
to extend in the direction of your needs, but those developer needs
which aren't already addressed by OI2 are hardly ever general enough to
be used by most people who might benefit from building their application
on OI2. For this we have packages and an excellent management framework.
The questions from the people who are interested in OI2 are more
probably going to be: "How easy does using OI2 makes it for me to do A?"
and "Has someone already done A on OI2 and could I benefit from it?" and
thus these are also the questions we should be thinking when we develop OI2.
A huge part of addressing the first question id to provide a clear,
detailed mission statement and a bug repository + documentation stating
which features are missing or buggy and need more work.
The second question can be addressed by providing a repository of easy
to use packages or compilations of packages, which can be adapted or
extended to your specific needs.
Answering to the second question is IMO not part of actual OI2
development, but it is a vital part for OI2 to success as an application
platform. I think we should make it an another project which would build
OI2 packages that provide different functionality and then compile a
demonstration application(s) from these packages for OI2.
I think this is the best way we can help OI2 to advance as a project
since the more people write their applications on OI2, the more we can
identify places where OI2 should be developed futrher to achieve our
mission - and we will probably even get help for doing it.
I think that if OI2 has no clear mission, everybody will concentrate
more on building their own missions and OI2 will always remain just half
made everything.
> OI2 is an open source project, dammit. Why bother with the self-scrutinizing
> philosophical questions when we can change the world with code? We _have_ the
> freedom to do watever we want, and _that_ is why I'm sure you can mold OI2 into
> whatever you want it to be... :-)
Open source project is just like any other project: to succeed it needs
good management. Lonesome coders hacking away as they see fit is not
going to end up being everything we all need.
We need to discuss the directions where we are going so that we can
benefit on each others work. I can write a million hello worlds within
an hour by using OI2 and some code generation, but it is not going to
change the world.
> Chris, is it feasible to give people access to improve the website?
To suddenly change the mission statement the way one wants it instead of
discussing it with all the others first? ;)
> What's more important? That new users and developers can get a site up and
> running easily, or that experienced developers have a "clean install" to
> work from?
In my opinnion both are important and they are in no way conflicting
goals. Ofcourse it is very important to have example code or even an
example system you can build upon if it _happens_ to fit your needs. But
building upon the example code should IMO not be the expected usage.
I think the expected usage should be that you pick a collection of the
example modules you need and build your application using those.
> Should OI2 _only_ be an application framework, or should it also be usable
> ("out-of-the-box") as a corporate intranet? Or a collaboration tool for a
> volunteer organization? Or a generic frontend for a database? Should we be
> allowed to choose?
I think OI2 should be _only_ an application framework. Simply said.
I think that if you have built up a corporate intranet on top of OI2 you
should name it OpenInteract2 Corporate Intranet and publish the
compilation of packages you have used in a different site or a project
hosting OI2 apps, which OI2 site can then link to so that those building
their own corporate intranets can have almost out of the box
functionality, but those who are building a frontend for database don't
have to mind their head if they can remove your corporate intranet
package XY from their fresh website install without breaking the whole
system.
There are unlimited uses of OI2 and many of them DO conflict with each
other. This is why none of them should be included in OI2 base install
but somewhere else.
>> Although the lower level functionality is important, sometimes these also do
>> not serve the purposes.
> (A little off topic here: I think it would have been _much_ better if you
> improved OI2 instead of replacing parts of it. :)
What do you mean by improving OI2?
We have only 2 patches against the OI2 cvs tree, of which one is already
obsolete because of the changes in OI2 tree and the other is already
reported in JIRA and is being discussed - we can't just go and commit
the code before discussing with Chris even if we have commit access to CVS.
Then we have our own version of many of the factory classes in OI2, but
even many of those changes are either discussed on the dev list or
reported in JIRA as change suggestions.
Then we have some packages which are used to test some approaches and
which in the end _might_ end up into OI2 as ideas, but are currently
implemented so that they are not near generally usable. On the other
hand they might provide to be immense crap.
Also there is lots of code which will never find it's way into OI2
because it's application specific. I very much doubt that Chris would
want our bloated security framework into OI2 since the whole structure
is heavily dependent on our applications view on groups and users and we
ignore SPOPS securities for management reasons.
If somebody, for some reason, needs similiar group and security
implementation, they are very welcome to check what we have done. It's
in the CVS and it's very liberally licenced. But it definately is not a
general approach that should be provided as the default one for OI2.
On top of our specific focus, we have limited resources and tight
schedules, like everybody in this business has. We just simply don't
have the time to plan and test our approaches as long as we find a way
that might be integratable with OI2. Usually the good ideas grow in time
and they need a lot of experimenting in different directions to evolve
to a general state. We can't just decide that we will make everything as
general as possible to be incorporated into OI2 core even if we wanted
to. We do what we can given the resources, but usually the output is far
from general and reusable Brick. When it evolves, maybe? But the sad
fact is that we can't dump the customers who pay our bread to go on a
crusade to build a better world - we are already making as many stabs as
we can towards that goal.
For example we are not just trying to persuade you to see OI2 as solely
an application framework just because we use it as one. We think that it
would be the right thing to do for most of OI2's users.
> Just do it...
>
> For example, find the parts of Dicole which are (almost) general enough for
> everybody to use, and find a way to move it out of Dicole and into OI2
> instead.
What makes you think that we are not doing it the best we can? The
abundance of my oi-dev posts? ;)
We can't just decide ourselves that OI2 needs this and that and
completely wreck the CVS without asking anyone. We have to discuss and
agree about things - like the things we are talking about in this mail
thread.
- Antti
|