9
Comments
  • 2
    We can agree on that
  • 12
    I mean, as a language I think it's good, but can be used in ugly ways. As with any language, I'd question the dev!
  • 5
    🚩please explain.
  • 9
    Kinda slow, bad package system, dynamically typed, bad standard documentation support (no way to use docstrings on variables), bad/flaky documentation of the standard library, bad OO support (no interfaces, no proper abstract classes, no visibility modifiers only weird underscore prefixing stuff), lambdas suck, it's badly abstracted (some features are direct wrappers OS concepts which depend on how it was compiled or what platform it runs on), inconsistencies with mutability (not that bad, but still), ugly underscore magic functions, sometimes procedural len(list) sometimes OO whatever.size(), problems with lack of forward declarations (including classes not being able to use themselves as type hints, atleast that's fixed in the newest version), and general inconsistency/unpredictability because it's dynamically-typed (I've said that already but it bears repeating). These are the ones from the top of my head
  • 2
    Serious monkey balls sounds about right
  • 15
    All I'm hearing is a bunch of whiny Java devs who think OOP is the only way to approach a problem.
  • 0
  • 10
    Atleast in python you don't have to type 20 lines to just fuc**ng parse a json string.
  • 0
    @v-vp whats wrong with that? Thats not that much typing really..
  • 2
    @gat0r Not only do I like Java but I also love C. I just don't like sloppy, badly designed scripting languages. Proper OOP and procedural are both great. Python does neither well
  • 1
    dun dun dun
  • 2
    Learn to use it
  • 0
    This is not everyone is saying these days !
  • 2
    @12bitfloat
    Visibility modifiers? Double underscore is private, that's it. Simply different, but not missing. "Protected" is debatable.

    Interfaces? Abstract base classes.

    Using themselves as type hint? You can use a plain string with the name as a type hint, which is replaced at runtime. No ideal, though.

    What don't you like about the existing standard library's documentation? Yes, some modules (e.g. msilib, fcntl to name a few) are hardly documented, but the most modules are.

    Len(obj) calls OP obj.__len_()_, when obj.size() is implemented, it usually is older code.
    The underscore functions try to separate "normal" methods and "special methods", preventing one developer to write .length() and another .size().

    The abstracting to underlying OS functions are getting less (e.g. UTF-8 should be mostly the default mostly, pathlib replaces / and \ misunderstandings).
    Of course some explicit platform specific modules will remain platform specific (pwd, spwd, fnctl, winsound etc.).
    I'm open to hear more platform specifics.

    About lambdas: They suck, but I'm not sure what would be the alternatives.
  • 0
  • 3
    @sbiewald You can make excuses for all of my points, that doesn't change the fact that all of these are slight annoyances that add up
  • 2
    Wait, why do we need lambdas at all?

    def function(arg):

    def anotherfunc(arg):

    print("Yay!")

    anotherfunc(None)

    You can just make a function at any time. And functions are objects too. anotherfunc.attrib = 1 is a thing.

    Is there a [code] tag? My spacing is all crap now.
  • 1
    @Demolishun There isn't a code tag - in fact there is no formatting at all.
    Would be useful sometimes, but the reason is that overused formatting can be distracting - something I can support.
  • 1
    @sbiewald <cries into hands> But, but, but my python code needs formatting... <sobbing>

    Thanks for the info!
  • 3
    @Demolishun you can make use of Highlight Bot:

    @highlight

    def function(arg):

    def anotherFunction(arg):
    print("yay");

    anotherFunction(None)
  • 1
  • 0
    @irene spaces did not work the first time.

    https://repl.it/repls/...
  • 0
    Dont talk to me or my son ever again!
  • 0
  • 0
    @irene This is a better example of a function factory:

    https://pyfiddle.io/fiddle/...
  • 1
    Everything is a statement (reference?) in Python as well. So that means you can make factories for classes too. Its the ultimate on fly do whatever the hell you want language. The king of introspection. I really miss pythons introspection in C++.
  • 0
    @ everyone in this shitty thread, you have all been b8'd. OP hasn't responded to ANYTHING.
  • 1
    JavaScript sucks even harder.
  • 1
    @Nicci How hard? Python can suck a golf ball through a garden hose.
  • 0
    @Pyjong instructions unclear:

    import whores
  • 2
    @Pyjong Javascript is getting better though. Python... well it's still python
  • 1
    @12bitfloat I like the purpose of js when used for browsers for all the fancy drawing stuff. Servers can this way save performance for actually serving information and offload this to clients. Not as huge fan on using js in cmdline. I'm not too seasoned in js tho.
  • 0
    @irene Yeah true, but is it really too much js? I'd picture that be caused by too much data put on the site. (Despite the fact that sometimes it helps to disable js because it loads all the ads and videos and whatnot)
  • 0
  • 0
    @Demolishun also this, fuck lambdas
Add Comment