It’s stupid to participate on either side of this discussion. If you think it’s not a “real” language you are applying a 100% arbitrary definition to it, and if you say it is a “real language” you are conceding that calling it “not real” even makes sense in some way (which it doesn’t).
Personally I like languages with real and strong data types but people are free to use whatever language they like most.
For the last time, Python is not weakly typed. It is dynamically typed. The statement
5 + "hello"
results in a type error. Bash is weakly typed, and that same addition results in5hello
I personally draw a distinction between “real” programming languages and scripting languages. Scripting languages being languages that are traditionally source distributed. They tend to be much easier to write, run slower, often but not always dynamically typed, and operate at a higher level than “real” programming languages. That’s not to say they aren’t actually useful or difficult to learn etc. It’s not a demeaning separation, just a useful categorization IMO. Not to say the categorization always holds water in all those attributes, luajit is way faster than Java but it does follow the other bits. As someone who loves C there are lots of languages that seem too limiting and high level, doesn’t mean they aren’t useful tho.
Surely “compiled” Vs “scripting” langs is better than throwing around (at best) meaningless terms like “real”