News for hackers. Stuff that matters.
Re:Exa Is Deprecated by arjvik on Thursday September 07, 2023 @06:21AM (#37416902)
I've been using LSD instead of Exa, so I'm lightly relieved that I don't have to change over.

Both projects are amazing little utilities that when combined with a well-customized shell, really make using the terminal a joy.

I absolutely love the trend of rewriting classic Unix utilities in rust, because the new tools often have (small or large) usability and quality of life improvements that altogether make the terminal a much more powerful environment.

Re:Exa Is Deprecated by scoopr on Thursday September 07, 2023 @06:27AM (#37416956)
Re:Exa Is Deprecated by bachmeier on Thursday September 07, 2023 @07:20AM (#37417337)
> I absolutely love the trend of rewriting classic Unix utilities

I avoid them unless I'm capable of maintaining them myself. My primary reason for using classic Unix utilities is trusting that they'll still work in a few years. The initial stages of a rewrite can be a lot of fun, but I want to use it long after the excitement has worn off.

Re:Exa Is Deprecated by sanderjd on Thursday September 07, 2023 @07:50AM (#37417579)
YMMV, but many of us find it easier to maintain rust + cargo than the old C + autotools mess.
Re:Exa Is Deprecated by scbrg on Thursday September 07, 2023 @07:55AM (#37417624)
And yet, exa is deprecated :-)
Re:Exa Is Deprecated by Klonoar on Thursday September 07, 2023 @08:20AM (#37417866)
If the owner is outright missing, to the point where the newer fork owners can't even get the repo archived, one would reasonably assume that they'd need to rename/rebrand the tool in order to publish it elsewhere.

It frankly doesn't seem like a deprecation in the traditional sense.

Re:Exa Is Deprecated by mingus88 on Thursday September 07, 2023 @09:19AM (#37418501)
Either way, it still speaks to the maintainability of these modern replacements, many of which are personal projects.

tools like ls or grep are certainly showing their age, but that has also been their strength. The POSIX ecosystem comes in many flavors but I can always depend on it.

It’s not like I can ever expect to shell into any arbitrary system or container and expect to have exa/lsd/rg or any of these nice replacements available to me. My tooling needs to be somewhat more portable.

Re:Exa Is Deprecated by Klonoar on Thursday September 07, 2023 @09:30AM (#37418638)
> My tooling needs to be somewhat more portable.

Ah yes, because it's 100% impossible to learn new tools and fall back to the core ones when you need to. ;P

I've been doing this for decades now, it's just not that big of a deal.

Re:Exa Is Deprecated by jjgreen on Thursday September 07, 2023 @10:20AM (#37419274)
... as in

   if [ -z "$(which exa)" ]
   then
     LS1='ls -1'
   else
     :
   fi
   ${LS1} ${SOME_DIR} | ... 

?
Re:Exa Is Deprecated by Macha on Thursday September 07, 2023 @10:41AM (#37419588)
I just have in my personal systems ls aliased to exa (with some of my preferred options like group-directories-first) and on other systems it's still ls. So my usage is the same regardless of whether it's exa or ls. This isn't a programming language or a complicated tool like jq vs competitors where what I need to do changes. I just get the nicer presentation on my local machine and "graceful degradation" back to the defaults of GNU ls on remote machines which don't have my preferred setup installed on them.
Re:Exa Is Deprecated by dataflow on Thursday September 07, 2023 @10:49AM (#37419715)
If you do that consider if command -v exa > /dev/null instead, so you don't spawn subprocesses unnecessarily.
Re:Exa Is Deprecated by Conscat on Thursday September 07, 2023 @03:24PM (#37424278)
Exa is an interactive utility. It doesn't make much sense to put it in a script like that. If you were to use rg or ug instead of grep, branching like that would probably be worthwhile, though.
Re:Exa Is Deprecated by sanderjd on Thursday September 07, 2023 @08:13AM (#37417795)
Yes but people did not find it daunting to create a fork.

But if what the comment I replied to meant by "capable of maintaining them myself" was about having an organizational structure where they could become an official maintainer of the official project rather than needing to fork it if the owner becomes unavailable, then yep, that's a great point about these single-owner projects.

But my original interpretation was about the difficulty of maintaining the code. To me, these rust tools are a huge improvement in that way.

Re:Exa Is Deprecated by scbrg on Thursday September 07, 2023 @08:33AM (#37417984)
OK. Then we interpreted that comment differently. To me the point was that with ls, you don't need to worry about what happens when it's abandoned. You know it's going to be there in ten years. And probably fifty too.
Re:Exa Is Deprecated by bachmeier on Thursday September 07, 2023 @09:03AM (#37418310)
Your interpretation is what I intended. Thing is, I don't anticipate ever needing to touch the code if I use the utilities installed by default on whatever Linux distribution I'm using (which includes Windows, which I use as an interface for WSL). Even if I was comfortable with Rust, which I'm not and haven't used in years, it would still take a lot of time to understand the code well enough to make changes.
Re:Exa Is Deprecated by sanderjd on Thursday September 07, 2023 @01:09PM (#37422132)
Yeah, I totally get the longevity argument. But that precludes any useful new tools, and I'm personally never happy with the status quo; I don't think the software developers of the 60s and 70s discovered the perfect final set of useful userspace tools. And none of them would have thought they had either, and would have scoffed at the idea of being stuck indefinitely on a static set of commands. Their whole philosophy was about making it easy to make and cobble together little tools like this!

But in practice, the tooling for making those tools never got very good. (That is, in my opinion - there is at least one commenter here who replied to me about actually liking autotools, which is fair enough, just not my opinion.)

So while fully recognizing the value of the old tools that will always exist, for new useful tools, I'm very happy to see this renaissance of writing them in rust. In my opinion, it is much easier to build them, dig into their implementation, and contribute to them (especially without introducing security vulnerabilities or data races).

Where I do absolutely agree, and what I do wish for is that more of this were being done under the auspices of an organization, like how the `ls` most of us are using is likely maintained by either GNU or one of the BSD organizations.

Re:Exa Is Deprecated by kibwen on Thursday September 07, 2023 @08:16AM (#37417825)
This is a non-sequitur. The repo is deprecated because the repo owner is absent, and development is continuing in a fork.
Re:Exa Is Deprecated by pohl on Thursday September 07, 2023 @08:11AM (#37417780)
Yetter still, it (eza)is being maintained.
Re:Exa Is Deprecated by dkdbejwi383 on Thursday September 07, 2023 @08:45AM (#37418106)
This is a GitHub ownership model problem, not a problem with the Rust toolchain or the concept of creating modern, user-friendly command-line software.
Re:Exa Is Deprecated by predictabl3 on Thursday September 07, 2023 @12:39PM (#37421655)
Oh god, it took a whole fraction of a second to replace 'exa' with 'eza' in my nix config and redeploy. whatever will I do?

After not noticing for months, because exa kept on wokring fine and still being more pleasant than `ls`. Oh noooooo.

Re:Exa Is Deprecated by dang on Thursday September 07, 2023 @03:45PM (#37424563)
Could you please stop posting unsubstantive comments and flamebait? You've unfortunately been doing it repeatedly. It's not what this site is for, and destroys what it is for.

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.

Re:Exa Is Deprecated by saurik on Thursday September 07, 2023 @09:13AM (#37418421)
FWIW, my mileage definitely varied: autotools--which is quite easy if you bother to learn how it works and is then almost infinitely flexible--has pretty much never failed me (I think there was one incident for a while related to building stuff for iOS? regardless this was fixed long ago), but I have had to file and participate in a number of bugs on cargo, most of which are still open :/, and I haven't even developed anything in Rust myself yet... I've merely tried to compile and use stuff other people wrote and run into myriad ridiculous problems.
Re:Exa Is Deprecated by faitswulff on Thursday September 07, 2023 @09:27AM (#37418599)
> I've merely tried to compile and use stuff other people wrote and run into myriad ridiculous problems.

Which ones gave you trouble?

Re:Exa Is Deprecated by diarrhea on Thursday September 07, 2023 @09:57AM (#37418991)
> quite easy if you bother to learn how it works

A timeless tautology.

Some things just are easy and pleasant. Caddy server, Cargo, ripgrep come to mind. Some things are easy only once you've learned them. No kidding!

Re:Exa Is Deprecated by zanellato19 on Thursday September 07, 2023 @10:16AM (#37419223)
Which system do you use that cargo failed to compile? On Linux and Mac I have never had anything fail to compile for me with it.
Re:Exa Is Deprecated by predictabl3 on Thursday September 07, 2023 @12:37PM (#37421610)
lol, as a distro package maintainer, I've literally stopped packaging and stopped using software that uses autotools. Given me meson or give me a software compiled in a respectable language, or preferably, death. I'd take cargo and its crates.io namespace warts every day over autotools, and twice on every day of the week.
Re:Exa Is Deprecated by sanderjd on Thursday September 07, 2023 @12:54PM (#37421892)
We'll just have to agree to disagree about autotools :) But I feel like I did try to bother to learn how it works, but nonetheless failed, and I think you're right that it is almost infinitely flexible, but I think that is not a good thing.

Agreed that cargo has bugs and I hope it improves over time (granted: it is not at all new). But say what you want about cargo, at least it's an ethos!

Re:Exa Is Deprecated by bjourne on Thursday September 07, 2023 @04:19PM (#37424984)
Try getting autotools to work on Windows. Then try getting it to compile with Visual Studio. Then try getting it to cross-compile 32-bit binaries on a 64-bit system. If you aren't bald already I promise you'll tear your hair out.
Re:Exa Is Deprecated by gilcot on Thursday September 07, 2023 @06:31PM (#37426522)
windows…
Re:Exa Is Deprecated by justcool393 on Thursday September 07, 2023 @05:47PM (#37426061)
reminds me of this old joke

> I saw a book entitled "Die GNU Autotools" and I thought "My feelings exactly". Turns out the book was in German.

https://twitter.com/timmartin2/status/23365017839599616

gnu autotools i suppose works for some projects, but wow does it seem to be completely annoying to use.

Re:Exa Is Deprecated by dorfsmay on Thursday September 07, 2023 @08:10AM (#37417768)
Not even ripgrep?
Re:Exa Is Deprecated by justin_oaks on Thursday September 07, 2023 @11:15AM (#37420165)
I usually don't reach for new command line tools, but ripgrep is one where I feel stupid for not using it sooner.

Even VS Code uses it for its search beneath the hood.

Re:Exa Is Deprecated by smartmic on Thursday September 07, 2023 @08:13AM (#37417798)
s/they'll still work in a few years/they'll still work in a few decades/

Related: the Lindy effect (https://en.wikipedia.org/wiki/Lindy_effect)

Re:Exa Is Deprecated by sundarurfriend on Thursday September 07, 2023 @09:53AM (#37418946)
exa was the first utility program to segfault on me in over a decade. Brought me a useful dose of realism about the maturity of these projects, so I'm much more measured and careful about adopting them now.
Re:Exa Is Deprecated by pdimitar on Thursday September 07, 2023 @08:04PM (#37427448)
For what it's worth, I'm using several Rust tools replacing classic UNIX programs for at least 3 years now and they never crashed.

Beware of [HN] bias. People are very quick to rain on Rust for reasons none of them have ever explained substantively and with facts, and many others are quick to agree without checking.

Re:Exa Is Deprecated by sundarurfriend on Friday September 08, 2023 @02:56AM (#37430374)
> Beware of [HN] bias. People are very quick to rain on Rust for reasons none of them have ever explained substantively and with facts, and many others are quick to agree without checking.

I'm not sure what this paragraph is doing in this context. I was specifically talking about my own experience. I see far more praise for Rust compared to negative comments in any case, and was biased towards assuming "Rust rewrites of tools may lack features (due to being newer) or be less portable or whatever else, but the one thing they'll have is stability and reliability". That came crashing down when exa crashed and core dumped.

It didn't turn me into some anti-Rust fanatic either (which people seem to interpret any criticism of Rust-related things as), it just made me realize that in the end it's still up to the individual tool and programmer, and I shouldn't make strong assumptions based on the language a tool is written in.

Re:Exa Is Deprecated by pdimitar on Friday September 08, 2023 @08:23AM (#37432601)
> I'm not sure what this paragraph is doing in this context. I was specifically talking about my own experience.

Just a small precautionary statement. I've observed it enough times to get very wary of it.

> I see far more praise for Rust compared to negative comments in any case, and was biased towards assuming "Rust rewrites of tools may lack features (due to being newer) or be less portable or whatever else, but the one thing they'll have is stability and reliability".

Filter bubbles in a nutshell, I usually see mostly negative ones and barely see any praise (though I'd define "praise" here as "fan-boying", and NOT as "recognizing the strong sides"; the latter is quite normal and should not be called praising).

> That came crashing down when exa crashed and core dumped.

That's the part I find a bit overly dramatic, this was likely Rust's `panic` mechanism so they likely just didn't handle an expectation / assertion in the code? I had several Rust services in production for years and former colleagues have contacted me to tell me the thing hasn't crashed even once and was only ever restarted for upgrades.

> It didn't turn me into some anti-Rust fanatic either (which people seem to interpret any criticism of Rust-related things as), it just made me realize that in the end it's still up to the individual tool and programmer, and I shouldn't make strong assumptions based on the language a tool is written in.

Yes, fair. If you pepper your Rust code with `.expect()` and `.unwrap()`, the program ending abruptly is expected because the team hasn't taken precautions to handle all possible errors.

Re:Exa Is Deprecated by just_testing on Friday September 08, 2023 @11:32AM (#37434910)
Which tools, if I may ask?
Re:Exa Is Deprecated by Ferret7446 on Friday September 08, 2023 @06:06AM (#37431698)
Wow. Assuming that is true/not due to a misunderstanding, that really brings a dose of reality to the "Rust is safe!" selling point. Doesn't matter if the language is technically safe, if in real world use it still segfaults (even if due to programmer misuse).
Re:Exa Is Deprecated by JohnFen on Thursday September 07, 2023 @01:30PM (#37422496)
> My primary reason for using classic Unix utilities is trusting that they'll still work in a few years

Mine is that they're ubiquitous and I can rely on them existing on all Unices. For the same reason, I avoid getting used to any features that are unique to a particular platform or distribution. It just causes additional friction when I'm working on a different system.

Re:Exa Is Deprecated by elp on Thursday September 07, 2023 @07:23AM (#37417373)
Thank you!!

Exa was nice but it's command line options were just different enough in places to clash with my muscle memory. Lsd looks a lot closer.

Re:Exa Is Deprecated by basedrum on Thursday September 07, 2023 @08:05AM (#37417712)
Using any customized shell that you recommend?
Re:Exa Is Deprecated by renewiltord on Thursday September 07, 2023 @08:11AM (#37417782)
Oh good one, thanks. Curious how well it handles on NFS mounts (I have a remote server mounted over NFS over Wireguard). I'll post back later.
Re:Exa Is Deprecated by UkiahSmith on Thursday September 07, 2023 @08:19AM (#37417851)
I much prefer lsd over exa, as lsd has better backwards compatibility with the flags. Specifically `-t` for sorting by time, exa has it specify the time field used.
Re:Exa Is Deprecated by k_roy on Thursday September 07, 2023 @10:57AM (#37419846)
This is exactly why I switched some months back to lsd after years of using exa.

The muscle memory of `ls -alt` and `ls -alrt` was too powerful for me to switch to `-snew`, even after literal years.

Re:Exa Is Deprecated by cb321 on Thursday September 07, 2023 @08:27AM (#37417933)
> I absolutely love the trend of rewriting classic Unix utilities

This was actually a big draw of GNU implementations in the mid-to-late 1980s vs. the "then classics" of the mid-to-late-1970s. Before the dominance of Linux / OSX, people on SunOS / Ultrix / HP-UX / Irix / AIX / *BSD would often quickly install those more featureful GNU utilities. I imagine AIX/*BSD people still do.

Re:Exa Is Deprecated by dividedbyzero on Thursday September 07, 2023 @09:21AM (#37418524)
> I imagine AIX/*BSD people still do.

Quite true for many in the macOS subset of BSD

Re:Exa Is Deprecated by anthk on Thursday September 07, 2023 @04:00PM (#37424779)
exa is not a rewrite. GNU utilities are an actual replacement.
Re:Exa Is Deprecated by cglong on Thursday September 07, 2023 @09:12AM (#37418417)
Exa was a nonstarter for me because only LSD supports Windows. Which is unfortunate, as this is a big advantage of the Rewrite It In Rust trend.
Re:Exa Is Deprecated by jnsaff2 on Thursday September 07, 2023 @09:17AM (#37418484)
> well-customized

well-rustomized

There, fixed it for you.

Re:Exa Is Deprecated by l00sed on Thursday September 07, 2023 @10:08AM (#37419120)
I'll check LSD. Exa was very easy to swap for eza, though!
Re:Exa Is Deprecated by l00sed on Thursday September 07, 2023 @10:13AM (#37419180)
Alright, lsd is pretty good.
Re:Exa Is Deprecated by da39a3ee on Thursday September 07, 2023 @10:42AM (#37419604)
I use a white terminal background, and lsd outputs yellow, which is unreadable on white. I've so far failed to stop this; e.g. it didn't seem to respect my LS_COLORS.
Re:Exa Is Deprecated by Night_Thastus on Thursday September 07, 2023 @11:09AM (#37420050)
I want to like LSD. I really, really, REALLY do.

But holy hell is getting a working font a nightmare. I spent multiple days desperately trying to figure out font issues, because LSD refuses to list what fonts actually work for it.

And if you just something from Nerd Fonts thinking it will work, you'll find that 3/4 or more are missing some stupid symbol or another that LSD uses.

And then you find out that getting it working on other systems is awful. WSL which uses the Windows command prompt under the hood needs a TTF version instead of OTF, which many Nerd Fonts don't bother to make. On MSYS2 it just indefinitely hangs. It's a nightmare.

I have gotten LSD to work once in all my trying on one system.

Re:Exa Is Deprecated by minorannoyance2 on Thursday September 07, 2023 @11:22AM (#37420289)
I haven't heard about LSD before and was just about to give it a try on WSL2. Thank you for saving me a headache and some time.
Re:Exa Is Deprecated by seabrookmx on Thursday September 07, 2023 @11:24AM (#37420312)
> command prompt

You could use Windows Terminal instead? Or does it have the same issue?

Re:Exa Is Deprecated by Night_Thastus on Thursday September 07, 2023 @11:30AM (#37420413)
As far as I know, Command Prompt, Powershell, WSL, etc all use the same underlying font system, TTF. And not many fonts have a TTF version. If you try using an OTF it won't be detected.
Re:Exa Is Deprecated by DiabloD3 on Thursday September 07, 2023 @01:40PM (#37422662)
There are many incorrect statements in this.

None of those three "use" anything.

On machines that predate the new ConPTY replacement mechanism (so, everything before Win11), any app that is a command line program (such as cmd.exe, Powershell, anything compiled to be a console program and not a GUI program (this can be any program, and is chosen at compile time)), it is ConPTY.

ConPTY can see OTF fonts (afaik, I remember that working, I don't have a system old enough to check), but can't see any fonts that are in your user font directory (%LOCALAPPDATA%\Microsoft\Windows\Fonts).

As of Win11, however, ConPTY (which has been in existence since NT4, and has been an ugly pain in the ass for just as long) has been replaced with a mechanism to allow you to chose which one you want: a user supplied terminal that can supply that dependency (currently only Microsoft Terminal, but it is documented so any terminal can do it), or a ConPTY replacement owned by the Terminal team (which is basically the renderer and parser ripped out of Terminal, and a massive in-place upgrade, while still looking and acting like ConPTY otherwise). If the old ConPTY can't see OTF fonts (which would stem from using the oldest and most classic font API still in Windows), the new one can (as it uses DirectWrite).

On Win11 machines set to use Terminal instead of new-ConPTY, launching cmd.exe, Powershell, WSL.exe, or any other console program, will launch Terminal to display itself if not already in a console session.

However, fundamentally, for the entire conversation preceding this, it doesn't matter if a font is TTF or OTF for the purposes of supplying Unicode or Nerdfonts icons. OTF only matters if you want Type1-style glyphs (cubic Bézier curves vs quadratic) or want to use OTF features (which aren't meaningful for terminals, generally).

Re:Exa Is Deprecated by Night_Thastus on Thursday September 07, 2023 @02:02PM (#37423035)
You're missing the point I was making.

* Windows shells (at least for me, right now) won't DETECT a .otf font. You can't even choose to use it in the options of powershell/prompt/etc

* Most nerd fonts don't bother to convert to TTF. They only provide an OTF.

Even if they're fundamentally the same that doesn't matter if Windows won't detect it in the first place to let you select it.

This ConPTY replacement ('Windows Terminal') sounds fairly recent, so I think you'll forgive me if I didn't know about it. Our work machines only updated to Windows 11 in the last couple of days.

In any case, without access to the store I can't install it anyways. Nice for those who are on 11 already and have access though.

Re:Exa Is Deprecated by DiabloD3 on Thursday September 07, 2023 @02:33PM (#37423524)
So, the issue with nerdfonts is the project, itself, is broken and flawed.

They use the nerdfont patcher, which mainly mutilates fonts, and often breaks them trying to add the nerdfont glyphs. The nerdfonts project also distributes these broken fonts while ignoring the font licenses, and also ignoring the fact that fonts update and then nerdfonts refuses to patch and distribute the new version.

Many projects distribute both OTF and TTF versions, while nerdfonts only distributes the patched OTF version (as you, indeed, have noticed).

The upside is, since the patcher exists, you can just run it on your own fonts and do whatever you want.

I highly recommend avoiding nerdfonts altogether, disable it in any program you find it in, and also consider filing bugs with those projects to entice them to remove support entirely.

Unicode exists for a reason, and fonts should strive to cover as much of it as possible. Corporate logos and custom icons should not be enshrined into any font, not even as something niche like nerdfonts, even if nerdfonts lives entirely in the Unicode private use area (PUA).

Re:Exa Is Deprecated by Night_Thastus on Thursday September 07, 2023 @02:42PM (#37423630)
>So, the issue with nerdfonts is the project, itself, is broken and flawed.

The issue also lays with LSD, since they recommend Nerd Fonts.

Re:Exa Is Deprecated by DiabloD3 on Friday September 08, 2023 @08:27AM (#37432639)
Partially, yeah.

I always try to push projects to, if they choose to support nerdfonts, to default to off. It is confusing for new users to have to install a specific font (especially when they probably already have their chosen font, and possibly one that can't be nerdfont patched) to use a program.

LSD, in particular, can just either turn symbols off or just map them to commonly available Unicode symbols (a "well formed" terminal font covers most of, if not all, of the Box Drawing, Geo Shapes, Legacy Computing, and Arrows Unicode blocks, which is all you really need).

Re:Exa Is Deprecated by dragonwriter on Thursday September 07, 2023 @02:37PM (#37423577)
> This ConPTY replacement ('Windows Terminal') sounds fairly recent

2019 first release, replaced the old Windows Console as a default since Windows 11 22H2.

Re:Exa Is Deprecated by benrutter on Thursday September 07, 2023 @01:05PM (#37422070)
Sounds like you probably don't want any more headaches setting up LSD, but in case anyone else is reading this, LSD will let you specify in a config to use unicode symbols, or none at all, instead of nerd font style icons which would avoid your font issues
Re:Exa Is Deprecated by Night_Thastus on Friday September 08, 2023 @01:51PM (#37436958)
I just tried this. It seems to work OK, though it just gives empty missing boxes for a few things, like text files, python script, etc.
Re:Exa Is Deprecated by oweiler on Thursday September 07, 2023 @12:49PM (#37421825)
lsd is a drop-in ls replacement, exa is not. And lsd is a whole lot faster, which is also a plus.