Hacker News new | ask | show | jobs
by blueflow 1022 days ago
exa: 8 years, dead

ls: 38 years and counting.

Long live ls.

6 comments

Seems a bit unfair to call it dead, exa's maintainer is unreachable, but the whole thing lives on as eza and is very much alive. That's a bit like saying that any company/product that changes it's name is dead at that point.
Everyone who has exa installed and setup aliases now has to uninstall, install a new tool, and edit their workflows.

exa is dead. People can move to yet another ls replacement, but they can't stay on exa.

This seems to heavily exaggerate the problem IMHO. Most sane people don't replace any of the basic tools like exa on critical infra that is expected to be low maintenance. Exa is a tool you install in terminals you personally use, purely for your personal comfort. And due to this situation it needs to be manually updated to a new name/new source, it's a one time operation. Surely not ideal, but hardly an unsurmountable obstacle. People using tools like this aren't exactly the sort of audience that is unfamiliar with having to install/uninstall a package.
You could stay on the current version of exa and likely not have an issue for years down the road.
Everyone who has exa installed can continue to use it as long as desired.
I like vanilla `ls` but I do miss some display options from GNU ls when I'm on Mac, e.g., grouping directories first.

Luckily, of course, it's open source, so I just added the options I needed.

https://github.com/torstenvl/betterls if anyone is interested

exa seemed like overkill for my needs, and it was easier to add a couple lines of code than to learn a whole new tool.

It's also a whole other tool and in Nim to boot, but https://github.com/c-blake/lc allows you to group "dot-directories" before "dot-files" before "non-dot directories" before non-dot files.

There might be enough other new functionality such as abbreviation or multi-attribute colorization schemes to motivate learning a new tool. E.g., neither "dot-ness" nor "directory-ness" in the above is hard-coded. They could be any other convenient elements of the typology / taxonomy.

You could also just install coreutils via brew...
Last I checked, GNU coreutils don't know anything about, e.g., macOS extended attributes.

I specifically wanted to stay close to stock because macOS `ls` is designed for the system it runs on. Installing coreutils would be counterproductive.

on mac I do this:

    alias ls='LC_COLLATE=C \ls -F'
doesn't sort dot directories before dot files, but it's good enough
pneumatic drill: 8 years, dead

the sharp stick of metal my dad gave me: 38 years and counting

long live the sharp stick of metal ?

What a terrible take. Yes, ls is maintained. Although, maintained is a very strong word. It exists. It's getting a few maintenance commits here and there, and in the mean time, it's feature done. It won't evolve anymore. Just like how exa will keep existing, and won't evolve anymore. Exa also does a hell of a lot more than ls, so will LSD, Eza and others. But keep using the sharp stick of metal if it makes you feel better.

> Yes, ls is maintained. Although, maintained is a very strong word. It exists.

Why would it be a strong word? Here it is, in src/ls.c: https://github.com/coreutils/coreutils

It is then packaged by tens of operating system distributions, who themselves maintain extra patchsets, some of which are then upstreamed.

It is installed and used on millions (billions?) of devices, for 3 decades.

It's a very reliable and trusty "sharp stick of metal" :)

That's GNU coreutils.
Yes, and it includes the "ls" program that this thread discusses.
I like how people are arguing that ls is alive, like there is active work being done on it over 38 years. A Unix tool that does one thing well can be considered finished and sit for years without anything going on. That doesn't mean it's dead. Sure, maybe people want fancy new stuff, but again, doesn't mean dead. If it had security problems for years, then one could argue that it's dangerous for it not to be updated and if it isn't, then proclaim it dead so people will move to something safer, but this trend to call something dead because it isn't in rust and doesn't have colors and git awareness? Meh
Exactly! ls is alive, and just exists, mostly. The commits done on it are extremely minor changes to save up 0.0001% of performance and because the APIs it was using are sometimes deprecated. And that's fine!

However, when a new project arrives and does more, suddenly it's dogshit because it's stopped evolving despite doing infinitely more than ls.

Unixheads have a weird inferiority complex when it comes to anything not in coreutils.

coreutils is GNU. GNU is not unix. BSD utilities in base have far more utilities than coreutils.

Also, learn to use ls -F under an alias. You get the 99% of the functionality with very little.

Good for you if you accept that your tools might get rug-pulled from you any time. I don't.
Is exa gone ? Can you not download exa anymore ? Are the binaries deleted from the internet ? Is the source completely overwritten ? Has it been removes from crates.io and from package managers ? Has it suddenly stopped listing files in your folders?

Calling it having your tools rug-pulled from you is, quite frankly, the most moronic thing I've read today.

Not yet.
Looks like ls had its latest commit three days ago:

http://git.savannah.gnu.org/cgit/coreutils.git/commit/src/ls...

Then again, ls is much more popular than exa.

Which ls is 38 years? Forks don't count.