Tuesday, September 30, 2014

Re: The (bad) perception and image of CakePHP in the public

So I am a little afraid to jump into this, but I do feel like I can perhaps shed some light on the perception issue because I have a bit of a negative perception myself - but just about the documentation.  I have to admit that I am surprised that this seems like a mystery to some. 

I decided a couple of years ago to abandon Zend based on the direction it was going with ever increasing abstraction (and configuration complexity).  As a quick aside, I might be what you call a Cowboy Coder, but I've have been writing applications, front ends, back ends, tiered web applications, etc. for over 20 years in more languages than I care to count at the moment.  Cake PHP seemed to be the perfect complement of simplicity and flexibility for my needs.  Plus, you can stand up a CRUD application in minutes and it just works out of the box.

So, what's not to like?  Well, most of my applications are not simple CRUD apps and I am usually connecting to data sources (either databases or service APIs) that I don't control.  So of course that leads to custom configs and solutions that I need to code from scratch.  No problem, I like to code.  So maybe I am not looking in the right place for documentation, but I very rarely find what I need in the documentation.  If you stick to very simple apps using the standard conventions, you can find documentation for most things and examples for a few less things.  But there is nowhere (that I can find) a place to find an exhaustive doc on all of the available options (and how to set them) let alone examples of how to do so.  So thank God for stackoverflow where about 50% of the time I can find something that will point me toward a solution, but most of the time I end up just hacking away at options or looking at the CakePHP source code to figure how how things work.  My biggest issues have been with complex lookups using either custom queries, foreign keys that don't follow CakePHP conventions, multi-table joins, and the like. 

So for now I love the framework for all of its other features enough to stick with it.  Sometimes, though,  when it takes me more time just to figure out how CakePHP would want me to appraoch my problem that to have just coded the whole thing from scratch, I wonder if it is a good thing to stick with it.

I suspect that at least one big issue may be that the documentation is written in the DRY philosophy where nothing is repeated.  This is great for coding, but hard for a CakePHP newby when they have to hyperlink to six or seven different places to try to wrap their head around a concept.

On Monday, September 29, 2014 5:15:54 PM UTC-4, Florian Krämer wrote:
In the official CakePHP Facebook group Yanuar Nurcahyo asked about opinions on that link http://www.quora.com/Why-isnt-Cakephp-popular-despite-being-one-of-the-earliest-php-framework-to-be-written

I'll quote my own comment I've added to that posting:

I'm a little shocked about the wrong information people spreading there as well as the amount of false information. Especially the one that got 4 up-votes. Most of the answers there read like FUD or written by people who can't or won't read documentation. Also I really don't get why people always "need" bleeding edge php support. There is no urgent need or do you migrate you app / server to a new php version just because it's cool? The only problem that CakePHP has is an image problem.

What I would like to discuss in this thread is reasons and solution to them. Why has CakePHP such a negative perception? The thing that bothers me personally the most is why the *uck do people say it has a bad documentation? Seriously, I don't get it. Can't they find the documentation? Can't they use it? Or is it really just FUD by some <random-framework> fanboys?

The "stone age php version" isn't a very valid argument IMHO. Yes, I agree, CakePHP felt behind other frameworks for at least ~2 years and I've missed the namespace support more than one time. But that was really the only language feature I was really missing. Everything else is sugar on top of the cake. I don't know if other people update their servers and apps for fun and if they do the required testing for free for their clients...but well, looks like some guys out there have more a cowboy-coder attitude than a professional one.

Also I don't get why people complain about the architecture of CakePHP, yes it is different, yes it gives you everything out of the box and isn't a package made of 100 loose libs and then glued together. This is IMHO actually an advantage and makes it easy to get started with it. And seriously, how often do you change the ORM stack of <random-framework> in reality? And on top of that, CakePHP 3.0, as far as I can tell, is more decoupled than 2.0 was. For example the face pattern in Laravel is, as far as I've worked with it and understood it, just one way you can use for dependency injection. The face seems to works like a proxy. I might be wrong, I haven't spent much time with it yet. SF2 is using a container object to deal with the dependencies. However, my point here is other frameworks appear to be more fancy and by this attract people who are looking for fancy things, "interesting" design patterns and architecture. Which brings us back to the cowboy-coder attitude. Something doesn't has to be fancy to just work.

I know that for example Symfony gets a lot attention and exposure through having virtually one domain per component of their framework and a nice design for these sites and for whatever reason Symfony manages it somehow to get massive funding. Creating all these pages and a fancy design takes time and money. So I don't think doing something similar would be an option for CakePHP. Honestly I have no ideas what could be done to help making CakePHP look better (and stop these silly guys from spreading FUD). I would not mind all their critics at all if they would bring valid and detailed arguments. But everybody complaining about CakePHP is just repeating other peoples FUD about a bad documentation and not exactly mentioning what is wrong with the architecture. Going into a discussion is like going into a fight without a weapon. But well, the problem here is nobody fights these false "arguments". :(

I personally don't mind using Symfony2 or Laravel, they're good frameworks as well, but I don't think that CakePHP 3.0 has to hide in any aspect, nor had Cake2 when it was new. But CakePHP has a completely different philosophy than SF2 and Laravel, obviously one that people are not used to.

So, has anyone constructive critics about that? Maybe others here don't even think CakePHP has a problem with it's perception?

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: