9 ms·
There is something to be said about PHP's staying power. The early versions of the language weren't considered "right". Except maybe they were right for the pro
by dexen 8y ago
There is something to be said about PHP's staying power. The early versions of the language weren't considered "right". Except maybe they were right for the problem at hand.
The way I see it was PHP captured the vector of change, and left ample room for future developments. Both internal changes (hello, bytecode; hello, JIT), language level features (hi there, namespaces), and runtime level features (oh hai, countless built in classes and functions).
Moreover, unlike many framework that shone brightly and burned out quickly (Rails?), PHP captured the essence of the environment: HTTP is stateless, and URLs aren't uniformly routable from either end, and well-formed HTML/XML/JSON is just a subset of tag soup.
Worse is better.
- wbl 8y agoPHP also didn't make the mistake Perl did. A shame because Perl tried very hard to make the right thing easy with security.
- dexen 8y agomake the right thing easy with security. All other things being equal, security is usability[1] anti-pattern. You don't get to make clever hacks (in the original sense) on a secure system. Unix was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. - Doug Gwyn -- [1] at the very least for a power user or a developer
- ptx 8y agoPHP was not really designed, though. It grew accidentally from a templating system. When other systems are said to be more secure, I think it's meant in the sense of not being horrifically broken and routinely injecting untrusted input into namespaces, markup and SQL queries.
- pjmlp 8y agoJust like C grew accidentenly from a language created to bootstrap compilers and JavaScript was a hacky 10 day solution.
- ptx 8y agoWikipedia quotes[1] Rasmus Lerdorf as saying: "I don't know how to stop it, there was never any intent to write a programming language [...] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way." Another relevant quote: "I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say 'Yeah it works but you're leaking memory everywhere. Perhaps we should fix that.' I’ll just restart Apache every 10 requests." And: "For all the folks getting excited about my quotes. Here is another - Yes, I am a terrible coder, but I am probably still better than you :) " ...which is probably true, but all the more reason to use tools that work properly rather than encouraging me to build more poorly thought-out stuff on top of a broken hack. [1] https://en.wikipedia.org/wiki/PHP#cite_ref-itconversations_16-0 https://en.wikipedia.org/wiki/PHP#cite_ref-itconversations_1... [2] https://en.wikiquote.org/wiki/Rasmus_Lerdorf https://en.wikiquote.org/wiki/Rasmus_Lerdorf
- cutler 8y agoPerl's decline relative to PHP is a bit more nuanced. With mod_perl you had to be really careful with global variables otherwise another process could access them in memory. Mod_php did a better job of isolating processes so mod_perl gained a reputation as a security headache which most cheap hosting companies were not prepared to deal with. It's often overlooked that a lot of cheap hosts only offer PHP as a CGI so the benefits over Perl/CGI appear, at first glance, to be minimal but even as a CGI PHP has templating built-in where Perl, Python and Ruby don't. Perl only has CGI.pm when limited to CGI. Sure, you can try to run Perl web frameworks such a Mojolicious, Dancer and Catalyst under CGI but they're not going to compete with PHP since they don't run as drop-in templated pages. Perl did have a PHP clone - HTML::Mason - but it wasn't worth using unless you ran it with mod_perl. That's where Perl lost to PHP. When PHP gained full OOP support with PHP5 the Perl community was still tearing itself apart over introducing a MOP and which of the dozen Moose clones should reign supreme. That was the final nail in Perl's coffin, at least in it's bid to compete with PHP.
- simias 8y agoWhat's that mistake?
- wbl 8y agoPerl 6. You think Python 3 was bad?
- lizmat 8y agoHave you looked at Perl 6 recently?
- wbl 8y agoThe issue isn't the language which is great. The issue is with the development hell sapping resources from the community
- arbie 8y agoI think it's a given that Perl6 will not achieve the prevalence that Perl5 has.
- b2gills 8y agoIt's pretty much a given that no language will ever be able to achieve that again.
- simias 8y agoAh, of course. But IIRC Perl usage on the web already started to decline (mainly in favor of PHP) before the whole Perl 6 debacle. I think PHP's strength was also its weakness: an amalgamation of specialized functions thrown into a global namespace without having to bother with modules, CPAN or anything. If you're an experienced dev it looks like a huge mess but if you're a complete beginner it makes it easier to work with.
- kaoD 8y ago> URLs aren't uniformly routable from either end What do you mean?
- dexen 8y agoHaving a single, uniform router (function/class/whatever) is only valid for trivial software. Any non-trivial system is better off with multiple independent URL routers with different semantics.
- coldtea 8y agoAnd yet lots of non-trivial systems have a single uniform router and are just fine with that. So there's that.
- petepete 8y agoI agree with just about all of your post except using Rails as an example of something that burnt out quickly. It was the most popular web framework around for the best part of a decade and is still being chosen for new projects.
- wolco 8y agoRails was never the most popular framework. But for a certain geography it was. Those were the anti-java crowd.
- pjmlp 8y agoRails was popular among those that never saw such approaches before, like on AOLServer and Zope. I just kept using Java, .NET and C++, while enjoying their performance, IDE tooling, and whatever ideas they could bring into their web stacks. Nowadays most cool companies that were pushing Ruby, are on JVM languages.
- petepete 8y agoI think your view is skewed and doesn't reflect what actually happened in the mid-00s.
- wolco 8y agoAll views are correct. Look at the number of jobs in cities around the world. Ruby was 1 in California but no where else during that time period.
- pjmlp 8y agoSkewed from European enterprises point of view. I only got to know one start-up doing Ruby (not Rails), which happened to rewrite our Perl deployment scripts as a project subcontractor, as they didn't had anyone with Perl knowledge.
- the_trapper 8y agoI think PHP endures because it does one thing and does it exceptionally well. There is no other tool that makes the creation of simple dynamic server side web sites as easy and accessible. Simple FTP/SCP deployment to the server is such a killer feature. It is also one of the few choices available on cheap shared hosting sites.
- kijin 8y agoPHP was practically "serverless" before serverless was even a thing. You just deploy your code with ftp, rsync, git, or whatever. There's no step 2.
- michaelmrose 8y agoHow is syncing your PHP code with the server serverless?
- ronsor 8y agoand now you see why "serverless" is misleading. "serverless" now means you don't run your own web server, you use someone else's.
- daeken 8y agoThat's not what serverless means. It means that your code isn't running on a specific server, and between requests it isn't in any kind of running state whatsoever. It's effectively in cold storage until it's needed, then it's pushed to a frontend/edge server and run. Serverless doesn't mean that there's no servers anywhere, but rather that you don't have a webserver or set of webservers that your code is on; it goes onto a webserver when it's needed, and not before.
- captn3m0 8y agoserverless and compute-on-edge are different things.
- yllus 8y agoI think PHP had a couple of obvious advantages - it almost had a "first mover" advantage in that it happened to be installed alongside CGI-BIN on shared webhosts way back in the way - plus Drupal and WordPress being PHP projects. But to me, one of the most significant advantages PHP has is that its documentation is terrific. PHP.net is simple, clear about parameters and return values (as clear as PHP lets it be anyways) and best of all has a terrific comments / examples section for each function. Better documented is better.
- pushpop 8y agoThings may have changed since v7 but historically I’ve not found PHPs documentation any better than any other language. In fact I remember a few occasions where I’ve ended up going by the advice of the comments rather than the documentation itself because the documentation was either out dated or just plain wrong.
- chiefalchemist 8y agoPerhaps not better, but there certainly have been worse. As for the comments. Yes. But at least they're there, and quite often helpful. Plenty of times I've read other docs where I wished they had commenting but alas didn't.
- ptx 8y agoThe comments are only needed because the documentation is often wrong or confused. And, of course, usually most of the comments are wrong too. Other languages don't need comments because they at least aim to have documentation that's correct.
- chiefalchemist 8y agoI don't see it that way. The comments are there to prevent others from re-inventing the wheel, to share insights, etc. Yes, sometimes that also highlights a "bug" or some other "flaw" but that's the rare exception. Maybe it would help if you listed some links to language docs that you feel the rest should use as benchmarks?
- ChrisSD 8y agoPart of its staying power is also due to Wordpress. If you're looking for an off the shelf CMS you'll almost certainly be considering Wordpress, Drupal, Joomla, et al.
- lucb1e 8y agoI could be wrong, but I think the ubiquity of those frameworks/CMSes is rather due to the language's success rather than vice versa. Web hosts made the near universal decision to support PHP as a dynamic language at some point, and the frameworks that were built in PHP then thrived on that. Wordpress wasn't that popular back when I started out with PHP, but PHP was already universally supported by web hosts (hence my learning it). The switch from, uh, I don't know what came before (Perl? Or just a jumble of different languages called by CGI?), to PHP as universal dynamic hosting language, is before my time though.
- ChrisSD 8y agoFrom my memory (which is not the most reliable source) it was a co-dependent relationship initially. PHP gained acceptance as a language for open source web projects, which lead to the likes of phpBB and Wordpress which in turn lead to PHP gaining even more presence on the web. I think the staying power of php is at least in part due to the continued success of popular projects that rely on it, whoever was responsible for its initial successes.
- cthalupa 8y agoAs someone who worked in the hosting industry before moving to supporting and consulting on cloud stuff, it's a couple of things. A handful of projects really are the driving reason for PHP's ubiquity. Wordpress/Joomla, phpBB/Invision/vBulletin, Magento... The demand for support for these and some smaller and similar projects really drove webhosts to need to support PHP, and for a lot of the standardized tooling webhosts used, such as cPanel/WHM and Plesk, to support not only PHP, but the automated installation of these projects. Sure, WordPress wasn't the first - phpNuke, Postnuke, etc, were really popular CMS tools before WP, but if we're talking staying power, you really can look at the stuff I listed as being why it has stuck around.
- deleted 8y ago[deleted]
- dmortin 8y ago> There is something to be said about PHP's staying power. The only reason I use php for my own sites is because I don't want to administer any server and I don't want to be tied to a provider. PHP is a good fit for this, because it's available at practically all cheap hosting providers (I don't need to administer the server with shared hosting) and I'm not tied to a single provider, because I can switch to an other hosting provider without too much effort. With other langauges I either have to manage my own VPS (I don't want to pay for managed VPS), or I'm tied to a provider (Appengine, etc.).
- pjmlp 8y agoSame here, I used to wrestle with PHP, then I just accepted that the best path to make a productive use of my time was just to use it, the same way as you do.
- amelius 8y agoAnother thing PHP had was good reference documentation with a comments section for every function.
- inoop 8y agoSystems that are difficult to reason about are difficult to replace.
- chungleong 8y agoI once wrote a post comparing PHP to the Zerg in StarCraft. It's ugly as hell yet manages to spread everywhere. Purity of Essence trumps Purity of Form. PHP let you defeat competitors wielding superior technology through rapid time to market. A zergling rush, if you will.
- int_19h 8y agoIt wasn't right, no. I remember going "WTF" repeatedly even back in 2000, while first learning it and then using it in a commercial project. It's mostly that everything else was either worse (ASP), or insanely overengineered (JSP), or both (ColdFusion). Also, with LAMP, you had a stack that was free top-to-bottom. Back then, it still wasn't as common as it is in the industry today, and that especially helped it in the hobbyist and small business niche.