Old age shows its mark...
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
I have never touched Fortran or Cobol and I use the same conventions, I have no idea where I picked it up from as I learnt to code on a commodore 64 and then from a SuperBase manual.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
Are you telling that there is an other way to do loops? (To be honest I never did FORTRAN, but the i,j,k variable names came down to me via C while learning)
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
Consistency is a blessing. :thumbsup: I have my own names for common things that go back almost 20 years...they are in finger memory and great for copy/pasting. You could reasonably argue that the names a programmer uses for common items become a fingerprint of sorts. I get the Fortran background of 'i','j', and 'k' but have always disliked single character variable names since we're now (since the '80s) allowed to be a bit more descriptive...so I use a lot of 2 letter names instead! :laugh: Like you said though, whatever works! :) BTW, where UI items are concerned, it irritates me to see developers who are content with Textbox1, Textbox2, etc. X|
"Go forth into the source" - Neal Morse
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
I also used i,j,k for indices, why does it bother you? Although someone ask me, once, to use more descriptive name, so I indulged him and refactor my indice to "variableIndiceForArrayIndexFrom0ToListCount" which, granted, is much more descriptive and easy to read! :laugh:
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
well another memory muscle reason for many... before FORTRAN many learned BASIC (back in the day when a school would have 2 or 3 TRS-80 or similar computers, the first version (Model I with 4k RAM) only had single char variables A..Z. Later the Model II (with the massive 16k) allowed 2 letters AA..ZZ. anyhoo it was actually in the Programming Guide (probably inspired from FORTRAN) that suggested I, J, K, L... for "general" integers (in particular FOR loops), (also ref: I for iterator) S, T, U for general strings. "Important" variables used A, B, C (effectively the global variables) suggested sticking to single letters for compatibility with Model I. Some versions of FORTRAN also had that 2 letter limit. "That way you could better determine what any variable was for/about." mock it if you will, but given the naming limitations of the time at least some were already invested enough to come up with some common coding styles. - Nowadays i, j as iterators/offsets even makes appearances in mathematics, - when you see "for (i = 0; ..." you already know the intent (unless you or the programmer are idiot(s), and that's even if it's someone else's code. -- and inasmuch almost makes it better to keep using i, j ... unless you're some sort of purist 'style wanker' who says 'the code may be misunderstood' ..... (and let's face it: such comments are nearly always a reflection of the lack of abilities of the idiot quoting them).
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
But of course. The shorter the scope, the shorter the name. The longer the scope, the longer the name. Waaayyy back in a Pascal class I took in the mid-80s (on a PDP-11), for one assignment I chose to use the number of syllables of nonsense words to indicate the usage of the variables. Try typing "tafimadiddle" many times on a VT-100 (no cut/paste).
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
Though being rather young I do have the same habit. Guess I've picked that one up when taking my first C class 9 years ago (that is longer than it actually feels), and I just stuck with it, though I'm not using it as often in C#, where most of the stuff is Linq (x => x) it is there - Or I just use foreach.
I only have a signature in order to let @DalekDave follow my posts.
-
Consistency is a blessing. :thumbsup: I have my own names for common things that go back almost 20 years...they are in finger memory and great for copy/pasting. You could reasonably argue that the names a programmer uses for common items become a fingerprint of sorts. I get the Fortran background of 'i','j', and 'k' but have always disliked single character variable names since we're now (since the '80s) allowed to be a bit more descriptive...so I use a lot of 2 letter names instead! :laugh: Like you said though, whatever works! :) BTW, where UI items are concerned, it irritates me to see developers who are content with Textbox1, Textbox2, etc. X|
"Go forth into the source" - Neal Morse
Developers who are content with Textbox1, Textbox2 irk the crap out of me, never mind merely irritate.
"'Do what thou wilt...' is to bid Stars to shine, Vines to bear grapes, Water to seek its level; man is the only being in Nature that has striven to set himself at odds with himself." —Aleister Crowley
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
Good for you! we all know that the compiler is MUCH slower to parse loopIndex than a simple i :)
-
I have never touched Fortran or Cobol and I use the same conventions, I have no idea where I picked it up from as I learnt to code on a commodore 64 and then from a SuperBase manual.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
Some early BASIC versions allowed up to 26 numeric variables; i through m (?) were integers, everything else floating point. It's a reflection of the generosity of 26 variables that in practice most of us only ever needed i, j, k as integers; we really were spoiled for choice.
-
Okay, I was writing some code and noticed that I was using 'i','j', and 'k' for looping indices - it shook me that I still retained that habit. :doh: Then I thought: "Who cares? They do the job" :laugh:
A human being should be able to change a diaper, plan an invasion, butcher a hog, navigate a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects! - Lazarus Long
Mathematicians used i, j and k as indexes long before Babbage's Analythical Machine. It did not come with Fortran. When I was a student, the professors insisted on long, descriptive names in our programming hand-ins. I looked over the shoulder of one of my classmates: His integer variables where named I01, I02,... float variables F01, F02... I shook my head: Prof xxx will explode into small pices when he sees that code! My classmate smiled back: Oh no, of course I make a global subsistute of I01 with NumberOfFruitBaskets, I02 with NumberOfApplesPerBasket, F01 with AverageWeightPerApple and so on, but I can't be bothered with typing those long names when I develop the program! (He was the brightest kid in class, and certainly had the mental capacity to keep the asossication between F01 and the average apple weight.) In my current job, one group revising our coding standards suggested that code lines were restricted to at most 72 characters (they were serious about that!). My project asked for an exception, as we had rules for the naming of cross-module #define constants that in some cases lead to identifiers exceeding the 72 char limit. ... I think that is going a little bit too far in the other direction.
-
Old FORTRAN habits die hard ... I do the same, but at least I have to declare them these days. Old FORTRAN programmers never die, they RETURN to caller
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
Single letter loop counters is not just FORTRAN -- C as well.
-
Old FORTRAN habits die hard ... I do the same, but at least I have to declare them these days. Old FORTRAN programmers never die, they RETURN to caller
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
God is real, unless declared otherwise by an IMPLICIT statement or an explicit declaration. This joke was well known in the late 1970s. For those who never worked with Fortran: IMPLICIT COMPLEX (F-H) would make all variables starting with an F, G or H to be of default type COMPLEX. You could explicitly decare REAL GOD, overriding the IMPLICIT, but if you simply referenced GOD with no declaration, GOD would be COMPLEX. I once spent a full day helping one guy find the cause for his program Fortran behaving in completely crazy ways. I didn't spot it until I single stepped through his program, machine instruction by machine instruction, seing that the compiler referenced two different locations, seemingly selected at random, that should have been a single location. Or ... Searching for the variable name in the source code hit only half of them. In the other half, the letter O was written as the digit 0, and in both the screen and printer fonts the two were almost perfectly identical. Obviously, the coders had used a lot of copy/paste to get that many occurences of 0. In Fortran, you can declare IMPLICIT NONE (at least from Fortran 77 onwards), forcing you to explicitly declare every variable, as in any other decent programming language. But lots of old Fortran programmers hated having to tell in advance that they were going to need this and that variable; they didn't see the point of explicit declaration, and refused to use IMPLCIT NONE. Some programmers are that way even anno 2019, praising their favorite language because variables are implicitly declared. (Or that they don't need braces around composite statements. Or use braces rather than BEGIN END. Or int rather than integer, bool rather than boolean / logical. Or... So don't be too harsh with the old Fortran programmers!)
-
Single letter loop counters is not just FORTRAN -- C as well.
But it started in FORTRAN which had implicit typing based on the first letter of the variable name: I to N inclusive were integers, everything else were reals. With no enforced declaration, it became a convention that I, J, K were integer values used in loop guards. C always had compulsory variable declaration, which made typing by variable name irrelevant - and got rid of a lot of errors: NASA "lost" a probe because someone mistyped a comma. What they meant to type:
DO 15 I = 1,100
A loop to Label 15, integer I runs between 1 and 100 inclusive. What was typed:
DO 15 I = 1.100
Because FORTRAN ignored spaces outside strings, this was seen by the compiler as:
DO15I = 1.100
which is a perfectly valid assignment to a brand new variable called DO15I. Since there is no need to declare a variable, the "D" makes it a real variable, and that's completely legal (if rather useless)
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
God is real, unless declared otherwise by an IMPLICIT statement or an explicit declaration. This joke was well known in the late 1970s. For those who never worked with Fortran: IMPLICIT COMPLEX (F-H) would make all variables starting with an F, G or H to be of default type COMPLEX. You could explicitly decare REAL GOD, overriding the IMPLICIT, but if you simply referenced GOD with no declaration, GOD would be COMPLEX. I once spent a full day helping one guy find the cause for his program Fortran behaving in completely crazy ways. I didn't spot it until I single stepped through his program, machine instruction by machine instruction, seing that the compiler referenced two different locations, seemingly selected at random, that should have been a single location. Or ... Searching for the variable name in the source code hit only half of them. In the other half, the letter O was written as the digit 0, and in both the screen and printer fonts the two were almost perfectly identical. Obviously, the coders had used a lot of copy/paste to get that many occurences of 0. In Fortran, you can declare IMPLICIT NONE (at least from Fortran 77 onwards), forcing you to explicitly declare every variable, as in any other decent programming language. But lots of old Fortran programmers hated having to tell in advance that they were going to need this and that variable; they didn't see the point of explicit declaration, and refused to use IMPLCIT NONE. Some programmers are that way even anno 2019, praising their favorite language because variables are implicitly declared. (Or that they don't need braces around composite statements. Or use braces rather than BEGIN END. Or int rather than integer, bool rather than boolean / logical. Or... So don't be too harsh with the old Fortran programmers!)
I am an old FORTRAN programmer! It was the second language they taught us at Uni - the first (Gawd help us) was COBOL which was enough to put quite a few people right off the whole idea... :laugh:
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
But it started in FORTRAN which had implicit typing based on the first letter of the variable name: I to N inclusive were integers, everything else were reals. With no enforced declaration, it became a convention that I, J, K were integer values used in loop guards. C always had compulsory variable declaration, which made typing by variable name irrelevant - and got rid of a lot of errors: NASA "lost" a probe because someone mistyped a comma. What they meant to type:
DO 15 I = 1,100
A loop to Label 15, integer I runs between 1 and 100 inclusive. What was typed:
DO 15 I = 1.100
Because FORTRAN ignored spaces outside strings, this was seen by the compiler as:
DO15I = 1.100
which is a perfectly valid assignment to a brand new variable called DO15I. Since there is no need to declare a variable, the "D" makes it a real variable, and that's completely legal (if rather useless)
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
OriginalGriff wrote:
But it started in FORTRAN
Very true! However, I expect a lot more folks frequenting this forum picked the naming habit from C rather than FORTRAN. That would make an interesting poll -- list languages popular before 1990 and get counts of who has done what.
-
Mathematicians used i, j and k as indexes long before Babbage's Analythical Machine. It did not come with Fortran. When I was a student, the professors insisted on long, descriptive names in our programming hand-ins. I looked over the shoulder of one of my classmates: His integer variables where named I01, I02,... float variables F01, F02... I shook my head: Prof xxx will explode into small pices when he sees that code! My classmate smiled back: Oh no, of course I make a global subsistute of I01 with NumberOfFruitBaskets, I02 with NumberOfApplesPerBasket, F01 with AverageWeightPerApple and so on, but I can't be bothered with typing those long names when I develop the program! (He was the brightest kid in class, and certainly had the mental capacity to keep the asossication between F01 and the average apple weight.) In my current job, one group revising our coding standards suggested that code lines were restricted to at most 72 characters (they were serious about that!). My project asked for an exception, as we had rules for the naming of cross-module #define constants that in some cases lead to identifiers exceeding the 72 char limit. ... I think that is going a little bit too far in the other direction.