Also, do y’all call main() in the if block or do you just put the code you want to run in the if block?

  • MTK@lemmy.world
    link
    fedilink
    arrow-up
    32
    arrow-down
    10
    ·
    edit-2
    2 days ago

    It really doesn’t. It’s a scripting language, functions are there but at it’s core it runs a script. The issue is that it was so easy to start with that people started doing everything in it, even though it sucks for anything past complex scripts

    It is the excel of databases.

      • jenesaisquoi@feddit.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 day ago

        A scripting language controls an existing binary. A non-scripting language is used to create a new binary.

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        Scripting languages are real. Generally people consider dynamic languages scripting languages but it’s not that simple.

      • mmddmm@lemm.ee
        link
        fedilink
        arrow-up
        0
        arrow-down
        7
        ·
        2 days ago

        It’s a scripting language. What means that the computer runs it line by line, without needing to get the entire project first.

        • frezik@midwest.social
          link
          fedilink
          arrow-up
          13
          ·
          2 days ago

          That is not how Python works. There are very few languages that work by executing line-by-line anymore. Unix shell scripts are one of the few holdouts. JavaScript also does it to a certain extent; the browser starts executing line-by-line while a compiler step works in the background. Once the compiler is done, it starts execution of the compiled form right where the line-by-line execution left off. It helps JavaScript be more responsive since it doesn’t have to wait for the compiler to finish.

          • fruitcantfly@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            2 days ago

            Unix shell scripts are one of the few holdouts.

            I don’t know if this applies to other shells, but bash will not only execute your script line-by-line, it will also read it line-by-line. Which means that you can modify the behavior of a running script by editing lines that have not yet been executed*. It’s absolutely bonkers, and I’m sure that it has caused more than one system failure, during upgrades.

            * For example, if you run the following script

            echo "hello"
            sleep 5
            echo "goodbye"
            

            and then edit the third line before the 5 second sleep has elapsed, then the modified line will be executed.

          • mmddmm@lemm.ee
            link
            fedilink
            arrow-up
            1
            arrow-down
            6
            ·
            2 days ago

            Python still has the -i option, and it still runs the same language as the files interface.

      • MTK@lemmy.world
        link
        fedilink
        arrow-up
        4
        arrow-down
        11
        ·
        2 days ago

        I didn’t say it wasn’t real, it’s just a scripting structure and not object oriented, so it doesn’t make sense for it to start by looking for a “main” object

        • mmddmm@lemm.ee
          link
          fedilink
          arrow-up
          10
          ·
          2 days ago

          not object oriented

          I don’t think we have a name for what you are trying to say here.

          (And yeah, “object oriented” isn’t it.)

            • frezik@midwest.social
              link
              fedilink
              arrow-up
              4
              ·
              edit-2
              2 days ago

              Procedural and OOP aren’t mutually exclusive terms. Most OOP programs are ultimately procedural in nature. Often, the only difference is that the first argument to the function is to the left the function name and separated by a dot.

              • AllHailTheSheep@sh.itjust.works
                link
                fedilink
                arrow-up
                2
                ·
                2 days ago

                fair, I just think it’s misleading to call python procedural, but it lines up with what the commenter above was describing and searching for the term for

                • frezik@midwest.social
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  2 days ago

                  I’d say the term “procedural” itself is an issue. Pretty much any language can be done that way if you choose. IIRC, the creator of Clojure wanted Java to work more that way, and he did it by having a single class full of functions. It’s not a natural way to write Java, and that’s why he invented Clojure.

    • Anomalocaris@lemm.ee
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      2 days ago

      compared with other languages at the time, the ease of access and readability makes it worth it. plus, the heavy duty stuff is usually handled by more optimised code line numpy or sklearn…

      • Shanmugha@lemmy.world
        link
        fedilink
        arrow-up
        4
        arrow-down
        3
        ·
        edit-2
        2 days ago

        Readability? Me eyes bleed from a day of partially staring at python code, and there is a whole another week of that ahead. Tzinch (Edit: Tzeentch) help me

        • Treczoks@lemmy.world
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          2 days ago

          Like in every programming language, it depends who wrote the code. OK, *nearly every programming language, see: LISP.

          You can write cryptic, write-only programs in about any language, but you can even write readable and maintainable PERL scripts (despite people claiming this to be impossible).

          • Shanmugha@lemmy.world
            link
            fedilink
            arrow-up
            2
            arrow-down
            4
            ·
            2 days ago

            As much as I am inclined to agree with this, still can’t

            see: LISP

            Also, see: Python with more than three lines of logic. I could suspect that’s just the me-versus-whitespaces thing, but no, YAML files do not get me dizzy in under thirty seconds of reading. Van Rossum made a huge miscalculation here

            • PolarKraken@programming.dev
              link
              fedilink
              English
              arrow-up
              4
              ·
              1 day ago

              Everyone’s welcome to their opinion of course, but I find Python more readable than anything else and I resent the visual clutter required to make intentions plain in other languages. Feels like having a conversation where people say the words “comma”, “period”, etc.

              I also spend more time with Python than anything else and I suspect these two facts about me relate, lol

              • Shanmugha@lemmy.world
                link
                fedilink
                arrow-up
                1
                arrow-down
                1
                ·
                edit-2
                1 day ago

                Someone should get their hands on someone like me and someone like you and study their brains. I spend most time with PHP and C++, and Python looks like an attempt to write code like prose literature. Very interesting how much of this is habbit, as it can’t be just that: reading prose and poetry in English/Russian/Japanese never produced this kind of resentment