• UndercoverUlrikHD@programming.dev
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    Is it really tempting for people? They’ve given me too many headaches when I’ve had to reformat or add functionality to files.

    Unless it’s a simple single use script that fit on the computer screen, I don’t feel like global variables would ever be tempting, unless it’s for constants.

    • yiliu@informis.land
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      They’ve given me too many headaches…

      I.e. you did use them, but learned the hard way why you shouldn’t.

      Very likely OP is a student, or entry-level programmer, and is avoiding them because they were told to, and just haven’t done enough refactoring & debugging or worked on large enough code bases to ‘get’ it yet.

    • fluxion@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      As with the sexual connotation here, the temptation is not rooted in long-term considerations like future maintainability

    • PetDinosaurs@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Most people suck at software engineering.

      Plus, there’s always the temptation to do it the shitty way and “fix it later” (which never happens).

      You pay your technical debt. One way or another.

      It’s way worse than any gangster.

    • BorgDrone@lemmy.one
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 year ago

      Is it really tempting for people? They’ve given me too many headaches when I’ve had to reformat or add functionality to files.

      I don’t get it either. Why would you ever feel the need for them to begin with?

      • CapeWearingAeroplane@sopuli.xyz
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        Unironically: For in-house scripts and toolboxes where I want to set stuff like input directory, output directory etc. for the whole toolbox, and then just run the scripts. There are other easy solutions of course, but this makes it really quick and easy to just run the scripts when I need to.

  • idunnololz@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Just create a global object and stuff your variable in there. Now you have a global singleton and that’s not a purely bad practice :D

        • SkyNTP@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          Software dev is full of obscure keywords that describe otherwise pretty simple or basic concepts you stumble upon in practice naturally and that you probably already understand.

          • singleton: a class/object that is designed to be single use, i.e. only ever instantiated with a single instance. Typically used when you use class/objects more for flow control or to represent the state of the program itself, rather than using it to represent data
          • immutable: read-only, i.e. unchangeable
          • dependency injection: basically when you pass a function or object into another function object, thereby extending their effective functionality, typically for modular code and to separate concerns.

          Here’s one more of my favourite examples of such a keyword: memoization