Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think the problem is basically because the build system has to be implemented using some ecosystem, and no other ecosystem wants to depend on that one.

If your "one build system to rule them all" was built in, say, Ruby, the Python ecosystem won't want to use it. No Python evangelist wants to tell users that step 1 of getting up and running with Python is "Install Ruby".

So you tend to get a lot of wheel reinvention across ecosystems.

I don't necessarily think it's a bad thing. Yes, it's a lot of redundant work. But it's also an opportunity to shed historical baggage and learn from previous mistakes. Compare, for example, how beloved Rust's cargo ecosystem is compared the ongoing mess that is package management in Python.

A fresh start can be valuable, and not having a monoculture can be helpful for rapid evolution.



> No Python evangelist wants to tell users that step 1 of getting up and running with Python is "Install Ruby".

True, but the Python community does seem to be coalescing around tools like UV and Ruff, written in Rust. Presumably that’s more acceptable because it’s a compiled language, so they tell users to “install UV” not “install Rust”.


Note that installing python stdlib installs tkinter and thus tcl.

https://wiki.tcl-lang.org/page/Python-Tcl-Interactions


I tend to think that is more Rust community using Python, and RIIR stuff, than Python community themselves.

I know Python since version 1.6, and this has never been a thing until Rust.

Same applies to the RIIR going on JavaScript side.

Including tools that were already written in compiled languages, but of course weren't Rust, or had an idea to make a startup around them.


Partly in jest, you can often find a Perl / bash available where you can't find a Python, Ruby, or Cargo.


Not sure why that's in jest. Perl is pretty much everywhere and could do the job just fine. There's lots of former (and current) Perl hackers still around.


Sounds like the only way out of this is to design language agnostic tooling protocols that anybody can implement.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: