Hello SilverStripe Developers/Community,
I have a bit of debate on my hands about SilverStripe and its capabilities I would ask you as the community to please address these comments/concerns:
Also these concerns are being raised in relation to using cakePHP instead.
1. The speed of development. This includes both the time it takes to learn a new system, and the time it takes to actually code components.
Poor documentation - Documentation is extremely lacking with SilverStripe in comparison to alternatives, and this has a negative impact both on the amount of time it takes to train new staff and to use the system ourselves.
Poor system architecture - The system itself does not lend itself to rapid development. Other alternatives do.
Furthermore, I believe that the time it takes to learn and implement a new framework would still amount to less time than attempting to implement it in SilverStripe.
2. The potential growth of the core system. This basically amounts to the ability to rework the system to handle more complex systems in the future. I assume that future projects may include greater complexity.
Lack of flexibility - SilverStripe's architecture is such that it does not lend itself to uses outside of very basic relational systems. As we begin to create systems for clients with increasingly complex membership structures or billing tracking requirements, this will only prove to be a greater and greater obstacle. As complexity increases, we will be forced to use more and more unorthodox methods to achieve our goals. I cannot stress this more: SilverStripe is not intended for web application design.
Lack of scalability - SilverStripe is an extremely heavy system. Its architecture may be fine for serving static pages of content that are not often changed, but using it to handle a frequently updated set of data (membership, transaction, and bonus tracking) will almost definitely see negative performance in comparison to other frameworks. Furthermore, higher hardware requirements associated with SilverStripe means higher overhead costs.
Quality of product - Using SilverStripe will force the use of unorthodox and unrecommended coding practices to achieve our required functionality. This will result in a product that exhibits unpredictable behavior. I don't have to tell you what will happen if our end product is poor quality, as you're already experiencing the client side of that with our old system.
Other points to consider:
SilverStripe is a CMS (Content Management System), not a framework. As its name suggests, a CMS's primary purpose is for managing content, not application design. CMSs and frameworks are apples and oranges.
Just because SilverStripe is able to handle a dozen languages does not mean that it is appropriate for application development. Its current uses at our company do not even come close to what we have to accomplish for the core product. Furthermore, we are capable of producing a quality product that is multi-language capable with any other framework.
The use of a hybrid system (i.e. SilverStripe to handle content and a framework to handle the web application) is not a problem. If properly designed, we can make the transition seamless for the user. In other words, changing frameworks will not mean having to throw out work done in SilverStripe.
SilverStripe offers zero advantage over any other framework except for the fact that it has a CMS built in. Having a built in CMS should not be the basis of choosing a platform for a highly complex web application.
Any claims that development with SilverStripe are null when compared to the time it takes to fully learn the system by trial and error.
We do not require any external contracting if we select a good framework.
*Note* By the way the above is not my opnion at all, there are vaild points I agree on like documentation and yes some of the SS implemention is not the best design out there, I have been using it for around three years and the more I use it the more flexible it becomes, it does have a high cost for learning but in my opinion it is well worth it.