On Thu, Jul 12, 2012 at 8:49 PM, deadalnix <deadalnix@gmail.com> wrote:
One thing PHP has been good at is evolving, and introducing change in the language (some can argument that the language is so fucked up that this is unavoidable, so I do it now and we can discuss interesting topic).

I discussed that system with Rasmus Ledorf at afup 2012 and it something that D should definitively look into.

The const vs OOP discussion have shown once again that D will have to introduce breaking changes in the language. This isn't easy matter because if we break people code, D isn't attractive. But as long as code isn't broken, D people can't worked on what's next and it slows down D progress.

The system adopted in PHP works with a 3 number version. The first number is used for major languages changes (for instance 4 > 5 imply passing object by reference when it was by copy before, 5 > 6 switched the whole thing to unicode).

The second number imply language changes, but either non breaking or very specific, rarely used stuff. For instance 5.2 > 5.3 added GC, closures and namespace which does not break code.

The last one is reserved for bug fixes. Several version are maintained at the same time (even if a large amount of code base is common, so bug fixes can be used for many version at the time).

We should leverage the benefit of having switched to git to go in that way. We can start right now D2.1.xx with the opX dropped from object and see how it goes without requiring everybody to switch now.

Such a system would also permit to drop all D1 stuff that are in current DMD because D1 vs D2 can be chosen at compile time on the same sources.

git provide all we need to implement such a process, it is easy to do it soon (after 2.060 for instance) because it doesn't imply drastic changes for users.

Definitely +1!!!

--
Bye,
Gor Gyolchanyan.