Hi all,
Ok ... so this is a tough one. Please not that the following is a mildly
sarcastic joke: while we're at it ... could we please just move to Java
for Chamilo 2. That would solve most problems and frustrations and give
us access to a complete set of widely supported libraries that have
really proven themselves (Hibernate, anyone?)
Back to the serious world. I can see where this is coming from. Truth be
told, if I had to restart today with Chamilo 2 ... or actually if I were
the one starting ... then some other decisions might have been made.
Sadly enough we've been around for a while now. I started working on
Chamilo 2 back in February 2007. If my sources are correct that's about
the time symfony 1.0 was released. Zend Framework 1.0 was released a few
months later (somewhere in the summer of 2007 if memory serves me well?)
So where does that leave us now: with a modest framework (and that's
such a "heavy" word) which doesn't offer all the functionality giants
like ZF or S offer, but doesn't really need it either IMO. I'm not
saying we should reinvent the wheel every single time, but at the very
least we should make sure the wheel fits our Cars (© Pixar / Disney). I
welcome ideas like using the Doctrine DBAL for access to DBMS storage
engines. But, and I could be wrong about this of course, to me there is
big difference between actually using something for a specific piece of
functionality and using it as the basis for your entire platform. I can
live with (and like) the first, but the second, at this point in time
... well ... A (virtual) Bridge Too Far (even if it features Laurence
Olivier and Michael Caine)
You could simply use whatever you need from whichever framework as a
library, but considering most of them are integrated solutions, that
just seems like creating extra - unwanted - overhead. Do we really want
to have both the ZF classes for dealing with HTTP Requests AND the
symfony classes for dealing with HTTP Requests included in our project?
(in response too: why not have more then one in there)
I know this all sounds quite negative, but sadly enough I have to work
in the real world ... even though I'd much prefer to live in Utopia,
where I can keep on breaking (a modest number of) things to move on to
better architectures, ideas, concepts and whatnots.
Btw. what is the current status of (stable releases for) symfony 2
and/or ZF 2?
Best regards,
Hans
PS. Don't worry, I know this might not be the "popular" point of view,
but someone has to say it. (or anything at least)
On 30/03/2011 15:22, Nautile Bleu wrote:
Personally, I advocate maximum reuse of existing (and proven)
solutions. That's why I've choose symfony (with a lowercase s) 6 years
about to develop our current LMS, and that allows our very small team
(2 people) to have a working solution that, while not being as
complete as chamilo, has been sufficient for 4 years.
I will also add that I understand the goal of Chamilo is to support
open-source e-learning, so our role is not the reinvent everything
that is not directly tied to e-learning but to build efficient
e-learning tools. As our resources are limited, I think we should
focus on things that are specific and important to elearning (SCORM,
courses management, portfolio, etc.), the same way Ubuntu focuses on
user experience and based its effort on the proven Debian
distribution. So I'd say that build on a proven framework seems to me
a good solution.
That being said, my preference would go to Symfony2 because :
* I've work with symfony1 ;) , and even if there's no compatibility
between to two, I recognize myself in the way the framework evolve
(Symfony2 is essentially a PHP port of the Python framework django
that is my preferred environment)
* Beside the code quality, the main reason I've chosen Symfony was the
documentation. I don't know if it change but at the time ZF doc was
very poor.
About speed (and quality in general): Symfony2 has became one of the
two major frameworks and some of their developers are (or have been)
PHP core developers. So most of time, I don't how we can write better
code than them. They have also done an interesting work on caching [1]
and on distributing their bundles (which can be interesting for our
package manager)
About the codebase size: I don't really see what the problem is. Even
if Symfony2 is a quite big project, it's just dozen of Mb, nothing
really important those days. On the other side, Symfony2 is not really
sized to run on free web hosting which may be a problem (but not for
me) Also Symfony assumes that you have access to CLI on the server (or
at least, it really help) Another aspect is that I think we should not
included the framework in the project but create a project that relies
on the framework, to facilitate code updates (at least with minor
versions) For example, the eFront LMS is based on the ZF, but the last
time I've check I notice it included a quite old release.
About the freedom: the main problem is if one day the Symfony2 project
goes in a direction that is not the Chamilo's one. Or just if the
project evolves faster than we can follow. This is one of the problem
we face with our current LMS, that is blocked with symfony 1.0 and
Propel1.2. But I would say that the structure of the framework (a
bunch of components that adheres to the "loose coupling, tight
cohesion" [2], another thing "stolen" from django) allows us, if one
component goes in a direction that doesn't fit our needs, to replace
it (even if it doesn't completely remove the problem of the cost of
this replacement)
About the licence, IANAL but I would say that include a BSD licensed
project within a GPL3 one is not a problem (opposite to the contrary.)
Like Yannick, I think one of the major questions would be how to
handle the migration. It has to be as smooth as possible. I know that
Sensio, the company behind Symfony2 has already done such migrations
for some customers (DailyMotion has migrated from a custom PHP
framework to parts of Symfony2, the front controller and the routing
being the first steps). I've also read a presentation[3] about how to
migrate from symfony 1 to Symfony2 : it's quite general but it give
some clues about how to do this.
Furthermore, we increase the likeliness of having
developers with Zend/Symfony experience getting into our project, which
couldn't be bad.
Also agree.
Regards,
Goulwen
[1]: http://www.slideshare.net/fabpot/caching-on-the-edge-with-symfony2
[2]: http://c2.com/cgi/wiki?CouplingAndCohesion
[3]: http://www.slideshare.net/marchugon/quid-de-vos-applications-symfony-1/
_______________________________________________
Dev mailing list
Dev@lists.chamilo.org
http://lists.chamilo.org/listinfo/dev
Hi all,
I'm not (really) experienced enough to answer this one either (although
I love the question), but I'm taking the opportunity to remind you to
check the license of each one. I know that the Zend license has
"improved", but it was previously an unclear license.
This being said, I have been impressed with the latest efforts of Zend
to improve communication (a lot of good quality technical articles
published).
As far as I'm concerned it is much better for a team with limited
resources to rely on a reknown solution. As far as these are also open
solutions, we can still patch them if we find a bug and they don't solve
it fast enough. Furthermore, we increase the likeliness of having
developers with Zend/Symfony experience getting into our project, which
couldn't be bad.
Finally, however, I don't really think it would help at this time to
include new dependencies unless it can be done smoothly without reducing
the stability of the platform as a whole...
Yannick
El mar, 29-03-2011 a las 12:49 +0200, Philippe Van Eerdenbrugghe
escribió:
> I'm currently thinking about the Froncontroller refactoring and try to
> get some inspiration where it is.
>
> While going through the doc of Symfony I'm asking myself "why not use it
> directly ?"
>
> The answer seems obvious : one more dependency ... and a big one !
>
> but on the other hand we will introduce one more dependency every time
> we try not to reinvent the wheel so why might it still be a problem ?
>
> -> performance ?
> Actually I'm pretty sure the professionnaly written and tested code of
> Symfony will probably more performant tha anything we write naively.
> -> codebase size ?
> Is that really a problem
> -> freedom ?
> Might definitely be a problem if we consider Symfony as a Framework but
> we can also consider it as a Library and only use parts of it which we
> call (I basically call framework something that calls your code and
> library some code that we call). Symfony2 has been written as a
> Framework around libraries and deliberately be designed in order to
> enable project to use it as a Library.
>
>
>
> Then we go to the question : if we add SF2 as a dependency why not add
> Zend Framework (which is also designed to be a library) or anything else
> ? I have no answer to that question (except for the size of the
> codebase) but this is why I'm asking you, what do you think of adding
> such a big library as a potential dependency ?
>
> Systho
>
> _______________________________________________
> Dev mailing list
> Dev@lists.chamilo.org
> http://lists.chamilo.org/listinfo/dev
_______________________________________________
Dev mailing list
Dev@lists.chamilo.org
http://lists.chamilo.org/listinfo/dev
--
*Hans De Bisschop*
Hoofddeskundige ICTO | Lead Developer Chamilo 2.0
Software Coordinator Chamilo Association
Erasmushogeschool Brussel
Nijverheidskaai 170 | B-1070 Brussel
T 02 559 02 54 | i 254
hans.de.bissc...@ehb.be <mailto:hans.de.bissc...@ehb.be> |
www.erasmushogeschool.be <http://www.erasmushogeschool.be/>
Kom eens langs: www.erasmushogeschool.be/infodagen
<http://www.erasmushogeschool.be/infodagen>
of lees onze elektronische nieuwsbrief: ehbrief.ehb.be
<http://ehbrief.ehb.be/>
P Before printing, think about the environment
_______________________________________________
Dev mailing list
Dev@lists.chamilo.org
http://lists.chamilo.org/listinfo/dev