• 1stTime4MeInMCU
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Can’t speak to Scala, but I would imagine some of that is to do with the fact that despite being around for a long time, Python is constantly being updated and added to. It feels new every release, and it’s wide package ecosystem means there’s always something new and handy to do what you want.

    Other languages of course also evolve but somehow Python threads the needle a little better. No matter how much junk you slap into C++ it still feels old even though you’re using the latest release. I say this as someone who primarily developed with C++ for several years.

    • maegul (he/they)@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Apart from new packages (which seems like a not insignificant part of it, as you say) … has the core python language really evolved that much over time? The type annotation system would count as a heavy piece of evolution, but other than that I’d guess the roll out of new features hasn’t really transformed the core language over the years … ? Is there a chance that the core language has just aged better over time?

      • 1stTime4MeInMCU
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Yeah, I’d say barring packages, there’s a couple of other things that go into it:

        1. Core language updates, which are more rare but do happen, like the walrus operator or match case statements, or like you said with typehints (though typehints are somewhat of a combo of multiple things), f strings…
        2. Standard library features, like asyncio, and million other random little things
        3. Language tooling. Python didn’t always have pip and also recently added pyproject as a standard
        • maegul (he/they)@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Yea … all good points … still I’m thinking that the “threading the needle” is in many ways attributable to the core language and design philosophy standing the test of time (so far).

          • 1stTime4MeInMCU
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            For sure; good decisions early about core design and about how to evolve are the foundations on which all else is built.

        • 1stTime4MeInMCU
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          And a possible 4: runtime changes. I suspect this will become more and more apparent and important to the average user, with all the performance updates that have been coming to CPython interpreter