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