• FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    9 hours ago

    Surely you wouldn’t argue that Rust or C++ would be a more appropriate alternative in that kind of role because they’re statically typed.

    Not C++. Rust hopefully, when cargo script is stabilised!

    Until then I strongly prefer Deno (which is also statically typed) for ad-hoc scripting. Python is surprisingly bad for that use case despite it being super popular for it because:

    1. There’s no way to use third party dependencies reliably from a single-file scripts. You’re limited to the standard library, or setting up a whole pyproject.toml, venv and so on.
    2. You can’t import files by relative file path like you can in Deno, Zig, and Rust (sort of; it’s slightly hacky). That leads to people doing hacks to PYTHONPATH or importlib which completely breaks all tooling.
    • xxce2AAb@feddit.dk
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      8 hours ago

      I agree that Python’s handling of 3rd-party dependencies is cumbersome, especially for scenarios that would have otherwise been trivial. However… The use-cases I’m referring to in my context have no need for anything outside the standard library. I’m literally talking about using Python as a shell script alternative, more or less.

      …Which is admittedly the lowest of bars. It’s hard to be less ergonomic or more arcane than Shell script - unless one resorts to the Dark Arts of Perl or APL.

      This is the first time I’ve heard of Deno, but I’m not sure that having to install a 110Mb JS VM + runtime is more convenient in my context than simply using Python which is already guaranteed to available on any system I use and does all I need. Is Typescript a better language than Python? Perhaps. Does that matter for my use-cases? No, not really. I definitely wouldn’t use Rust - or any other compiled language - for scripting. While I haven’t had time to look at Zig as much as I’d like, I do adore the language so far - I can definitely see myself transitioning from C++ to Zig, and likely will to the extent I’m able. Still don’t see it as a Python replacement though (again, for my use-cases - I’m emphatically not arguing that there isn’t plenty of projects implemented in Python that could have benefited from being written in Zig or Rust instead).

      If you have any other suggestions for viable alternatives, I’m open to suggestions though.