Remix.run Logo
jcranmer 7 hours ago

There is a set of languages which are essentially required to be available on any viable system. At present, these are probably C, C++, Perl, Python, Java, and Bash (with a degree of asterisks on the last two). Rust I don't think has made it through that door yet, but on current trends, it's at the threshold and will almost certainly step through. Leaving this set of mandatory languages is difficult (I think Fortran, and BASIC-with-an-asterisk, are the only languages to really have done so), and Perl is the only one I would risk money on departing in my lifetime.

I do firmly expect that we're less than a decade out from seeing some reference algorithm be implemented in Rust rather than C, probably a cryptographic algorithm or a media codec. Although you might argue that the egg library for e-graphs already qualifies.

account42 an hour ago | parent | next [-]

Java hasn't ever been essential outside enterprise-y servers and those don't care about "any viable system".

qalmakka 4 hours ago | parent | prev | next [-]

We're already at the point where in order to have a "decent" desktop software experience you _need_ Rust too. For instance, Rust doesn't support some niche architectures because LLVM doesn't support them (those architectures are now exceedingly rare) and this means no Firefox for instance.

tormeh 4 hours ago | parent | prev | next [-]

A system only needs one programming language to be useful, and when there's only one it's basically always C.

an hour ago | parent | next [-]
[deleted]
trinix912 3 hours ago | parent | prev [-]

A C compiler is also relatively easy to implement (compared to a Rust compiler) if you're making your own hobby OS with its own C compiler and libc.

eru an hour ago | parent | prev | next [-]

> Rust I don't think has made it through that door yet, but on current trends, it's at the threshold and will almost certainly step through.

I suspect what we are going to see isn't so much Rust making it through that door, but LLVM. Rust and friends will come along for the ride.

bmicraft an hour ago | parent | prev | next [-]

Removing Java from my desktop Arch system only prompts to remove two gui apps I barely use. I could do it right now and not notice for months.

teruakohatu 2 hours ago | parent | prev | next [-]

> There is a set of languages which are essentially required to be available on any viable system. At present, these are probably C, C++, Perl, Python, Java, and Bash

Java, really? I don’t think Java has been essential for a long time.

Is Perl still critical?

FieryMechanic 2 hours ago | parent | next [-]

From my experience of building LFS it appears to be needed to built as part of the tool chain.

https://linuxfromscratch.org/lfs/view/development/chapter07/...

SSLy 2 hours ago | parent | prev | next [-]

It's extremely hard to build any unixly userspace without perl dependencies.

bmicraft an hour ago | parent [-]

I really do wonder who (as in "which packages") still depends on perl. Surely it can't be that many?

Edit:

On my (Arch) system removing perl requires removing: auto{conf,make}, git, llvm, glibmm, among others.

johnny22 2 hours ago | parent | prev [-]

critical at build time, not runtime

oblio 2 hours ago | parent | prev | next [-]

Even Perl... It's not in POSIX (I'm fairly sure) and I can't imagine there is some critical utility written in Perl that can't be rewritten in Python or something else (and probably already has been).

As much as I like Java, Java is also not critical for OS utilities. Bash shouldn't be, per se, but a lot of scripts are actually Bash scripts, not POSIX shell scripts and there usually isn't much appetite for rewriting them.

jfjfnfjrh 2 hours ago | parent | prev | next [-]

Debian and Ubuntu enter the chat.....

pantalaimon 2 hours ago | parent | prev [-]

I don't think Perl comes pre installed on any modern system anymore

pjmlp 2 hours ago | parent [-]

I am yet to find one without it, unless you include Windows, consoles, or table/phone OSes, embedded RTOS, which aren't anyway proper UNIX derivatives.

bmacho an hour ago | parent [-]

According to the internet (can't check now) Alpine doesn't come with perl installed.

pjmlp 8 minutes ago | parent [-]

So a distribution mostly used to deploy containers.