source-code IS NOT intrinsically plural, but there is NO plural form of this noun. It is known as Mass or Uncountable noun. In many cases if you intended to use a plural, then the simpler term
code or sometimes
source is used if a programming context is implicit.
The general reason that this is a mass noun is that it is hard to classify even potential boundaries of discrete individual units of
source-code, the results would be highly subjective to the given context, so much so that it doesn't make sense to even try to define what a single unit might be, when we need to define boundaries there are specific terms to use that represent the type of boundary. There are many other computing terms that fall into this category.
There are some contexts when the subject is deliberately meant to refer to multiple unrelated repositories of source code, to add emphasis to the individuality of the separate repositories you might be tempted to use the term
source codes as a form of collective noun in this context but it would be incorrect and there are other terms for identifying the individual elements, in this case repository or project are acceptable and they greatly reduce the ambiguity of the statement. Consider the following examples
- (wrong) "I searched all of the source codes in GitHub."
- (good) "I searched all of the repositories in GitHub"
- (OK) "I searched all of the projects in GitHub"
Whilst comprehendible, the first example should be avoided because in this context it is still ambiguous if the subject is the source code of the GitHub platform itself, or the code that is stored within it.
I agree with the technical definitions offered by these well cited answers: @Mark-Allen and @Anton but we should acknowledge that it is still common to see the pluralisation form of these computing terms in non-technical contexts.
The origins of the incorrect plural form might be related to non-native english speakers as defined here:
Similarly malwares, softwares (wiktionary states that this as usually an error made by non-native speakers) https://en.wiktionary.org/wiki/softwares
But that doesn't explain on its own the general motivation or intention when used by authors who should otherwise know better.
There is a Hipster subculture in software development* that exists outside of
technical documentation, where it is cool or in vogue to deliberately misspell these common uncountable computing nouns by appending an
s to indicate a facetious or sarcastic undertone to the statement.
As the community of developers predominantly uses text based
communication for both professional and social interactions they have
organically evolved separate rich vocabulary for colloquial or
informal conversations as well as some more specific nomenclature for
slang terms to help convey tone and intent without having to specify
specific emotions and feelings in plain text, similar to how emojis
are used today by everyone else.
- This form of mockery is a derivative form of leetspeak and generally represents the author as someone who thinks off themselves as a subject matter expert or perhaps 133t, who is deliberately impersonating the stereotype of a noob or someone who otherwise does not yet understand or take seriously the technical domain of programming or hacking.
*I don't want to offend the purists by claiming that this culture has permeated all facets of Software Engineering, even though it has
To enhance the effect, one can substitute the
s with a
z or in an extreme case if you wanted to appear especially arrogant you might double the
- Due to the double nature of the statement being facetious or sarcastic if the tone is not clear then look for further devices like emoji to add clarity.
I like this example usage from this page that is itself a reference to other common posts where the user 'want the codez', it's not the Queen's English and a technical document or thesis is not likely to be afforded much respect if it uses this language, but it is part of the vernacular for this domain.
pull if you want the histories merged, you’d
fetch if you just ‘want the codez’ as some person has been tagging some articles around here.
- "want the codez" used in comments on a technical forum will specifically indicate that the poster is not interested in background theory or discussions, they have assumed the persona of a noob, but in this case one who is not interested in evolving their understanding of the topic and as such are likely to recieve a low quality response.