• addie@feddit.uk
    link
    fedilink
    English
    arrow-up
    35
    arrow-down
    1
    ·
    2 days ago

    Interesting, but misguided, I think.

    If you’ve selected Python as your programming language, then your problem is likely either to do some text processing, a server-side lambda, or to provide a quick user interface. If you’re using it for eg. Numpy, then you’re really using Python to load and format some data before handing it to a dedicated maths library for evaluation.

    If you’ve selected Go as your programming language, then your problem is likely to be either networking related - perhaps to provide a microservice that mediates between network and database - or orchestration of some kind. Kubernetes is the famous one, but a lot of system configuration tools use it to manipulate a variety of other services.

    What these uses have in common is that they’re usually disk- or network- limited and spend most of their time waiting, so it doesn’t matter so much if they’re not super efficient. If you are planning to peg the CPU at 100% for hours on end, you wouldn’t choose them - you’d reach for C / C++ / Rust. Although Swift does remarkably well, too.

    Seeing how quickly you can solve Fannkuch-Redux using Python is a bit like seeing how quickly you can drive nails into a wall using a screwdriver. Interesting in its way, but you’d be better picking up the correct tool in the first place.

    • Pup Biru@aussie.zone
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 day ago

      further to that, “demonstrably worse for the planet” i’d like to debate: considering a huge amount of climate science is done with python-based tools because they’re far easier for researchers to pick up and run with - ie just get shit done rather than write good/clean code - i’d argue the benefit of python to the planet is in the outputs it enables for significantly reduced (or in many cases, perhaps outright enabled) input costs

      • xep@discuss.online
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        1 day ago

        If you need to optimize for performance, a common approach in Python is to extend it in C/C++. It’s quite easy to do. Many high performance modules in Python are written in C/C++.

        It’s also easy to embed Python in a C/C++ program, should you feel the need to add some scripting support to it. A very nice feature of Python, in my opinion.

        • Pup Biru@aussie.zone
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 day ago

          absolutely! similar is true of node in v8 (though python imo is far more mature in this regard) and probably most other languages

          exactly why things like numpy are so popular: yeah python is slow, but python is just the orchestrator

      • bryndos@fedia.io
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        Compare it to the likely alternative for the task/person, probably R or even MS excel in many cases i’d guess. The alternatives should ideally be based on empirical observation of the population. The marginal saving of choosing a higher efficiency than python might look a lot lower.