• Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    20 hours ago

    I would say doneness is about completeness within context, not immutability.

    The environment may change, but within context, it can still be considered done.

    It’s fine to say and consider software never done, because there are known and unknown unknowns and extrapolations and expectations. But I think calling something done has value too.

    It is a label of intention, of consideration, within the current context. If the environment changes and you want or need to use it, by all means update it. That doesn’t mean the done label assigned previously was wrong [in its context].


    We also say “I’m done” to mean our own leave, even when there is no completeness on the product, but only on our own tolerance.

    In the same way, if you shift focus, done may very well be done and not done at the same time. Done for someone in one environment, and not done for someone in another.

    More often than ‘done’ I see ‘feature complete’ or ‘in maintenance mode’ in project READMEs, which I think are better labels.

    • CombatWombatEsq@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      13 hours ago

      Mmm, interesting. Doesn’t Haskell have a monad that represents everything external to the program, for like producing I/O? In some ways I suppose that mentality makes explicit this idea you’re expressing that the environment the program runs in is implicit in the program? A software equivalent of “no man can step in the same river twice, for neither is it the same river nor is he the same man?”