I don’t think fish / fishes is quite right. Look up “code” in the dictionary and you get at least two different senses of the word:
1. System of substituting letters/words/symbols/etc. for letters/words/symbols/etc, e.g. “morse code”. Countable noun.
2. Computing program instructions. Uncountable noun.
This is not like fish / fishes, because “fish” is countable—I can have one fish or two fish. When talking about computer programming instructions, I cannot have one code or two codes, but I can have one line of code or two lines of code. Just like I cannot have a bowl of one thousand rice, but I can have a bowl of one thousand grains of rice. Rice is “uncountable” in the grammatical sense even though it seems like you should be able to count it.
In Indian english, my understanding is that for the second sense above, “codes” is correct and “code” is incorrect. In that sense it is probably similar to “data”, in the historical usage where “data” was plural (in modern usage, “data” is often considered singular).
So, “The codes are on my hard drive.” makes sense to Indian english speakers, and “The data are on my hard drive.” makes sense in historical (say, early 20th-century) English. There is a singular version of data, “datum”, but rarely used.
I don’t think fish / fishes is quite right. Look up “code” in the dictionary and you get at least two different senses of the word:
1. System of substituting letters/words/symbols/etc. for letters/words/symbols/etc, e.g. “morse code”. Countable noun.
2. Computing program instructions. Uncountable noun.
This is not like fish / fishes, because “fish” is countable—I can have one fish or two fish. When talking about computer programming instructions, I cannot have one code or two codes, but I can have one line of code or two lines of code. Just like I cannot have a bowl of one thousand rice, but I can have a bowl of one thousand grains of rice. Rice is “uncountable” in the grammatical sense even though it seems like you should be able to count it.
In Indian english, my understanding is that for the second sense above, “codes” is correct and “code” is incorrect. In that sense it is probably similar to “data”, in the historical usage where “data” was plural (in modern usage, “data” is often considered singular).
So, “The codes are on my hard drive.” makes sense to Indian english speakers, and “The data are on my hard drive.” makes sense in historical (say, early 20th-century) English. There is a singular version of data, “datum”, but rarely used.