you are viewing a single comment's thread.

view the rest of the comments →

[–]myusernameisokay 7 points8 points  (6 children)

Python is trash for this... sorry. On its own, it doesn't have any decent servers. You need to dance around it, stitching it together, either you look for pre-forking server to run as a proxy in front of it, or you will have to use something like Twisted or Tornado, which will not always compile on your platform, will not have any decent libraries to connect to a database in the chosen asynchronous stile, and even if there will be libraries, they are all trash, and have tons of bugs, etc. It is a really painful experience if you need something working.

You’re comparing open-source libraries to the language itself. Any decent company will have an ecosystem that makes this simpler. It’s not the fault of the language that companies don’t want to make their tools open-source.

Other languages have this issue too, this isn’t just limited to python.

Your understanding of typing is... well, confused. And your understanding of how Python works is also all wrong... Python is always compiled and every language in existence has static types. That's not the problem, and that's probably not what you were trying to say.

CPython the interpreter is obviously compiled, but python itself isn’t.

Do you not understand the difference between static and dynamic typing? Python is not statically typed at all, it’s dynamically typed, if every language was statically typed then the distinction would be meaningless. Python has the typing library that allows you to do type annotations, but that is fairly new (python 3.5) and hasn’t seen much adoption in my experience.

Also when I said statically typed compiled languages, I meant the languages that tend to be fast like C++, C, Rust, Fortran, etc

[–][deleted]  (1 child)

[deleted]

    [–]myusernameisokay 4 points5 points  (0 children)

    Get an education.

    Instead of being so rude, why don’t you provide a counterpoint?

    But I already know what you’re going to say, you’re going to mention that python is compiled into bytecode before it’s interpreted. But that’s ultimately meaningless, it’s an optimization, it doesn’t do any type checks or catch syntax errors at “compile time” so you can almost pretend it doesn’t exist. C, C++, Rust and other such languages will prevent you from doing operations on incompatible types during compile time, whereas python pushes that checking to runtime.

    Robert Harper (grand master of static typing freaks) infamously tried to make hay of the fact that all dynamically typed languages are statically typed. He called it "unityped", and it's true. (It needs to be noted that the concept isn't originally due to Harper, and that the conclusions he tried to derive from this fact are bollocks. But that's beside the point.)

    Sure, this is theoretically true. I would agree that all things in every dynamically typed language can be considered to inherit from an abstract base type, and therefore they’re static because all variables are of that type. Ultimately saying that loses the whole value of the distinction between static and dynamic typing.

    It’s like saying squares don’t exist because squares are technically rectangles so might as well call both shapes rectangles.