• TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Quoting OpenAI:

    Our goal is to make the software pieces as efficient as possible and there were a few areas we wanted to improve:

    • Zero-dependency Install — currently Node v22+ is required, which is frustrating or a blocker for some users
    • Native Security Bindings — surprise! we already ship a Rust for linux sandboxing since the bindings were available
    • Optimized Performance — no runtime garbage collection, resulting in lower memory consumption
    • Extensible Protocol — we’ve been working on a “wire protocol” for Codex CLI to allow developers to extend the agent in different languages (including Type/JavaScript, Python, etc) and MCPs (already supported in Rust)

    Now to be fair, these dashes scream “LLM generated” for their entire post. Regardless, if these really are their reasons:

    • Zero-dependency Install - there are a ton of languages where this is true. Self-contained installs are possible in Python, C#, Rust, C++, etc. Go is one option here too, but doesn’t really provide anything more than the rest of these languages.
    • Native Security Bindings - they supposedly already do this in Rust
    • Optimized Performance - this seems overblown on their part in my opinion, but no runtime GC seems to constrain us to C, C++, Rust, and some others like Zig. Go, C#, Python, etc all do runtime GC. Regardless, in my opinion, runtime GC doesn’t actually matter, and all of these options have enough performance (yes even Python) for what they need.
    • Extensible Protocol - this is doable in many languages. It seems to me here that they already have some work in Rust that they want to use.

    As for the difficulty in making a CLI, clap makes CLIs dead simple to build with its derive macro. To be clear, other languages can be just as easy (Python has a ton of libraries for this for example including argparse and Typst).

    Personally, if I were to choose a language for them, it’d be Python, not Go. It would have the most overlap with their users and could get a lot more contributors as a result in my opinion. Go, on the otherhand, may be a language their devs are less familiar with or don’t use as much as Rust or other languages.

    • Ephera@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      I mean, it sounds like it’s gonna be a fairly large codebase. Rust is definitely better equipped for large codebases than Python…

      I do agree that Python could give them more outside contributors, but from my experience, I don’t think it’s worth swaying from your preferred tooling for that. Outside contributions will make up barely a fraction of code changes either way, so you should rather ensure that your core team is productive.

      • TehPers@beehaw.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        Python can also be used for large codebases (thanks uv), but I agree that Rust is better suited to the job.

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 day ago

          Are you referring to the workspace feature of uv? Is that working well?

          Management might want us to revive a project from a few years ago, which is like 5% Python, but for which we had to build a homegrown horrid implementation of workspace builds, using shell scripts and symlinks. We’d definitely want to get rid of that, if uv’s workspace builds work at all, really. 🫠

          • TehPers@beehaw.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 day ago

            uv’s workspaces work, yep. It’s honestly great. Haven’t really run into any issues with them yet.