3 ms·
I'm mostly a Python dev who dabbles in random languages. Few things that aren't-so-great with traditional Python: 1) Not statically typed 2) Not compiled 3) Su
by odonnellryan 10y ago
I'm mostly a Python dev who dabbles in random languages. Few things that aren't-so-great with traditional Python:
1) Not statically typed
2) Not compiled
3) Super-cross-platform is cool, and not cool.
1: This one is obvious: it doesn't stop you from writing awesome code, but the type-hinting in Python still has a way to go. And what's type-hinting without #2?
2: You lose out a lot on a language that isn't compiled. It's nice to just be able to execute the code, but compiler warnings are awesome. Binaries are actually cool in a lot of circumstances.
3: It's good to know, in general, that you have the _ability_ to run on many systems. However, in the real world you still have to test extensively on all the platforms you want to run the code on, and you have to ensure the tech you're using is supported, of course.
Python is an awesome language for many, many things: but sometimes a language like C# or Go or Rust or.... makes more sense. Performance, statically typed, or pure-functional-programming is sometimes desired: these things are often harder in Python.
One thing Python has over many of its contemporaries is the _vast_ and helpful (fun) community. There's a million libraries (like from the JavaScript world) but unlike JS (in my experience, this is just because of the "newness" of the ecosystem) these libraries are very, very mature. And the tooling is actually really good, check out Conda for example!
- Can_Not 10y ago> but unlike JS these libraries are very, very mature I have a very different experience. JS libraries are typically fine. You usually have more than one option (because there's more than one type of nail). Libraries are smaller (Unix philosophy), so if it hasn't had a commit in 6 years it was probably complete anyways and loss of backwards/forwards compatibility is nearly never an issue. Python libraries always exclusively support the version of python you're not using (2 or 3) and are abandoned except for the really popular ones like numpy, django, flask, etc.