Actions

LimeSurvey roadmap: Difference between revisions

From LimeSurvey Manual

No edit summary
No edit summary
Line 5: Line 5:


Two years ago the development of completely new version of LimeSurvey, namely LimeSurvey 2 (short:LS2) was started. LS2 was developed in chunks during the last two years but until this day it remains far behind the current version of LimeSurvey 1.x. This has several reasons:
Two years ago the development of completely new version of LimeSurvey, namely LimeSurvey 2 (short:LS2) was started. LS2 was developed in chunks during the last two years but until this day it remains far behind the current version of LimeSurvey 1.x. This has several reasons:
*CakePHP as PHP framework proved to be not dynamic enough. While CakePHP can made to do all the things we required of it, the effort involved in achieving these things was far greater than we had expected or desired. This became more obvious as work progressed and things became more complicated to code and install. Optimisations also take a lot of effort. In general CakePHP was way slower than the current LimeSurvey 1.
*CakePHP as PHP framework proved not dynamic enough. While CakePHP can be made to do all the things we required of it, the effort involved in achieving these things was far greater than we had expected or desired. This became more obvious as work progressed and things became more complicated to code and install. Optimisations also take a lot of effort. In general CakePHP was way slower than the current LimeSurvey 1.
*Except for specific, one-off directed efforts like Google Summer of Code the development stalled because we had no persistent LS2 contributors in the team
*Except for specific, one-off directed efforts like Google Summer of Code the development stalled because we had no persistent LS2 contributors in the team
*The current LS1 development team is all focused on LimeSurvey 1 which is used by several thousand users and so the feedback of the community and any support is focused on LimeSurvey 1. CakePHP has a steep learning curve and currently none of the existing LS1 developers is able to put their mind to it. There is little likelihood that this will change in the future.
*The current LS1 development team is all focused on LimeSurvey 1 which is used by several thousand users and so the feedback of the community and any support is focused on LimeSurvey 1. CakePHP has a steep learning curve and currently none of the existing LS1 developers is able to put their mind to it. There is little likelihood that this will change in the future.
Line 12: Line 12:
=What now?=
=What now?=


Considered the type of past development activities on LimeSurvey 2 and the underlying problems with the non-existent development resources it was agreed in the development team that the future of LimeSurvey will take a new turn. This new way will circumvent most of the problems above by taking a slow and evolving approach. The following basic steps will be taken:
Considering the history of development activity for LimeSurvey 2 and the underlying problems of its development, the development team has decided that the future of LimeSurvey will take a new turn. This new way will circumvent most of the problems above by taking a slow and evolving approach. The following basic steps will be taken:
*Instead of trying to rewrite such a huge application from scratch we will slowly rewrite LimeSurvey 1. That way we will still have full community and developers support - LimeSurvey 1 will keep evolving and even during the rewrite phase we will be able to have new releases
*Instead of trying to rewrite such a huge application from scratch we will slowly rewrite LimeSurvey 1. That way we will still have full community and developers support - LimeSurvey 1 will keep evolving and even during the rewrite phase we will be able to have new releases
*Instead of CakePHP we will use the CodeIgniter PHP framwork. CodeIgniter has been proved to be very stable, fast, flexible, actively developed and in many things it is very close to existing libraries already used in LimeSurvey 1 (like AdoDB). That minimizes the learning curve for existing LS1 developers and we can still run the old and new architecture side by side in the same application.
*Instead of CakePHP we will use the CodeIgniter PHP framwork. CodeIgniter has been proved to be very stable, fast, flexible, actively developed and in many things it is very close to existing libraries already used in LimeSurvey 1 (like AdoDB). That minimizes the learning curve for existing LS1 developers and we can still run the old and new architecture side by side in the same application.

Revision as of 12:06, 9 February 2011

Contents:

Background

Two years ago the development of completely new version of LimeSurvey, namely LimeSurvey 2 (short:LS2) was started. LS2 was developed in chunks during the last two years but until this day it remains far behind the current version of LimeSurvey 1.x. This has several reasons:

  • CakePHP as PHP framework proved not dynamic enough. While CakePHP can be made to do all the things we required of it, the effort involved in achieving these things was far greater than we had expected or desired. This became more obvious as work progressed and things became more complicated to code and install. Optimisations also take a lot of effort. In general CakePHP was way slower than the current LimeSurvey 1.
  • Except for specific, one-off directed efforts like Google Summer of Code the development stalled because we had no persistent LS2 contributors in the team
  • The current LS1 development team is all focused on LimeSurvey 1 which is used by several thousand users and so the feedback of the community and any support is focused on LimeSurvey 1. CakePHP has a steep learning curve and currently none of the existing LS1 developers is able to put their mind to it. There is little likelihood that this will change in the future.
  • Even if we put lots of development resources into LS2 right now it would still take another year until at least basic functionality in all common areas will be achieved - and even that will only represent a small fraction of the current LS1 feature set.

What now?

Considering the history of development activity for LimeSurvey 2 and the underlying problems of its development, the development team has decided that the future of LimeSurvey will take a new turn. This new way will circumvent most of the problems above by taking a slow and evolving approach. The following basic steps will be taken:

  • Instead of trying to rewrite such a huge application from scratch we will slowly rewrite LimeSurvey 1. That way we will still have full community and developers support - LimeSurvey 1 will keep evolving and even during the rewrite phase we will be able to have new releases
  • Instead of CakePHP we will use the CodeIgniter PHP framwork. CodeIgniter has been proved to be very stable, fast, flexible, actively developed and in many things it is very close to existing libraries already used in LimeSurvey 1 (like AdoDB). That minimizes the learning curve for existing LS1 developers and we can still run the old and new architecture side by side in the same application.
  • Concepts that have been elaborated for LS2 aren't automatically obsolete - on the contrary they can be implemented while LimeSurvey is evolving.
  • Last but not least: Baby steps - we will get to our goals eventually but if we go slow we won't stumble.

This new develpment approach will allow us to reach our goal of a modular application which separates content from logic accoroding to MVC standards.

Timeline

We are currently working out a detailed timeline. Please bear with us - however the first step is pretty clear:

  • Summer 2011: Google Summer of Code students will be working on rewriting big parts of the LimeSurvey 1 code to CodeIgniter, starting with the front-end (survey taking) and parts of the administration. Detailed steps can be found in the worked out GSOC tasks, once these are prepared.