Let’s says you want to make a program that takes user input and follows the CRUD structure for some data. This program would be executed from the terminal and wouldn’t be used in any other projects.

If this program was made in a language that supports creating packages for other programs (e.g. Python, Rust, NodeJS), should this program be a ‘package’, or should it be a standalone program that has a simple “setup” script?

Assume this is a CLI/TUI app that runs in a Linux terminal.

EDIT: I’ll provide some more details since it seems I was too vague:

This program would allow the user to create ‘Script’ objects that would be saved to a file on their system. These objects would contain metadata such as a name, the command to run, and a description.

These Script objects would only be used by this program, and by the user. (i.e not a system program)

  • Phoenix3875@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    9 days ago

    It doesn’t matter if it’s truly a one-off.

    However, the conventional wisdom is to split the potentially reusable part as a library package and the executable to be a thin layer on top of that library.

    In this way, for example, testing can just depend on that library. In the future, if there are requests that calls for a separate executable, the library can be reused.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        8 days ago

        Still vague, but either way if it’s a Python CLI program the best option is to publish it as a package on Pypi and then users can install it via uv tool install <your tool>. Don’t even think about using Pip.

  • Maddier1993@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    9 days ago

    Does this program need to save the data for the CRUD part?

    If so, it’s best to make it into a standalone program that writes to a DB and maybe also provides APIs to external programs to query the data from the DB.

  • Gonzako@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    9 days ago

    You’ll need to go to some specifics if you want some pointers. Atm, I use Python to bridge a booking program into the financials one through the creation of xml files.

  • Azzu@leminal.space
    link
    fedilink
    arrow-up
    0
    ·
    9 days ago

    It entirely depends on what you want the user experience to be like, and what ecosystem you choose.

    So, no idea, give exact specifications.