97% of web programming is text validation, database interaction, simple text parsing, simple image manipulation and simple socket work. ALL languages are capable of doing that. So it's irrelevant whether you choose Php, Python, Ruby, Perl, ASP, CFM, etc. The other 3% of web programming is for high complex enterprise web sites. These are web sites that require such critical decisions because every single microsecond of processing counts since they deal with hundreds of millions of daily requests. Odds are if you are ever at that level to make those decisions with your web site you are so well off you can afford to pay a team to come up with a solution and spend the time working out the kinks with more complex languages and hardware. Personally I prefer PHP but only due to the current community involvement. I switched to PHP for Web Programming from Perl for that reason alone. PHP is only easier to write bad code. It's a little work to produce GOOD code.
I prefer PHP because its more raw in a sense, simple, web oriented, easy to deploy. Pyhton is nice for some lightweight apps, but you start to use bigger frameworks like Django then it can become really cumbersome. You need to know a lot of framework specific stuff to make it work. A lot of importing stuff and underscoring makes it ugly (for me).
Even with PHP once you add a Framework there's quite the overhead and "a lot of framework specific stuff to make it work".
Interesting. Would Facebook be considered a "high complex enterprise web site"? Facebook uses PHP to program. Granted, they also use Hiphop to translate the PHP to C++. But, with this method, they get the best of all worlds. An easy language to program with in PHP (possible too easy, which makes it easy to code badly too), and an optimized and very efficient machine code through C++ translation and compilation. I don't even know Python and don't really care to learn it. I think it is just as much hype around it as there is around Ruby. That is not to say, I think those languages are not to be used. Quite the contrary. As one person pointed out, it comes down to what you need it for. PHP has advantages and disadvantages, as does any language. Knowing them and taking advantage of the advantages and avoiding the disadvantages is what is key, no matter what language you learn and it is the hardest part about becoming proficient in any language. Here is a cool article as to why Facebook still uses PHP. Edit: here is the link. http://www.zdnet.com/blog/facebook/why-facebook-hasnt-ditched-php/9536 To the owner, it sucks not being able to create links as a noob here. Scott
Yeah, but a lot of (web) framework functionality is already a part of the PHP. You are not enforced to know all the specific framework details to make something simple.
Your definition of a Web Framework may be very different than the actual definition of a framework. Take a look at Zend. PHP is not shipped with "specific framework details" out of the box.
I think what he means is that with PHP, there's NO NEED for a framework - just create your classes and functions and build on that - directly utilizing PHPs easy coding opportunities. Frameworks add cumbersome (sometimes useful, mostly not) top layers onto PHPs already complex rendering engine, which is rarely needed. Hence, Frameworks for PHP is usually not what they're hyped up to be. (Yes, they can provide ready-made functions for specific tasks, but so can a built-up library of generic PHP-classes and functions you've built yourself over the years) - the benefit of a proper PHP-framework is if multiple developers need to work on the same project, and know the same Framework - then it might be beneficial. Problem is that usually Frameworks are built with "common ground" principle - ie, which functions are our users using the most - and you usually have to deviate from that a bit to build stuff that falls off the beaten path. Besides, some of the more popular Frameworks out there are still using (albeit to some extent, secured) mysql_ instead of more modern interpretations of the db-layer.
You have the ability to create classes and functions in all programming languages. So you can apply that statement to any programming language.
Yes, but not every programming language has as easy to grasp concepts as PHP, especially with procedural programming (however, that would of course make the point of classes moot), and definitely not as easy to put together anything without using a framework - or interpreter. And, besides, no you don't. Depends on the programming language, of course, but not all