• I hate the idea of using positional arguments for code.  How the hell are you supposed to know what ORDER BY 3 means without trawling through the code?

    The argument put forward by your team seems to imply that field names are changing.  I NEVER change field names precisely because doing so will break existing code.

    If you rely on ordinal positions what happens if one of your team inserts a column?  All of a sudden column 2 doesn't mean what you thought it should.  This is also a good reason not to use SELECT *.

    As far as using Hungarian notation my colleagues and I went through the debate and came out in favour of using it.

    Yes, if the use of a variable changes then there are issues with altering the code but this is offset by looking at a variable and knowning just from looking at that variable name that it is a member of a class and pointer to a string.

    If you have to change a variable within your code then search/replace tends to deal with it quite well thankyou very much, plus the compiler deals with the rest.

    The main argument against Hungarian is that the variable names it produces are not tied to the code and can therefore become meaningless.  You could say much the same thing about comments in your code and the comments are a damned site less connected to your code than the variables.

    Unless you have meticulous documentation (sorry, I got distracted by the all England porcine aerobatic display team outside my window) tracking down what a variable is supposed to be is in reams of code is not a fun job.  Even with documentation you are still going to be taking a break from your code to look it up!

    Fashions come and go in IT and Hungarian is the equivalent of good strong shoes and sensible trousers.