5 ms·
As a hobbyist and freelancer I don't use any of these 'bigger issues' (saner function support, optional strong typing, named params maybe, operator overloading.
by Thiz 13y ago
As a hobbyist and freelancer I don't use any of these 'bigger issues' (saner function support, optional strong typing, named params maybe, operator overloading.) for my casual projects.
So no, I'd benefit the most with a cleaner syntax than with cooking unicorns in fairy sauce. And I believe 80% of casual programmers agree with me.
Pareto wins.
- aaronem 13y agoSyntactic headaches mean less than semantic ones. PHP fails to support, or supports quite poorly, many semantics which more competently designed languages handle well. If PHP is your primary, or worse your only, programming language, then this deficit leaves you at a disadvantage when it comes to growing more skilled in your craft, because after a while you're not learning new things which generalize across languages, but rather learning how to work around the famously irreducible piles of manure unique to PHP. You can get quite good at doing that, of course, and it's even a useful professional skill, there being so much PHP code in the world, and most of it awful. But doing so does not make you a better programmer, because at best it teaches you nothing useful about how to use less programmer-hostile languages, and at worst it inculcates habits which will prove actively harmful in any later effort to develop skills in such languages. That you are unable to appreciate this qualitative distinction does nothing to erase its existence, but it does provide an excellent example of the conceptual deficiencies which result from a PHP-centric perspective on programming -- even something as trivial as proper first-class functions you dismiss as "cooking unicorns in fairy sauce", and since PHP doesn't have them, how would you know otherwise? Whether you choose to address these deficits in your education is, of course, entirely your lookout. I'm just here to point out that they exist. You're free to argue otherwise, should you so choose, but you'll be wrong to do so; I speak here from experience gained in working with people who similarly mistook PHP for a worthwhile general-purpose web development language, who began their programming careers by specializing in it, and who in so doing unwittingly stunted their professional growth in precisely the manner I describe. Some overcame it, and matured into truly professional programmers with whom it was a pleasure to work; some did not, and most of those, as far as I've been able to keep track, eventually drifted out of the field entirely. All, having been seduced by that syphilitic temptress of innocents we call PHP, suffered unduly as a result. (I'd have been among them myself if not for early exposure to Perl, which for all its warts is a thousand times preferable to PHP; having cut my teeth on a language which is merely bad, I was equipped in my first encounter with PHP to recognize the legendarily awful when I saw it.) It's for reasons like these that, to borrow a quote from the UNIX-HATERS Handbook, "I'm rather surprised that [Rasmus Lerdorf] is still walking around alive"; indeed, long may he continue to do so, for if there's a special hell for programmers, then in its frozen ninth circle there must surely be a waiting hole in the ice with his name carved around the edge -- or, just possibly, a throne.
- mikegioia 13y agoThis went from "insightful" to "rant" pretty quickly. I was with you until "mistook PHP for a worthwhile general-purpose web development language". That's exactly what PHP is, a worthwile general-purpose web development language. I understand your grievances with PHP's semantic issues, and I can appreciate that PHP's lack of support for newer, common language paradigms inhibits growth in professional development. But you replied to a guy who starts his comment with "As a hobbyist". Most of what PHP is used for is for small web development projects that in no way need optional strong typing and full functional support. At the beginning of your comment you say that if PHP is your only programming language than this deficit leaves you at a disadvantage. Well no shit! There's no silver bullet language that can do everything for everyone 100% of the time. In one breath you lambaste using PHP as your only language; in another you identify that PHP's lack of support for x, y, and z cause the developer to stagnate in learning new things. It seems you condemn using PHP for everything, and then are upset that it can't do everything! To this I would say use the right tool for the job.
- aaronem 13y agoYou seem to see "insightful" and "rant" as mutually exclusive. I don't agree, but that's merely a quibble; to address the meat of your response, I say that, while of course you're right that no language is ideal in all cases, PHP exists in a unique local pessimum compounded of its attractiveness to novice programmers and its unmatched ability to hamper them from learning lessons they will find useful in becoming familiar with languages other than PHP -- indeed, it is far more successful at making it harder, not easier, for novices to gain a grasp of any other language, and it is precisely this trap which incurs my loathing. Small web development projects, as you say, do not require strong typing, first-class functions, &c. But they certainly can in many cases be improved by these capabilities, and, in any case, few languages which offer them outright require their use; meanwhile, a language which either fails entirely to offer them, or worse offers a broken, awful version of such functionality to newbies who are not equipped to recognize such enormities and are thus vulnerable to the fallacy that that's how such things are and should be done everywhere, is one which can inflict enormous harm on people who frankly don't know enough yet to look out for themselves -- precisely the sort of people, in other words, which PHP so successfully attracts, through its presentation as the right tool for every web-facing job. Perhaps you mistook my colorful phrase, "that syphilitic temptress of innocents", for mere hyperbole, and failed to recognize it as the precise, if metaphorical, description which it is. If you have so mistaken me, then I hope this comment helps to clear up the matter somewhat.