Python is the most popular programming language and beloved by many. However I can’t understand why (this is still the case in 2024).

Here are my main gripes with it:

  • It is slow, performance intensive tasks have to be offloaded to other languages, which makes it complicated to analyse. Moreover I wonder how many kwH could have been saved if programms were written in more performant languages. (and there are better alternatives out there)
  • The missing type system makes it easy to make errors, and the missing compiler makes it hard to catch them
  • It has no linear algebra built in, so you always have to convert things to numpy arrays, which is quite annoying
  • Managing virtual environments and pip packages feels overly complicated

I guess much comes down to personal, but I just can’t understand the love for python.

  • scharf_2x40@lemmy.worldOP
    link
    fedilink
    arrow-up
    4
    ·
    10 months ago

    I mean others don’t seem to have the same problem with Python as me, so if it is right for them, I can’t really complain, but I would use the following languages for the following tasks

    Scientific Computing (my main area): I prefer Julia, it is faster, feels more intuitive and feels like a modern python for scientific computing

    Web: there are many great frameworks out there, i am intrigued by phoenix for elixir

    Game Developement: Nobody use python in games to distribute for anything heavy I hope, but for scripting I would use Lua

    Learning: Python is often the first language, that people learn, and I guess that also explains it’s widespread use to some degree. I would teach something less high-level like C as a first language, although I think writing “high-level code” also has a learning curve to it.

    Scripting: Fine, I guess python is great for small scripts, although one could also use Ruby

    • morrowind@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      lua imo is better for both learning and scripting, primarily due to being a very simple language