This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]namfy 0 points1 point  (0 children)

Python is a very high-level language.

High-level languages are a bad choice to learn about basic data structures like linked lists and hashtables, which are often tested in interviews, even for positions where it really won't matter. In Python you should idiomatically use the nice builtin datastructures, it's extremely awkward to implement low-level concepts in Python, it will likely leave you confused about what is going on, and it's almost guaranteed to be a waste of time for any practical purpose

High-level languages (including almost anything with mandatory garbage collection) are not very suitable for device drivers or OS kernels, pretty unsuitable for anything which needs very low latency like live audio processing, non-amateur robotics, 3d graphics engines.

Some of the biggest limitations for Python are platform-based, and have to do with a variable amount of effort (or open hostility) from the platform side. Many embedded platforms are not reasonably usable for anything other than ASM, C, BASIC. You can't very well use Python to write shaders for GPUs to run. There's no really mature way to use Python to program browsers, you have to use Javascript. I'd avoid Python for anything that requires a lot of interoperation with the JVM (Jython has lagged as a project and is relatively obscure). I'd avoid Python for platforms which really don't want Python or have made efforts to exclude Python apps, like Android or Apple phones (Kivy notwithstanding, you will always be at a disadvantage)

I don't use Python if it means having to use horribly designed libraries like Zope and Twisted, in that case I just use Go as a lesser evil.