Bart van Bragt wrote:
Derick Rethans wrote:

But who says your code should run on the new version? You don't *have* to upgrade per se. It merely allows newly developed projects to run on a cleaner version of PHP, which would undoubtfully also be faster (because we wouldn't have any BC ballast).

If I have a newly developed application then I can just as well go for something like RoR or Python or Java if I want something new and crispy with all the cool new features.

Java and cool new features in one sentence?

Anyways that the question we have to answer. Is PHP only value today its installed user base? Or isnt there more to PHP that would make a cleaned up PHP atleast as attractive? Also a cleaned up PHP would still be more PHP than any other language out there. So its not like we will all have to learn a new language.

I don't want that, I want something that can be used by almost anyone with a webserver. I don't care (that much) for the new and cool things.

There is no licensing cost for either PHP nor its most used server environment, namely Apache, so you can install as many distinct instances you need.

Sure it's very annoying that it's close to impossible to use (for instance) UTF8 in PHP but I'd rather be able to run my software just about anywhere with some restrictions in the language than being able to use all the new and cool stuff on just a few servers out there or with just a few clients. Skipping version 5 is just not an option for a LOT of people out there. Especially all the OS projects (phpBB, phpMyAdmin, Mambo, Gallery, Wordpress, etc, etc, etc) out there. They _have_ to support whatever their users are using. If you're just telling the users "sorry, PHP5 is not supported, we're waiting a year or 2 for version 6 because it has more bling-bling" then you can just as well stop with your project because you're going to lose your entire community.

Most people are hesitant to upgrade because we give people the impression that supposedly they should be able to run their old code in new major versions. However at the same time we do admit that this is not possible since we do break BC (even if these are actually bug or design fixes) in several areas even in minor versions.

However if we lay down things clear and say:
Keep your old apps running in version X for now (just like what people do today anyways as we can see in the slow adoption of PHP5), but here is something new and shiny and its just like the PHP you have come to love just cleaned from all the mess for any future projects, then hosters will simply offer both the old and the new version if they want to keep customers. This half-assed attempt at maintain BC is what is really causing major problems.

I am not saying that we have to do major clean ups in every major version of PHP, but every few major releases we should infact take this opportunity. We should delay any BC breaks (be that they fix rare but horrible bugs or design issues) as much as possible to these major releases. We just have to communicate to our user base clearly when we do break BC and when we actually do maintain BC. That way PHP remains clean but also predictable.

Are you sure it's because it breaks BC? We don't know why people don't migrate.

Of course it's not just because of BC breakage but a lack of BC is certainly not going to increase the percentage of PHP5 servers out there. Besides BC is the fact that PHP5 is still relatively new, too many small issues keep popping up and hosting providers are just really conservative (and rightfully so). Just take a look at how long it took before php3 was phased out.

And for us, we didn't migra>te because *we* want to start with a new clean code base too, and not something hackish that just makes it work with PHP 5.

That's really cool for you but for 95% of the people out there this is just not an option :\

Actually eZ is in the exact situation as 95% of the people out there, since I presume the large majority of people run eZ Publish on shared hosts or other servers where the users have either little control over knowhow to keep the server using the latest and greatest.

Yes, but it will also result in PHP being less and less competitive because we have to maintain all the old (broken) behavior (and make sure we never change anyting there).

That's just one side of it. If PHP isn't a stable platform then it's also not going to be competitive. Being able to use your 'legacy' code is pretty important for most people out there. It's certainly more important (for the average end-user that wants a gallery or runs an e-commerce site) than really new and cool OOP features. They (call them the customer) don't care about that, they just want it to work and they really can't be bothered by OOP or UTF8 as long as it works as expected.

See my note above. Everybody knows that clean ups will cause BC breaks and everybody knows that designing code that never breaks BC is a futile attempt that simply takes to long to be of any use out in the real world. We just have to communicate more clearly when we do break BC and we have to focus on reducing the number of BC breaking releases to a minimum instead of breaking little things in every release.

Anyway. All I want to say is that you should IMO be careful with your current user base. Trying to get them to use better/stricter/cleaner coding practices is good as long as you're not just breaking 'bad' code. Giving warnings (in E_STRICT) is good, it gives people time to adapt. Just realize that people need a lot (really a lot) of time to adapt.

The main advantage that PHP has over other (better?) languages is that it has a HUGE userbase, all the other web languages are dwarfed by the size of PHP. This also means that there is a huge (really huge) amount of 'old' code out there that people are using, you can't just discount that. Losing this huge momentum can be rather fatal IMO.

As stated above .. if you reduce PHP appeal to its installed user base we should just quit now and all stick with the java dinos. But notice that java is having a hell of a time to keep its user base and I do not think this is because they are breaking BC. Its because java has lots its momentum (or hype machinery) to be the best tool for the job.

But this is kind of straying from the original subject. In the end it's all about where the benevolent dictators want the project to go. Do they want a language that has the newest and coolest that programming has to offer or do they want to provide a stable programming platform that has inherited some flaws from the initial design? I don't know what they want, I do know what I prefer :)

Notice that the argument was not about the newest and coolest but about dropping pasts mistakes. We can always pile on new cool features but eventually we will just be crawling forward.

regards,
Lukas

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to