> -----Original Message-----
> From: Johannes Schlüter [mailto:johan...@schlueters.de]
> Sent: Thursday, November 25, 2010 9:21 AM
> To: Andi Gutmans
> Cc: Jani Taskinen; da...@php.net; PHP Internals
> Subject: RE: [PHP-DEV] Re: Hold off 5.4
> 
> On Thu, 2010-11-25 at 17:11 +0000, Andi Gutmans wrote:
> > For what it's worth the changes we've made in the Zend Engine around
> > performance and memory use could warrant a major version. Every major
> > version of PHP in the past has been driven foremost by major engine
> > overhauls.
> 
> Yes, larger changes to the engine changed the major number. But all of them
> had a big effect. This is "only" performance. No functionality. 90% of the 
> users
> won't notice it. Whereas everbody oticed the change from3 to 4 or the new
> object model in 5. Changing the major number has two big
> effects: a) marketing b) more fear for doing the upgrade.
> 
> I value b) as the more relevant factor to monitor.

I agree it is border line. I didn't say I feel strongly about it but I also 
wouldn't dismiss the changes we are making in PHP-next both from a core runtime 
point of view, backwards compatibility + new functionality as a minor version. 
As technologies mature new major versions are often a bit more balanced which 
makes sense given we have such a huge user base. This is no different in the 
Java world, C++ as it matured or some other technologies.

From a core runtime point of view I think the changes are actually quite far 
reaching. I also believe there's more that we can do and want to try and do.

From a BC point of view I do think it's an opportunity to clean up quite a bit. 
I am not an advocate of going crazy but I think we've already identified a few 
areas as a group that we feel comfortable with that strike a good balance 
between BC and helping move things forward. I think these are major version 
changes not minor version changes.

From a functionality point of view I actually think there's some good 
functionality here:
- Traits (I think this is major)
- Some additional language improvements around array dereferencing, 
configurable mbstring support at runtime (we still need to do some work there), 
closure enhancements, ...
- Some major and minor improvements in modules such as FastCGI, JSON, hashing, 
...

I think this is definitely more than minor version. I agree it may feel 
somewhat light as a major version but there is no such thing as a manor version 
:)

In the spirit of release early and often I would actually gravitate towards the 
major version and start with clean slate although I also understand the other 
side of the world. In this scenario I would not use the excuse of a major 
version to go crazy though. Keep it sane and similar to what we're discussing 
now with maybe some additional engine improvements, additional cleanup and some 
extension work that can probably still be done. It has to be extremely finite 
(short list) and managed in a good release process. I do think if we continue 
to do "major minor" versions like we've done in the 5.x branch we will probably 
stay in the 5.x branch perpetually and it could be confusing to our users when 
they get major BC breaks and changes within the same major version.

Andi 

Reply via email to