I think opinions about readability are subjective. The real problem, that it'll break compatibility with old uncommon compilers. I'm not sure if new MSVC versions support it, but the one I use - does not.
Breaking something without a real reason is not a good move. Thanks. Dmitry. On Mon, Jul 28, 2014 at 6:19 PM, Andrea Faulds <a...@ajf.me> wrote: > > On 28 Jul 2014, at 15:00, Derick Rethans <der...@php.net> wrote: > > >> Well, we don’t need to allow all of C99. We can simply allow using > >> features that are widely supported and actually useful. For example, > >> declarations between statements, > > > > I think that makes code a lot less readable, so I would not be in favour > > allowing this in our coding guidelines. > > Really? I’ve found that declaring everything in advance makes for > hard-to-read code. To take an example from code I’ve written (admittedly > not C code - GML if anyone’s curious - but it might as well be), the first > line of a function looked like this: > > var list, hashList, text, i, pluginname, pluginhash, realhash, url, > handle, filesize, progress, tempfile, tempdir, failed, lastContact, > isCached, env; > > Even broken onto multiple lines, declaring everything at once isn’t nice. > For large functions (and some functions have to be large necessarily), > declaring everything at the start just means a long list of variables and I > would argue impairs code readability. > > You should declare variables when and where you need them. If everything > is done at the top, you have to scroll up to check the type of a variable. > It also means that now-unused variables are less obvious as the > declarations are far away from the usage, so you probably won’t spot that > it’s useless unless you look at your compiler warnings. > > Actually, a similar issue popped up in the code where that example was > from. The language it was written in had some unfortunate properties, one > of which was that variables not explicitly declared would instead be > treated as properties of the current object. Because all the variables were > declared at the start of the function, it was easy to miss the fact that > some variables being used had not actually been declared. Of course this > specific issue doesn’t exist in C, but it is an example of why having to > declare all your variables at the start of a function isn’t really a good > thing. > > If nothing else, I think we should use C99’s ability to declare variables > between statements. It makes it more likely mistakes will be spotted, eases > reading code, and as far as I am aware, is widely supported. > > -- > Andrea Faulds > http://ajf.me/ > > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >