6 ms·
>Thankfully, today, we have great programming languages, like Python, that people enjoy using both for large software systems Python is absolutely terrible to
by constantcrying 2y ago
>Thankfully, today, we have great programming languages, like Python, that people enjoy using both for large software systems
Python is absolutely terrible to use as a stand alone language. Almost everywhere it is used (ML, Data Science, Scientific computing, etc.) it is used to call C or C++. The amount of serious Python software that doesn't makes extensive use of calling to other languages is very small.
Python alone has very severe shortcomings, that make it totally unsuited for stand alone development.
- EdwardDiego 2y agoSo many citations needed.
- constantcrying 2y agoFor what specifically? Python is absurdly slow, for naive array task you can easily get a 100x to 1000x speedup compared to any native language. The GIL doesn't really help either... I think my comments are pretty well accepted and substantiated if you look at what people are actually using python for. Right now AI is big, Python is at the center of that, to glue C++ together...
- EdwardDiego 2y agoWell you made a bunch of claims. So, any of them?
- constantcrying 2y ago>Python is absolutely terrible to use as a stand alone language. Follows from the others. >Almost everywhere it is used (ML, Data Science, Scientific computing, etc.) it is used to call C or C++. See the big libraries in those fields. Do you think tensorflow or numpy are native python. If you are using python for scientific computing you will be using libraries which call out to native code. >The amount of serious Python software that doesn't makes extensive use of calling to other languages is very small. Given the above and that Python is most prominently found in those fields it seems pretty certain. There is standalone Python software, but usually only as a replacement for shell scripts or for relatively small applications. >Python alone has very severe shortcomings To name a few: GIL, lack of common default types (e.g. C like integers), enormous interpreter overhead, no mandatory typing (which introduces a whole range of runtime errors impossible in strictly typed languages). These alone make it totally unusable for many applications, unless you call to an external library. >that make it totally unsuited for stand alone development. See above. >Python is absurdly slow, for naive array task you can easily get a 100x to 1000x speedup compared to any native language. Personal experience. >The GIL doesn't really help either... It really does not... >Right now AI is big, Python is at the center of that, to glue C++ together... See e.g. what numpy, tensorflow, pytorch are written in. Spoiler, the matrix multiplication isn't implemented in python.
- IshKebab 2y agoFor what exactly? He's right - the biggest users of Python use it as a convenient way of driving C (Pytorch, Blender, Numpy, Pandas, etc.). On its own it is simply too slow.
- thomasahle 2y agoThese days in ML it's more often "a convenient way" of driving CUDA. So I guess there are no "standalone programming languages". It's a silly argument, though. If you have a million lines of Python code, and some of it calls some library that contains lower-level code, does that mean Python is a "scripting language"? I wouldn't say so.
- d_tr 2y agoIt's just too fast and loose. It is apparent and it says it on the tin. It was designed as a scripting language. Exactly the same holds for JS which is much worse. I have no idea why these languages are considered "easy". I find them a pain to use for anything larger than a couple hundred lines of code.
- sllabres 2y agoThat is that what I have observed too. Python seems to be used more often to call performance optimized libraries (NumPy, opencv, TensorFlow) and so on. I have seen TCL and LUA more often used the opposite way around: A complied core (e.g. C or C++) which allows extensions to be written quickly in the scripting language. Both seems to work well but the use case is a different one.
- thomasahle 2y ago> Python is absolutely terrible to use as a stand alone language. Almost everywhere it is used (ML, Data Science, Scientific computing, etc.) it is used to call C or C++. The amount of serious Python software that doesn't makes extensive use of calling to other languages is very small. I have worked on lots of huge python codebases, so I don't buy this argument. For example, all of YouTube, Instagram, Dropbox, Spotify, Reddit, Pinterest, Quora and Netflix is mostly build in Python. Do many of the libraries that are optimized for speed call some C and C++ code? Sure. But so do many Java libraries. And ML libraries these days have to call CUDA code anyway, so you can't even do "stand alone development" in C.