Perhaps in Australia, but certainly not worldwide. C# is way smaller than even Go in total, and Java is a lumbering giant. Slow perhaps, but there's no David around at the moment.
My instincts tell me that there’s no way Go is larger than C# worldwide. Large enterprises are still predominantly on C# and Java… Tiobe index, whatever you may think of it, does not support that… What’s your source?
Source for "C# is way smaller than even Go"? It's possible that there are more shops that use some Go (esp. for DevOps) than there are ones that use some C#, but that's not quite the same as C# being "way smaller".
Right now if I type the following keywords in Seek this is what I get (in order):
SQL - 11,425 jobs
Java - 7,390 jobs
Python - 6,777 jobs
C# - 4,995 jobs
JavaScript - 4,208 jobs
TypeScript - 758 jobs
Ruby - 252 jobs
Golang - 206 jobs
IMO Python and C# are not comparable. Python is at best a simple scripting language, you really can't build anything globally scalable on it. No offense to people who use Python daily, just my own observations (probably wrong).
the biggest python codebase I'm personally aware of is JP Morgan's Athena and is about ~30 million LOC. Google, Youtube and Dropbox use Python extensively etc. Python being a scripting language stopped being a correct statement probably over a decade ago.
I am currently in the process of learning C#. I did a deep but brief dive into every language feature in C# 10. Being proficient in Python, absolutely nothing surprised me. All the same concepts, save for a handful, exist in either language, sometimes down to the exact keyword usage. LINQ is a big differentiator in favor of C#, but modern (that is, typed) Python looks very similar to C# (C# left, Python right):
ABCs -- ABCs
Interfaces -- Protocols/ABCs
LINQ -- ??
Enumerable/Enumerator -- Iterable/Iterator
class -- class
static -- staticmethod
foreach -- for
for -- for(range(...))
try/catch -- try/except
break/continue -- break/continue
enum -- Enum
struct -- dataclass, perhaps
namespace -- automatic on the file level
out -- pass by reference
switch/case -- match/case (both do structural pattern matching)
throw -- except
typeof -- type
overloaded methods -- singledispatch (only works for a single argument sadly, no stdlib multidispatch)
inheritance (single) -- inheritance (multiple)
object -- object (root of the type hierarchy)
generics -- generics as well (via typing, runtime never cared anyway of course)
lambda -- lambda
nullability -- None (C# can have nullable reference types, Python types are not nullable, None exists as a first-class type, not a subtype of all other types; similar ergonomics but different structurally)
extension methods -- just go wild in Python (although binding methods after class definition is cumbersome)
tuples -- tuples (both can do unpacking, multiple returns etc.)
operator overloading -- operator overloading
reflection -- reflection (arguably a Python strong-point)
async/await -- async/await
decorators (exist as a pattern) -- decorators (supported on the syntax level)
?? -- top-level/first-class-citizens functions
I probably got a couple wrong, but you get the idea: apart from LINQ, nullability handling and some others, the languages are incredibly similar in their feature set on paper. This is not talking about DX etc. though.
There's no reason to discount front-end work from "programming languages". You choose python over typescript for machine learning because the ecosystem is there.
You choose typescript over python because Brython and JavaScripthon and Transcrypt have no ecosystem that makes more sense than using NPM, and the people who like to program in python prefer the challenges of other domains than what's in the web browser.
That just makes "most popular programming language" a silly metric. It doesn't mean that nobody uses the language because you ignore all the people who use it for things you aren't interested in.
At least from the perspective of recruiting in Australia.
Python is on the way up and third most popular but well behind C# and TypeScript.
Golang is on the way up but very small in terms of number of developers.
Java is on the way down but will never vanish, it's just not super popular any more.
Ruby is small enough to just be a footnote.
There's lots of other languages that make up the long tail.
The message is that if recruiting matters then you should be using C# and TypeScript.