In 2008, I bought a book titled “PHP 6″. Six years later, PHP version is still 5.5

In 2008, I bought a book titled “PHP 6″. Six years later, PHP version is still 5.5

Yes. Wordpress is crap

wordpress is an unauthenticated remote shell that, as a useful side feature, also contains a blog

Yes. Wordpress is crap. It's sort of the poster child for bad PHP projects. It uses outdated versions of PHP because it wants to run everywhere. Internally it's a jumbled mess held together with chewing gum & bailing wire. It's popularity is driven by the massive number of 3rd party additions, but there's no standard of quality. It's frequently used far outside the realm of where it was intended to by people that only know the system. It's fucking everywhere and everyone uses it.

Drupal is only slightly better.

You should see how old my IPv6 book is.

And PHP 6 will never be released. PHP 7 will follow.

6 is a cursed version for programming languages.

PHP 6 Perl 6 VB 6

When they're paying me so little for a website with backend edit access, I don't think twice, I install WP and make a custom theme.

I have a VPS just for wordpress websites. Auto updates almost always work. Here and there I login to update the plugins and check if everything is working smoothly.

The clients LOVE the admin access and that's all I need to know. They're happy, I'm happy.

It's really easy to go hipster on code projects and criticize them as "pieces of crap" no matter what. The reality is that most of them are workable once you familiarize with the system and aren't that much worse than other systems. Software always gets gnarly as it enters production. Just something to consider.

Source: professional software developer and long-time IT consultant who has been around the block enough times to tell you that the prevalent "everything I didn't write sucks" attitude, often called "not invented here syndrome", is detrimental. Of course there is bad code out there, but be wary of people who say "every major everything is an awful piece of crap". Those people mostly just don't want to live in reality.

Well, yes and no. Part of the problem was that PHP 6 was used for some thime and there were even books about PHP 6 (as we can RiTFA) so when they would release PHP 6 it would confused the shit out of people even more.

To everyone that is a developer that likes to work with PHP the version skip won't be such a big thing, it will only be fuel to everyone that likes to hate on PHP for various (and now various+1) reasons.

That's a very PHP solution. Patch over the fuck ups and let people accept it as the normal.

And of course IE 6.

And Vista was Windows 6.0.

java needed 6 years to advance jdk6 to jdk7

This is a proof that time travel exists. And since php version discussed in the book is 6, i theorize it is from 2200.

And technologies... IPv6

True, but Py3 is definitely getting more momentum. Out of the packages I personally use, all have proper 3.4 support. So I'm currently making the switch and I'm finding it to be effortless.

I've seen the same thing happen over and over in projects: The old system is called crap, and people reimplement it from scratch. The new design is 10% of the code, much cleaner and works... but wait.. the didn't think about this corner case.. and this weird configuration... and adding support for some third party broken vendor... and some weird compliance to some countries laws..

And at the end, the new clean project is just as big and "crap" as the old code.

I can list lots of examples of this. Even Microsoft ran into this when it tried to rewrite Microsoft Word. Within a year they had a great new version that ran 90% of the documents.. and adding that last 10% got harder and harder, and in the end they just canned the whole project and went back to the old code. There's a great blog post about it.

The right way to do it is to slowly refactor and improve. But sometimes this is hidden to the users, and the users can mistakenly think it is a perfect rewrite.

For example, Wayland. Wayland has been the result of many many years of the Xorg developers slowly refactoring bits and pieces out of xorg and into the kernel or 3rd party libraries. They removed the font rendering, setting the screen resolution, allocating graphics memory, the 2D graphics libraries, and so on. Years of effort of slowly reworking it...

Yet what the user sees is this xorg doing nothing, then wayland suddenly springing to the scene as a "rewrite".

. What Drupal does in the database is an abomination.

You should read up on the number 3 then!

There will be no HTML6.

From The WHATWG Blog:

shortly after that we realised that the demand for new features in HTML remained high, and so we would have to continue maintaining HTML and adding features to it before we could call "HTML5" complete, and as a result we moved to a new development model, where the technology is not versioned and instead we just have a living document that defines the technology as it evolves.

Python is in a similar version limbo. While in spirit, python is at version 3.x. However, sadly in the real world, python is still at 2.7 until the foreseeable future. 2.7 and 3.x are effectively forks of the python language.

It's not even "hipster". It's just that criticising other people's code, especially when that code is a years-old open source project involving hundreds of contributors, is basically the easiest and laziest thing one can do in web development.

Offer constructive criticism or GTFO is what I say. That or make your own.

or from a different timeline.

I've tried the big three; Wordpress, Joomla, Drupal. They all make me want to kill myself. I've searched high and low for anything remotely pleasant to use and I'm yet to find something. The closest I found was PyroCMS but while they got the foundations right they're selling a half-finished product. And it's a bureaucratic nightmare with their developers.

Honestly, you would think there would be ONE decently coded and structured CMS out there.

and looking at the pace the number of js files increases (see the graphics here: ) you can bet there will be quite a few more soon

So on the one hand you complain about the current version number still beginning with 5, then you highlight the problems that popular server-side languages have getting hosts to update because of compatibility worries.

Maybe there's a link here! Maybe PHP has been working on adding features without breaking backwards compatibility so that hosts (and thus the sites on those hosts) have far less issues when updating. Have you even looked at all the features and performance improvements that have been made to the language since 5.2 (5.3 was the first version to receive changes that were originally only going to be in 6 I believe) without making major backwards compatibility breaks?

Yes, things are going to take a massive leap forward with 7 - it's a new major version and thus a chance to make all those improvements that have been put off because of worries about backwards compatibility (but the developers are still trying hard not to break things for the majority of code).

The 5.2 issue is chicken and egg. The vast majority of PHP sites running on these shared hosts that are refusing to upgrade are Wordpress. The hosts are lazy and won't upgrade until they have to. The Wordpress developers take these numbers as their baseline, and so don't increase their minimum requirements. To be honest, I don't think anything will change until Wordpress increase their minimum requirements (or enough users running other scripts demand their hosts upgrade).

I have a "Perl 6" book from 2003. I even bought it at a Borders, which the older people in the audience may remember as a book store and wedge issue in politics.

The real reason Apple switched to Intel after G5.

PHP is actually 5.6 as of today.

Majority of the changes promised in PHP 6 were eventually implemented in 5.3. Both the language and community have exploded in development activity since then.

It's true that small websites running Wordpress are typically on 5.2, but more serious projects utilizing modern frameworks like Symfony2 or Laravel are ran on 5.5 or at least 5.4.

I wrote a PHP6 Book. (Not that one, but I wrote a book in that series too.)

I actually argued against the title. Here's the conversation (in another thread here, but cross-listed because I think you'll find it interesting.)

Pub: OMG PHP6 is coming out and we don't have a title

Me: It's really OK. The changes aren't that big a deal

Pub: OMG PHP6 is coming out and we don't have a title

Me: Open source isn't like commercial software. Version numbers don't mean much, and there is no planned obsolescence

Pub: OMG PHP6 is coming out and we don't have a title

Me: I'm not convinced PHP6 is going to happen soon

Pub: OMG PHP6 is coming out and we don't have a title

Me: I'll just write a book that incorporates the latest features of PHP5 and works fine on PHP6 so we'll be ready

Pub: OMG PHP6 is coming out and we don't have a title

The author never gets to decide on the title. That's usually determined by marketing before they ever decide on an author.

My book is still being used - even though it shouldn't be.

All my examples are still up and running, and working fine on my web site, so the content is still relevant, I suppose.

Truthfully, current versions of PHP5 do most of the important stuff that PHP6 promised, so we've lost very little. I've got more recent stuff out there, but I can't prevent old books from circulating.

I have such a love-hate relationship with Wordpress. Yes, it's a free blog solution that's easy to set up, has a pretty nice admin UI, and is very customizable. But any of that customization requires me to code, I'm ready to claw my own eyes out within ten minutes.

And every time the documentation refers to The Loop, it makes me want to strangle someone.


Yep, cursed.

Curious (and I mean it, this is not a sarcastic/ironic question at all): which big/popular (by your own definition of big/popular) OS projects would you say follow good standards of quality (and any more precise example of why WP does not?

For the web, it actually makes a lot of sense, given that browsers tend to implement features bit by bit anyways.

VB6 was a stalled point for a long time as it was the last "pure" (i.e. non .net) VB. So there was a lot of really bad work done by the people who were least open to change, and honestly the least skilled.

Also the docs for VB got really bad.

It's a monstrosity.

Out of curiosity, what if the client is willing to pay you a lot for a website with backend edit access? What's the quality alternative to WP?

Edit: Ah, I see this thread sort of addresses it.

I know it's not a programming language, but now i'm worried about the eventual rise of HTML6.

Also, a lot of the 'hair' on that code tends to be, um, you know, bugfixes.

I still think Good ol' Joel Spolsky Said It Best, and if you don't want to read the entire article, just consider this J. Zawinsky quote he mentions:

Jamie Zawinski says it best, discussing the original version of Netscape that changed the world. "Convenient though it would be if it were true, Mozilla [Netscape 1.0] is not big because it's full of useless crap. Mozilla is big because your needs are big. Your needs are big because the Internet is big. There are lots of small, lean web browsers out there that, incidentally, do almost nothing useful. But being a shining jewel of perfection was not a goal when we wrote Mozilla."

Drupal is only slightly better.

The funny thing is that one of the biggest advantages Drupal has over Wordpress is also one of the more frustrating parts about it.

Which is to say, whereas Wordpress tries to maintain absolute compatibility with everything, Drupal throws pretty much everything out with each major revision. There is no attempt at providing compatibility between versions at all.

On one hand this means that each version of Drupal has gotten steadily better. 7 was much better than 6, which was itself much better than 5. Drupal 8 looks like it will improve over 7 once again. The devs don't let tradition or compatibility get in the way of progress.

The problem with this is that Drupal relies pretty heavily on a variety of contributed modules, and every major revision requires pretty much every module to be rewritten for it, which takes forever. To combat this, more and more of the major contributed modules get integrated into core with each major version, which means adding more to the core codebase, which means for every mess they clean up from the previous version they add two more.

At the end of the day, I like Drupal better than any of its direct competitors, but I'm not going to pretend that it doesn't have its issues.

One Loop to rule them all, One Loop to find them, One Loop to bring them all and in the darkness bind them

I remember those times when they were talking about developing PHP6, then watching it fail. I was a PHP developer for about 6-7 years, so I'm very familiar with the ecosystem (at least, how it was up until 2 years ago).

My point was less hating on PHP, but remembering how the PHP ecosystem felt like; duct tape and patching over holes.

Amen. It's usually younger guys, also. It takes maintaining and upgrading a system through a period of years and resource constraints to see quality problems usually aren't because of poor initial writing, but happen over time. They also tend to measure software against the way things are today, not the way ten years ago when the thing was written.

Book store? You mean like a Kindle?

Except when the software was developed by cowboy 'I can do anything!' programmers who quickly slap together a solution that 'gets the job done'. All while throwing all future considerations into the way side, disregarding security issues, potential future performance bottlenecks, proper database referential integrity, etc, etc... just to get highly praised for their fast work, then they quit due to salary, and move on to do the same thing for another company, using their past 'miracle' work as a resume bullet point to leverage a higher title and starting salary. It's lazy, dishonest, and cheating.

Then these companies hire REAL programmers to fix and enhance the pooly designed system, the kind that cares about performance, standards, and understands the value of a properly planned and designed database with proper referential integrity, etc... and they have EVERY DAMN RIGHT to say the code base / data entity model is crap.

There will always be a few wet behind the ears programmers fresh out of college who will over criticize a codebase but not understand how things are in the real world of development, but that doesn't negate that in reality many software was built on a poorly planned foundation by cowboy programmers who jump from ship to ship to avoid any responsibility while making bank the whole time.

I'm a developer with over 10+ years experience, and I've seen this at every company I've worked for. Then the management will constantly ask 'Why is this project taking so long? We had only 2 star programmers create the whole solution in only 4 months!'.

I regret being morbidly curious.

At least its for an existing protocol, rather than one that never made it to existence.

With backwards compatibility, auto security updates, a strong release cycle, a large plugin repository(quality ones too) and a large development community - there is no alternative for most cleints (budgets + needs). This is why many programmers aren't business owners, some of them just think about code. This is also why programmers who hate on WP look very immature and live in a bubble of inexperience. It a good interview question because it shows how narrow minded and negative they can be ;)

Frameworks should be opinionated. Ones that try to be all things to all people wind up as Drupal.

No, that's not what I meant. I know about the recent vote on PHP 7 and all that, what I was referring to was the sentence itself. I mean, it's like saying "The train will never come. And my train comes right after that.".


Nothing revolutionary from a developer's perspective but it simplifies the process.

The app I was maintaining most recently would generate a "random" password when people reset their password. If you didn't provide a seed (which we didn't) people would frequently get the same password they had previously. Which would be acceptable if we didn't proceed to lock their account for using a "recently used password".

Our whole authentication/authorization system was worst-practice in the mid 2000's...

And until that stops happenin were gonna be stuck with two different versions of python. He only project in aware of that doesn't support 3.4 (that's big enoigh to mention) is opencv.

It's not. The group there works on a lot of the standards with W3c :)

IMHO there's no real use case for Drupal. It has the best architecture of any PHP CMS, but it's complex enough that you need a developer to set up any non-trivial site, so you might as well use an MVC framework.

hmm. I wrote it.

edit: I didn't write that one. I wrote the Java book for that (fast and easy) series, and I did write a different book on PHP6 for a different series (Absolute Beginners') Sorry. I saw the familiar cover and made the leap.

I'm still pretty proud of my book FWIW.

Eight years later it's still surprisingly relevant. It had pretty good reviews wen it wasn't eight years old.

Thousands of people learned to program from it.

-and I made darn near nothing on it.

I'm happy to discuss it of people want. I added a comment to the OP about why we published that title when we did.

I love Laravel, and it's one of the best-written PHP projects out there, but it's an MVC framework, not a CMS.

I can't work out if that site is a parody of W3C.

Quiet you, we're not supposed to reveal that until 2048.

That's an incredibly biased RFC.

Best description of Wordpress I've ever heard.

What any ORM does in the database is usually an abomination...

You can put "6 years of experience in PHP 6" in your resume now!

Well yeah - thankfully with the emerge of more mature developers and changes in the PHP's dev cycle things are slowly moving in the right direction now.

And PHP 6 will never be released. PHP 7 will follow.

:D :D :D Follow after never?

Love it, was it intentional?

I'm morbidly curious, what is "The Loop"?

We released a full featured CMS in Node.js two months ago. From the sounds of it, I think you'll appreciate out architecture and approach.

Why was VB6 more cursed than say VB5?

It stopped happening a long time ago. Python 2.7 had its feature freeze in 2010.

ES 6 going pretty well so far.

IE 6

1000x yes. I work at a billion-dollar tech company that serves millions of requests a day to WP sites and I've never once had an issue with WP being "shit code" or "unserviceable". Out-of-the-box it comes with some weird things that we like to snip out but it is incredibly easy to work with. We also rip apart pre-existing plugin code and apply what we can in new features etc etc.

The point is: it's fun to talk about other people's code being shit when you're still in GPA-mode or not responsible for deadlines but when you have to balance real-world considerations, Wordpress is actually pretty great.

What's up with everybody bashing Perl 6? It's actually a nice language that already works. And it will be released by Christmas :)

Hi, I spent 7 years on the Drupal project from the very beginning, left around the same time this book came out. Many people left the project over the years, and they all tend to return to simpler tools to say the same thing: CMSes are a logical fallacy.

The promise of a CMS is that you have generic components that can be plugged together to build any web site easily without writing code. The problem is that the domain-specific parts (i.e. the customer's specific needs and workflow) are always the most important, and generic components cannot match them 100%. This is why WordPress was so popular: it was tailored for the needs of bloggers, and was a perfect fit. It's just terrible as a CMS or web framework.

Systems like Joomla and Drupal wanted to be frameworks to let you click and drag together a Wordpress-for-Anything. The problem is that the UI is now dynamically generated according to templates, and things that are trivial in normal code become really hard to do. There is only so much you can do with CSS, and being able to hook in to extend is way less useful than being able to subclass and replace core components.

But since the core is now a bunch of really scary PHP code, you need a "theme system" on top, aimed at either front-end devs or designers or both. It goes beyond templates, and you end up with content modelers and view builders. Which means you need models and definitions for that. It ends up really just being a shitty programming language in disguise. Just like a query builder is just a shittier form of SQL (not great to begin with), with a UI permanently glued onto it for no reason.

Once you become aware of this, you see this pattern everywhere. People try to make things "easier", but they end up building a layer on top that's way more complicated than just writing it by hand. If they'd properly split up their components in the first place, the idea of writing an app "from scratch" using them wouldn't be intimidating at all.

For example "grunt" vs "gulp" build systems. Grunt tries to do everything via one big static JSON configuration file, whereas Gulpfiles are real JavaScript code. And now Grunt has Gulp envy, so they're adding extensions to turn a single configuration file into a terrible DSL in disguise, where the only control flow available is a "goto". I thought we all agreed that was terrible, but when you disguise it as JSON, people don't seem to notice.


I expected this answer, you may hate on Java because it's an easy target to bash, but it's without doubt within top 3 used languages, unlike three mentioned in the parent post which are nonexistent or dead.

OMG Roslyn will fail :(

For instance, PHP5.5 has the nicest password hashing tools I've ever seen.

You need to go deeper. From a user's perspective, it's awesome. From a developer's perspective, it looks alright at a glance. When you start delving into it, you'll find out that it's all a wobbly Jenga tower of code, and many of those nifty plugins contain multiple security vulnerabilities.

Are you John Titor?

Not that long ago I found myself tasked with salvaging a failed/failing project. Among a variety of nasty things, the project involved porting all of the data from an existing Drupal application, into a new Wordpress installation ('already sold' and non-negotiable at that point). When the project fell to me, most of this had been done, but poorly and with a fair amount of missing or incomplete data. I almost cried when I first connected to the Drupal database, and found the data I needed to extract smeared across 500 tables in a truly unholy fashion. That is not to say, however, that the resulting Wordpress database was anything to write home about.

After several months of doing my best to pull it out of a death spiral, I wound up quitting before the project was over.

ECMAScript 6 follows ECMAScript 4, which was abandoned in favour of ES 5. ;)

Have you checked out PyMySQL?

Exactly. I actually argued AGAINST the title. The conversation went something like this:

Pub: OMG PHP6 is coming out and we don't have a title

Me: It's really OK. The changes aren't that big a deal

Pub: OMG PHP6 is coming out and we don't have a title

Me: Open source isn't like commercial software. Version numbers don't mean much, and there is no planned obsolescence

Pub: OMG PHP6 is coming out and we don't have a title

Me: I'm not convinced PHP6 is going to happen soon

Pub: OMG PHP6 is coming out and we don't have a title

Me: I'll just write a book that incorporates the latest features of PHP5 and works fine on PHP6 so we'll be ready

Pub: OMG PHP6 is coming out and we don't have a title

The author never gets to decide on the title. That's usually determined by marketing before they ever decide on an author.

My book is still being used - even though it shouldn't be.

All my examples are still up and running, and working fine on my web site, so the content is still relevant, I suppose.

Truthfully, current versions of PHP5 do all the important stuff that PHP6 promised, so we've lost nothing. I've got more recent stuff out there, but I can't prevent old books from circulating.

Just a heads up: to programmers EVERYTHING is crap, including stuff THEY made 6 weeks ago or longer.

Perl 6 is around the corner.

He's a tip. Version six of everything sucks.

Anything numbered 6 is lousy by nature. IE 6, Wordperfect 6. Java 6. The Pentium Pro was awesome, but they avoided a fiasco by not calling it the Sexium, or (appropriately) Hexium. Regardless of how you order them, both Return of the Jedi and Revenge of the Sith, stink.

And if you think this curse only relates to actual incremental releases, I give you "Leonard, Pt 6"

Anyone think of anything in support or contrary to this pet theory? A co-worker argues "FtT 6: Jason Lives" and "ST6:The Undiscovered Country" are good. Dr Six put Dr Who on hiatus, but it was NOT COLIN BAKER'S FAULT!

I'm not looking forward to "Big Hero 6"

We've built our own CMS on Laravel. It's fairly weighty as frameworks go, but very very easy to use, and nicely structured if a bit opinionated.

Drupal is terrible in terms of architecture. As a framework, it's worse. Too many assumptions.

I think the poster was making a joke about the quote sounding like PHP7 will never be released. "PHP6 will never be released, PHP 7 will follow [version 6]".

El Psy Congroo

Don't be sad: in 1988 i used COBOL 1968 to work for banks. And COBOL 1974 had been launched some years ago.

And as an example project:

you have only 500 tables, that's child's play. The abomination I have been tasked with maintaining includes 7125 tables.

Read that again. 7125 tables.

I don't even fucking understand.

So a good interview question is, "Do you like the same technology as I do?"

I'm sorry but that's an asinine interview question.

I've tried the big three; Wordpress, Joomla, Drupal. They all make me want to kill myself.

this is what originally pushed me to find other alternatives, and ultimately land on the django framework. unfortunately, it's still easier/quicker to get a drupal or wordpress site up. And, clients already know the names... so when you're selling them on a project it's better to bring up a known name... so i'm back to drupal

A WordPress plugin that makes its own database? Do you have a link to 1, much less 50, said plugins that make their own database?

For a developer, you seem to have very little understanding of the difference between a database and a database table. Further, there are not that many plugins out there, maybe a few dozen out of the tens of thousands out there that make their own table. Those that do generally have a good reason for it (like an affiliate plugin making a table since its far more performant when you run SQL queries) than joining tables and doing meta based searches.

Most WordPress sites do not do 200+ requests. Most WordPress sites maybe do 40 on a badly coded theme, but with CDN javascript concatenation and a decent theme, most can run on 20 or less easily.

current versions of PHP5 do most of the important stuff that PHP6 promised, so we've lost very little.

Heh, this kinda applies to Perl5 and Perl6 too, and would have been truer if they'd dropped that mess and concentrated on P5 itself. Damn, just thinking about what could have been gives me the sads.

If you're making a simple brochure site, where all the client needs is an edit button on arbitrary pages with a title field and a big WYSIWYG box - sure.

But for anything relatively large, the amount of time it would take to build all the shit Drupal gives you for free is massive.

Are you really going to build a complete UI for a form builder that lets the client build their own forms, view all the results online, set up rules for where the submissions go, export the results into excel, etc etc

That's just one module.

What about multi-lingual with a translation interface? What about a layout manager? What about a block positioning system? What about a media manager that can automatically thumbnail and crop images? What about when your site starts getting serious traffic and needs a caching strategy with purge/expire logic wrapped around memcache and varnish? What about workflow, permissions, roles, etc etc etc

Yeah, Drupal isn't perfect, and there's plenty to hate about it (I curse it frequently - especially when it comes to configuration management). but it gives you so much functionality for free that in the professional services world, you can't say no to it unless you want to keep losing contracts because your price is 5x higher than the place deploying Drupal.

Even if there are other CMSes out there that have a nicer architecture, they still don't have the ecosystem or flexibility Drupal does.

The one massive thing it has in its corner aside from the ecosystem is the community commitment to extensibility and interoperability. In something like Wordpress or Joomla you have so many silo'd projects that compete with each other and don't integrate.

So you might find a great "Event Management" plugin, and then you'll find a great "Image Gallery" plugin. Good luck making them work together though. In Drupal this sort of thing is trivial to put together.


Yes, it does:

They should've added this function about 5 years ago.

To be fair, the developers probably think it's pretty clear and decently coded (not perfect, but decent).

I do like WordPress from a user's perspective and somewhat from a developer's perspective. It's a simple blog/site builder platform. From a developer's perspective, It's simple, yet reallllly bad and needs a complete overhaul to, at the very least, the plugin development and theme development side of things.

I've tried Joomla, but didn't like it's CMS interface compared to WordPress. I haven't tried Drupal, but hear it's pretty good from a developer's POV.

Composer and PSR-4 are actually improving the ecosystem a lot.