Enough about PHP already!

(304 comments)

Much has been said about how PHP is a bad programming language. I personally don't believe PHP is a bad programming language because of specific misfeatures. Instead, I believe the general community culture of programming is horribly broken and so results in such garbage. I identify three key points that inevitably leads to such garbage as PHP:

  1. Software users are often highly ignorant of technical computer details and broken software behaviour is often very non obvious.
  2. Existing government regulation on software serves the needs of big business and not the users who need protection most.
  3. There is not a compelling enough argument to reuse existing well-tested and strongly-principled software.

I believe that these three key points enforce a broken software developer culture that inevitably creates garbage such as PHP.

Software users are often highly ignorant of technical computer details. These users simply do not know or care about SQL injection, stack smashing bugs, unencrypted network connections or other important computer security issues. Furthermore, such failures are highly non obvious to the average user. If a doctor gets something wrong the patient might get sick and die. If a software developer gets something wrong then an arbitrary code execution bug could lurk until twenty or more years later. This results in software users not caring for and not buying secure and well-built software. This gives software developers no economic reason to bother with secure or well-built software. And so they do not.

Existing government regulation on software serves the needs of big business and not the users who need protection most. This regulation often focuses on targeting malicious software hackers and not on the shitty software that lets them in. This is totally mistaken and fundamentally broken. First of all, people from foreign countries (or state actors) often simply do not care about your local laws. Secondly, such laws can only punish people after the fact of a hack and not prevent such hacks in the first place. In order to prevent such hacks governments need to focus on the real root of the problem which is the broken software that lets hackers in.

There is not a compelling enough argument to reuse existing well-tested and strongly-principled software. There are people who do in fact make formally verified software that is proven to be secure against bugs. They are usually in academia, charge very large sums of money to governments or are a mixture of the two. In general, such software is some of difficult to setup, unsupported, locked away in a proprietary license or costs lots of money. Therefore, nobody uses this kind of software.

Basic facts about modern day life enforce a broken software development culture which leads inevitably to crap such as PHP. You can mock PHP's awfulness but as long as these facts of modern life remain the software industry will continue to be broken and continue to churn out garbage. So, enough about PHP already!

Current rating: 2.7

Comments

Comment deleted 10 months, 4 weeks ago

Comment deleted 10 months, 2 weeks ago

Comment deleted 10 months, 2 weeks ago

Comment deleted 10 months, 2 weeks ago

Comment deleted 10 months, 1 week ago

Comment deleted 10 months, 1 week ago

Comment deleted 10 months, 1 week ago

Comment deleted 10 months, 1 week ago

Comment deleted 10 months ago

Comment deleted 10 months ago

Comment deleted 10 months ago

Comment deleted 9 months, 3 weeks ago

Comment deleted 9 months, 3 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 2 weeks ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment deleted 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months, 1 week ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 9 months ago

Comment awaiting approval 8 months, 4 weeks ago

Comment awaiting approval 8 months, 4 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 3 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 2 weeks ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months, 1 week ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 8 months ago

Comment awaiting approval 7 months, 4 weeks ago

Comment awaiting approval 7 months, 4 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 3 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 2 weeks ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months, 1 week ago

Comment awaiting approval 7 months ago

Comment awaiting approval 7 months ago

Comment awaiting approval 7 months ago

Comment awaiting approval 7 months ago

Comment awaiting approval 7 months ago

Comment awaiting approval 6 months, 4 weeks ago

Comment awaiting approval 6 months, 3 weeks ago

Comment awaiting approval 6 months, 2 weeks ago

Comment awaiting approval 6 months, 2 weeks ago

Comment awaiting approval 6 months, 2 weeks ago

Comment awaiting approval 6 months, 2 weeks ago

Comment awaiting approval 6 months ago

Comment awaiting approval 6 months ago

Comment awaiting approval 5 months, 2 weeks ago

Comment awaiting approval 5 months, 2 weeks ago

Comment awaiting approval 5 months, 2 weeks ago

Comment awaiting approval 5 months, 2 weeks ago

Comment awaiting approval 5 months, 2 weeks ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months, 1 week ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 5 months ago

Comment awaiting approval 4 months, 4 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 3 weeks ago

Comment awaiting approval 4 months, 2 weeks ago

Comment awaiting approval 4 months, 2 weeks ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months, 1 week ago

Comment awaiting approval 4 months ago

Comment awaiting approval 4 months ago

Comment awaiting approval 3 months, 4 weeks ago

Comment awaiting approval 3 months, 4 weeks ago

Comment awaiting approval 3 months, 4 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 3 weeks ago

Comment awaiting approval 3 months, 2 weeks ago

Comment awaiting approval 3 months, 2 weeks ago

Comment awaiting approval 3 months, 2 weeks ago

Comment awaiting approval 3 months, 2 weeks ago

Comment awaiting approval 3 months, 1 week ago

Comment awaiting approval 3 months, 1 week ago

Comment awaiting approval 3 months, 1 week ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 3 months ago

Comment awaiting approval 2 months, 4 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 3 weeks ago

Comment awaiting approval 2 months, 2 weeks ago

Comment awaiting approval 2 months, 2 weeks ago

Comment awaiting approval 2 months, 2 weeks ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months, 1 week ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 2 months ago

Comment awaiting approval 1 month, 4 weeks ago

Comment awaiting approval 1 month, 4 weeks ago

Comment awaiting approval 1 month, 4 weeks ago

Comment awaiting approval 1 month, 3 weeks ago

Comment awaiting approval 1 month, 2 weeks ago

Comment awaiting approval 1 month, 2 weeks ago

Comment awaiting approval 1 month, 2 weeks ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month, 1 week ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 1 month ago

Comment awaiting approval 4 weeks, 1 day ago

Comment awaiting approval 4 weeks, 1 day ago

Comment awaiting approval 4 weeks, 1 day ago

Comment awaiting approval 3 weeks, 6 days ago

Comment awaiting approval 3 weeks, 4 days ago

Comment awaiting approval 3 weeks, 4 days ago

Comment awaiting approval 3 weeks, 1 day ago

Comment awaiting approval 3 weeks ago

Comment awaiting approval 3 weeks ago

Comment awaiting approval 3 weeks ago

Comment awaiting approval 2 weeks, 6 days ago

Comment awaiting approval 2 weeks, 4 days ago

Comment awaiting approval 2 weeks, 3 days ago

Comment awaiting approval 2 weeks, 2 days ago

Comment awaiting approval 2 weeks ago

Comment awaiting approval 1 week, 6 days ago

Comment awaiting approval 1 week, 4 days ago

Comment awaiting approval 1 week, 3 days ago

Comment awaiting approval 1 week, 3 days ago

Comment awaiting approval 1 week, 3 days ago

Comment awaiting approval 1 week, 1 day ago

Comment awaiting approval 1 week, 1 day ago

Comment awaiting approval 6 days, 19 hours ago

Comment awaiting approval 6 days, 5 hours ago

Comment awaiting approval 6 days, 3 hours ago

Comment awaiting approval 6 days ago

Comment awaiting approval 4 days, 12 hours ago

Comment awaiting approval 1 day, 16 hours ago

Comment awaiting approval 1 day, 1 hour ago

New Comment

required

required (not published)

optional

required