I'm not at all surprised Magento is number 3. I've never seen anything so simultaneously overly- and poorly-engineered.
It's like someone combined the worst parts of 10-year-old Java (XML configurations over conventions, AbstractEntityBeanFactory-style classes) and PHP (no namespace, autoloading override plugins) into one awful mess. Throw in the use of EAV everywhere, and the "schema" is a nightmare to decipher.
Maybe version 2 fixes some of these issues, but Magento 1.x is awful.
Comments
I'm not at all surprised Magento is number 3. I've never seen anything so simultaneously overly- and poorly-engineered.
It's like someone combined the worst parts of 10-year-old Java (XML configurations over conventions, AbstractEntityBeanFactory-style classes) and PHP (no namespace, autoloading override plugins) into one awful mess. Throw in the use of EAV everywhere, and the "schema" is a nightmare to decipher.
Maybe version 2 fixes some of these issues, but Magento 1.x is awful.
Magento 2 fixes the "no namespace" issue. Everything else is still there, and some parts are taken to eleven.
A while ago, I ran PHPStorm's code inspections against Magento 1.x core code, and the result wasn't very encouraging: https://imgur.com/RMxWEgR