3 ms·
It also gets a bad rap on HN because it is just not a very good language. There are much better alternatives, and those alternatives are now really easy to use
by nbouscal 13y ago
It also gets a bad rap on HN because it is just not a very good language. There are much better alternatives, and those alternatives are now really easy to use and deploy. Yes, there are good PHP developers, and they can make it work. I like to think I'm one of them. That said, if you give me the choice, I will pick almost any other language over PHP, no questions asked. It's not just warts (though there are plenty of those), the language has deep fundamental flaws.
Relevant: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-de...
- coldtea 13y ago>It also gets a bad rap on HN because it is just not a very good language. It's not the language, it's the ecosystem. All languages have imperfections. Javascript, which does not have a "bad rap" on HN is even worse.
- nbouscal 13y agoJavascript has some really, really bad parts. It also has some very good parts. PHP has the former, but not really the latter. The most common argument made for it is that it's drop-in-and-go, so you don't have to worry about things like application servers or deployment strategies. I would argue that that's the worst thing about PHP. Languages (and frameworks, etc) are well characterized by what they make easy. PHP makes it really easy to do things really wrong.
- coldtea 13y ago>Javascript has some really, really bad parts. It also has some very good parts. PHP has the former, but not really the latter. Not so sure. PHP is equally dynamic (what with closures et al), with very good reflection style features. It has an ACTUAL hash instead of using objects a dict. It has better arithmetic, not the FP horror of Javascript. It has a class system -- which is something people seem to like and desperately try to imitate in Javascript in 200 ways (very few seem to appreciate prototypical inheritance as is). It now has generators and traits. Generally, not that shabby. It's greatest sin is the hodgepodge that it's standard libraries are. But, given their shortcomings and arbitrary APIs, there are quite complete, feature wise.
- nbouscal 13y agoIt has a class system that was bolted on after the fact, leading to tons of inconsistencies. It has "closures", but they're not proper lexical closures since you have to explicitly declare what part of the lexical scope you want your anonymous functions to have access to (rather than the interpreter figuring out the free variables like a sane implementation). Named functions can't even do that much (the fact that they're separate implementations being an indicator that they're designed poorly. Unsurprising, given anonymous functions were added post hoc). If by "good reflection style features" you mean the god-awful isset-on-every-line-of-code garbage, I'll pass, thank you. It's Turing complete and can get the job done, yes, but there's absolutely no part of it that I would call "very good". The best it ever reaches, in my experience (several years, for what little that's worth), is "doesn't quite make me want to vomit". (Yes, I'm a bit bigoted towards PHP. I recognize that. Having to write it every day can do that to a person.)