Hi, On Sat, Aug 25, 2012 at 8:05 PM, Thomas Hruska <thru...@cubiclesoft.com>wrote:
> Good businesses plan ahead and integrate upgrade expenditures into their > cost models. ... And they also tend to avoid unnecessary costs at all costs, and that of course means they don't upgrade unless a) absolutely necessary or b) the person in charge had some free time (however they managed it) and has done an insane amount of work to ensure everything works at least as fine _after_ than _before_ the upgrade. At least for small companies. I can't imagine the workload for medium to large comanies. Is it handled per project? On Sat, Aug 25, 2012 at 6:11 PM, Lester Caine <les...@lsces.co.uk> wrote: > At the expense of adding NEW facilities for my customers. As a user and a part-time sysadmin, I completely agree with Lester's questions. They are justified, although I also agree with Rasmus that 3 years between major upgrades is way too long. I can deal with rather frequent and with minor upgrades because they don't usually break much (if anything), I just have trouble changing my hole mindset for every language/library/system/etc. every few years. While I am all for learning new things, I also like to be able to reuse my current knowledge and skills to do ever increasingly interesting things. I can not do that if I have to challenge too much too often: PHP is not the only technology I deal with. Hosting companies, sysadmins and users all need time (lots of time) to come around to relearning things they already knew how to do. Some people will rather deal with security holes than upgrade anything because that would suppose having way more tests than they have in place. Truthfully, how do you pitch upgrading? Your websites and applications run fine now. Of course you have dealt with bugs and security holes that would also be corrected with the shiny new version but *that* is my point: a new version means a potential for new bugs, while you have already dealt with them in your code. To go back to Lester's original question, I decided to forgo PHP4 completely a few years ago, and fully take the PHP5 route. I do not use any framework or library that advertises it still works on PHP4. I do not believe much in language-level optimizations, although I do make use of them. I just tend to turn to an opcode optimizer and object caching, or partial page caching, or if need be full page caching, rather than confusing my code with any DB or templating abstraction layer. Let's face it, switching from a database to another is not just about the queries in my code, we also have userland functions to think of. Also, PHP's alternate templating syntax works great, and anyway no templating engine I know can easily switch between HTML, images, PDF, XML, JSON and other media formats. I went the full framework route. Having honestly tried some of the great libraries for specific use-cases some time ago (templating, database abstraction, image generation, form handling etc., look me up if you want to know more - results might be in French and outdated), I also tried some of the then-well-known frameworks. I picked the one I liked most and I stuck with it. It has provided me with many appreciated features on top of PHP, some of which I just claimed I didn't find in independent libraries, and for many other things I picked whatever extension or library I liked most at the time of choosing. I still do a lot of things with pure PHP, mostly when I do not trust the extensions and libraries I come across. Sometimes I try a new library or extension, but I never entertained the idea of switching frameworks. Now this framework is doing the same, namely going throught beta stages to release a new major version of the framework, and I find myself with the same dilemma as with PHP 5.3+: will I upgrade? How much time will I lose re learning stuff I already knew how to do, with some improvements I won't much care about? How long before my now-older version is phased out, no longer maintained? Maybe I didn't write enough tests for the current version, but most likely they will all be useless for this new version and I will have to write them again. How is that productive? Of course, the easy answer is not to upgrade. I'd like to think PHP as a very long time support language. I'd like to think when there is backwards compatibility in userland PHP for a new version of PHP, it means the code that brought this upgrade to the language itself can be backported to older versions. A few years is a very long time for releases, but it is not very long for enterprise adoption. With PHP5.3 and 5.4 so close together in thoese terms (and far from 5.2), some might just skip 5.3 altogether and go directly 5.4 (ie. skipping the deprecation warnings and going directly for the errors). I know that's what I'll do, but at the moment I still use PHP 5.2 in production until I have time to try and debug every part of our applications on more recent versions - like that'll happen soon. The same goes for other software, MySQL and httpd to name a few. At times it feels like I don't make any progress with actual features. I guess it boils down to knowing exactly what your use cases are, being able to keep maintaining several versions of your CMS or whatever you call your system (maybe one version for each PHP version you keep track of), but still hope PHP as a language will keep track of its older versions for years, at least until many hosting companies have migrated to more recent versions. That last part assumes that hosting companies and distros drive worldwide adoption, in the sense that companies tend to act on "if everyone else does it, so should we" (not the other way around). On Sat, Aug 25, 2012 at 1:16 PM, Marco Pivetta <ocram...@gmail.com> wrote: > Just wanted to remind you that the latest Smarty 2.x version is 2.6.26, > released in the middle of 2009... > 3 years have passed by, and change is something that cannot really be > stopped. > What you say is true, versions get old. But as Lester pointed out, they work. that is why some computer systems that have been outdated for years are still functioning today. It is hard to make a case for rewriting code that already works, don't you think? Continuous integration can not help you much where major versions or backwards incompatibility are involved. On Sat, Aug 25, 2012 at 3:39 PM, Andrew Faulds <a...@ajf.me> wrote: > ISPs should have moved to 5.3 long ago. If they haven't, that isn't our > problem. I don't have any numbers on PHP adoption for versions 5.3 and forward but I will trust Lester is right in his assessment: it is not good. Why is that? Whatever the answer is, it makes your point moot: the PHP group has to care. Maybe it is a BC problem, maybe mereley an education problem, or maybe migration scripts can be written, shared and advertised to help, but either way the PHP Group is the best entity to solve the problem that is PHP Adoption. Also, Rasmus stated recently that APC is not yet ready to service PHP 5.4 on production servers. I believe PHP 5.4 is mostly compatible with PHP 5.3, so why have so few websites adopted PHP 5.4 when obviously a bunch have gone 5.3? @All To wrap up, I would like to say I really like the new propose/discuss/vote/commit process. an RFC on the wiki, coupled with a call for comments on the mailing list and finally a vote are much easier to follow than the old offline, IRC or hard-to-track mailing list discussions for those of us non-core-developers who try to keep up with this list. That has been a really great improvement. It is not always easy, and sometines I miss something, but it helps me a lot to keep up. However, I noticed in the ChangeLog that not all entries relate to a bug report. Maybe that could be amended to link to the RFC when available, or maybe a bug report could be created when the code is pushed/committed to reflect the changes so that the ChangeLog can point to a copy of the RFC so people can find relevant information more easily? That would help promote big changes (as in "make them noticeable in all the clutter"), as well as help educate users about why they were introduced and how they can be used, and also help mitigate documentation shortcomings, while requiring little time on the part of the maintainer. I do think education is the key to many things in our world. Please do not rely purely on the blogosphere to spread the word. Best regards, -- Guillaume Rossolini