Better yet, avoid the php ecosystem completely and go for a more mature one, even the python and ruby frameworks have better long term prospects than most php based stuff.
The biggest downside is that you'll find it harder to find programmers, the upside is that you'll find fewer 'absolute beginners' and interviewing will be a bit easier (fewer respondents, higher overall quality).
I'm writing this as a very long time PHP user that also spent considerable time on the drupal offerings.
That said, I hate Drupal with a passion (I don't get to make the choices at my current place and it's D.O.D Government work) and would rather work with WordPress if a CMS based on PHP is absolutely necessary, their user interface is much, much more friendly - and as a programmer I hate views, panels and all that other cruft I'm forced to work with because "that's the Drupal way."
Edit: Oh yeah, unless they've recently changed it, they store PHP serialized data in the databases, and full urls for the website, so moving domains is quite the fun times and you need a special plugin to do so (even as simple as going from dev.example.com to example.com breaks the serialized strings if you just run some queries on the database). The fact that they store whole urls with domain and everything in the database like that has always skeeved me out.
I've been working with Drupal for 7 years now and have worked with lots of other frameworks and langs in that time. I've had a hot/cold relationship with Drupal for the whole time, and have lately (since D8) had a substantial thaw with my attitude toward Drupal. It's nice because in the last several years of hating it but getting to know it really well, I've come out on the other side being able to get things done in very little time.
So back to the original question - what would recommend instead (and frameworks don't count)? It's got to be something that a non programmer can build their project with.
I agree it has gotten better on many fronts since the old days but plenty of my old reservations against drupal still (surprisingly, I expected those would be major focal points for improvement) hold today.
> It's got to be something that a non programmer can build their project with.
That's a huge restriction, and in fact, if a non-programmer can build a project on a self hosted platform then you're essentially asking for trouble with respect to security and future maintenance. I don't really believe such a system could be made if it is at the same time required to be secure and reasonably scalable, unless it is hosted and kept up-to-date and secure by another party.
The fact that wordpress.com is raking in the money is an indication that for simple websites this is definitely a market opportunity, and given the frequency with which self-hosted wordpress sites get hacked the 'non programmer' restriction would seem to be the cause of a bit of a problem. It's like asking for a car that can be constructed by a non-mechanic.
I think that's a good analogy actually, but that's the market. Honestly, I think to try and move into the market that WP has so tidily sewn up would be a waste of time and energy so Drupal has aimed for the higher end of the market - large institutions and companies with content mgmt needs. Also, in my (admittedly biased) perspective, Drupal provides vastly more interesting work opportunities than Wordpress ever could. That's why I chose to invest my time in learning it all those years ago.
> if a non-programmer can build a project on a self hosted platform then you're essentially asking for trouble with respect to security and future maintenance
Granted, but programmers are at least as likely to spawn security holes by being given a more powerful weapon. Relatively simple things like XSS and SQLi can be taken care of for a user who's not touching the code while they build their project. The strong params feature in Rails was a result of a gaping security hole in what I would consider to be the bellwether of good framework design. Mistakes are made.
So you still haven't named a better alternative ;)
In my opinion, I sort of agree - Drupal is the worst CMS, except for all the rest of them.
An extremely customizable cms for non-programmers as far as I know does not exist, including drupal, so we don't actually agree, it's just that you've limited the scope to the point where there is only the one alternative left and that alternative suits your particular use case.
Agreed that drupal is a more interesting environment than wordpress, many of the same restrictions and gripes apply to both platforms and drupal seems to attract the occasional wordpress user because of increased flexibility.
I will say that I think it's a noble goal to allow non programmers to build something powerful, but in my experience it translates to programmers being able to build features insanely quickly rather than handing that power over to non programmers. Maybe it's different in other sectors.
There is a whole eco-system around drupal of consultants who know just a little bit more than their clients to get them back out of the trouble they're in.
Agree with everything you said except this, PHP has recently undergone an renaissance in development, 7 is a huge step forwards (proper AST, the start of an optional type syste, 100% speedup, half the memory usage - I've actually seen these changes on stuff I'm running), composer and the PSR's also helped a great deal.
I expect the split on python/ruby/php to remain pretty constant, Python stuff remains excellent but they aren't doing anything revolutionary in terms of the Web story, Ruby with RoR has made some excellent changes in the new release but in terms of impact I don't think they exceed anything available on PHP.
I'll happily agree that PHP is a horrible language but it's also incredibly productive to program in if you avoid the warty parts (getting easier to do) and approach it like a Python (which I also am) programmer would in terms of writing good maintainable code.
The comment on developers is accurate, there are a lot of PHP "programmers" who fall short of the average in the Python or Ruby community however the total pool of good PHP developers is likely (I don't have metrics so I'm guessing on that one) larger than the total pool of good Python (web anyway, python is everywhere) and Ruby web devs just on community size.
I don't regard having to winnow the chaff a big problem, I'd sooner have more good applicants (in absolute terms) mixed in with a lot of bad applicants than having way less good applicants in a different language.
That said your advice on using Symfony2 or something else over Drupal is extremely valid and I can say that as I used Drupal for a couple of years and ran into all the usual issues (worked fine for non-logged in, fell over with a few hundred logged in users), as a nice way to generate largely static content for end users it's just about acceptable but people seem determined to not use it for that, whether you can blame Drupal for that or the end users is an interesting question I guess.
I now don't use Drupal anymore, although I might occasionally whip it out for a site that only requires a few admins to log in...