> As a response to this, Theo asked rhetorically "Where's ls, where's cat, > where's grep, and where's sort?", implying that noone so far bothered to > write implementations of even the basic unix utilities in such a > language.
I wasn't implying. I was stating a fact. There has been no attempt to move the smallest parts of the ecosystem, to provide replacements for base POSIX utilities. As a general trend the only things being written in these new languages are new web-facing applications, quite often proprietory or customized to narrow roles. Not Unix parts. Right now, there are zero usage cases in the source tree to require those compiler tools. We won't put a horse into the source tree when society lacks cart builders. > This brings me to the question, what if someone actually bothered? So rather than bothering to begin, you wrote an email. Awesome. Yes, now I am implying something: you won't bother to rewrite the utilities. And I understand, why would anyone bother? It took about 10 years for gnu grep to be replaced sufficiently well in our tree. This stuff doesn't happen overnight. However there is a rampant fiction that if you supply a new safer method everyone will use it. For gods sake, the simplest of concepts like the stack protector took nearly 10 years for adoption, let people should switch languages? DELUSION. > Under what conditions would you consider replacing one of the > current C implementations with an implementation written in another, > "safer" language? In OpenBSD there is a strict requirement that base builds base. So we cannot replace any base utility, unless the toolchain to build it is in the base. Adding such a toolchain would take make build time from 40 minutes to hours. I don't see how that would happen. > Note that with Cgrep and haskell-ls, there do in fact exist > implementations/analogues of two of the mentioned utilities in a > memory safe language (Haskell). Are they POSIX compliant? No. They are completely different programs that have borrowed the names. By the way, this is how long it takes to compile our grep: 0m00.62s real 0m00.63s user 0m00.53s system Does Cgrep compile in less than 10 minutes? Such ecosystems come with incredible costs. For instance, rust cannot even compile itself on i386 at present time because it exhausts the address space. Consider me a skeptic -- I think these compiler ecosystems face a grim bloaty future.