In order to vote, comment or post rants, you need to confirm your email address.
You should have received a welcome email with a confirm link when you signed up. If you can't find the email, click the button below.

Python doesn't suck because of it's execution speed, it sucks because it's dynamically typed. There are some interesting grad papers out there about how dynamically typed languages are actually a kind of statically typed language (practically just unityped) and how they have no practical advantages over a good statically typed language (like Haskell).

There are obvious advantages that Python has over Java and vice versa, but Java is an old, bad language, not because it's statically typed though.

@dotPy I'd be interested in hearing your opinion on it. I've never really heard of a good example of an advantage of dynamically typed languages. Most my professional experience is in them (Ruby & Python), but in large scale projects they're just nightmarish at their worst and exactly as good as a statically typed language at their best.

The only thing I've really heard that I believed for a little while was conciseness, but I realized I was just comparing older languages like Java to newer ones like Ruby, but in actuality newer statically typed languages are just as, if not more concise, (i.e Kotlin vs Python, Kotlin is more concise in almost every regard and statically typed).

@ODXT I disagree with the notion that "no language is better or worse". That notion comes from a good place, and I think it's a good starting point, but compare Java vs. Kotlin. Kotlin was built as an improvement on Java, and doesn't really lose anything. I would say Kotlin is just better.

Now something like Kotlin vs Python I get what you're saying. Both have advantages. But one advantage in favor of Kotlin is it's statically typed, while Python is dynamically typed. And I would say unequivocally that static typing is superior. (Assuming the static typing system is strong enough to support the kind of abstractions that duck typing allows).

@Nevoic yes of course, my argument starts with pythons philosophy of programming. It is stated that pythons intention was to simplify the process of programming, being less verbose, quick to add changes and in result being faster for people to catch on and enjoy programming. Because of these reasons, it really suits python to be dynamically typed rather than statically typed. A statically typed language is better in some cases, i even agree that statically typed is in some cases better, but this being python’s true intention, it is better to be dynamically typed. I can think of a few other reasons, but most of them just support this argument in general :)

@Nevoic i can see your point on why you think Kotlin is better than Java, but can you say for certain that Kotlin is better than Java in all cases rather than just a few cases?

If you say, “Kotlin is a better choice for Android Programming than Java” then I agree, because in this case it is true and can be proven also. But saying “Kotlin is better in Java” is way too brorad and doesnt cover all the cases of it being true. I can say for certain, Java is better than Kotlin in some cases and vice versa

And just to be explicitly clear, I'm strictly talking about the language feature of dynamic typing vs. static typing. Not Python vs Kotlin. Some code can be better represented in Python vs Kotlin.

The best example I can use to demonstrate what I mean is Crystal vs Ruby. Crystal code is 90% of the time identical to Ruby code, but it's backed by a compiler and statically typed.

That means typing errors that exist in almost all Python projects would be caught at compile time instead of runtime (I saw someone do a port of some standard libraries of Python to Haskell and they found like multiple typing errors in them, so any code base that uses those standard libraries is vulnerable to those runtime errors that can be fixed by proper typing of variables)

@Nevoic sorry but i didnt say that dynamically typed is superior than statically typed. I said that dynamically typed supports python’s philosophy and therefore being a better choice than statically typed in this case.

@Nevoic okay then if python became a statically typed language and is still low in verbosity, i would actually think that is awesome. In this case, my argument becomes invalid because if that was the case, it will not violate Pythons Philosophy at all. Any chance i can view the papers you’ve been talking about, i want to read it :)

I'm in the no language is the best camp. They all have there pros and cons. Python is great for short scripts and small projects. I'll use Golang for microservoces and C++ when mucking around with robotics and image recognition. It all depends on what your needs are

@kabbura thats how it should be done, without provocation, based on facts and provide sources to support the argument. I find that people get really defensive when they are proven
incorrect and eventually act offensively towards the argument and end up straying off topic.