Hacker News new | ask | show | jobs
by throwanem 1524 days ago
I assumed my mild hyperbole would need no explanation, but perhaps that was optimistic. Conceding the author's claim as he made it and you quote it, I think there's still a discussion to be had here.

> It's not hard to imagine it being rigorously tested on several platforms with modern CI tools.

It's not hard to imagine a lot of things! But when I looked at the repository earlier [1], I saw a very thin unit test suite that hasn't been touched in eight months, and very little evidence of CI in use at all - and, of course, what checks there are can only exercise the apparently small subset of logic that the unit tests cover. Certainly, if there's anything examining actual behavior in any terminal environment, I saw no sign of it.

Perhaps you'll be able to point me to what I missed. Assuming I didn't, though - for a UI framework that seems designed to have me build my entire application on top of it, this doesn't really inspire a great deal of confidence. As I mentioned above, the risk is that if it turns out to support many fewer terminals than claimed, I'm forced to choose between at minimum significant and potentially near-total rework, or telling those of my users who have terminal-related trouble that I can't spare the time to support them.

If this were a pure open source project, I wouldn't raise this issue in this way. (I'd more likely spend some time looking at how I might build the basis of a CI setup like the one I describe - that might be a fun project, assuming I could find the focus time to spend!) But Textualize appears to be a company which is currently hiring, and which I assume intends at some point to sell some product or service. I think that makes it fair to apply a similar standard here to the sort I use when vetting any vendor. What would you have me do instead? Use kid gloves, and implicitly insult the team behind this project with the assumption that they can't fairly be expected to live up to a standard like that?

I grant they're an early-stage startup, maybe still a one-man band at this point, and likely haven't had time to get to the kind of detailed testing I'm asking about. That's fair, but that also leads one to suggest that the claims being made at this stage are somewhat ahead of what can reasonably be supported. I'd be a little hesitant about that personally, but then again it's not my company, my product, or my project.

[1] https://github.com/Textualize/textual/tree/main/tests

3 comments

We simply have a different perspective on this. You see a TUI and have experience in the "Bronze Age" of the Internet in which browsers were not so stable across platforms/etc. and think that this more or less just doesn't work. I suspect peoples' experiences using it for a while now won't sway you; you are more than welcome to assume everything works only on one computer and is reliably broken elsewhere. I don't care what you choose to build your company with but I personally find this attitude towards new tools toxic and paralyzing. Hence my attempt at engaging to learn more.

From my perspective, I've used Rich in one of the very few contexts that practically matter (a terminal on macOS) and had a good experience. Will M. has been developing it in the open for a couple of years now and it's nearing critical mass in some parts of the Python ecosystem. If it was a diaper turned into a Molotov cocktail, it simply wouldn't the adoption it has so far. It probably runs fine on the three major operating systems of today, which is pretty much what a TUI needs to do. I have no idea if it runs smoothly on a Commodore 64 and to be honest I don't really care.

> Perhaps you'll be able to point me to what I missed.

You could have a look at Rich itself, which is what Textualize uses: https://github.com/Textualize/rich. I don't build UIs but the number of files/LOC gives me a bit more confidence that my personal experience wasn't a fluke.

> If this were a pure open source project,

What's a "pure" open source project in your view? You can review the licenses of the projects yourself and determine if MIT is "pure" open source, or see what the company says about their plans with the project: https://www.textualize.io/what-we-do

> Rich, Textual, and many of our future projects will continue to be built in public, with an Open-source license.

All of that is moot unless you've tested the software yourself and found it to be broken in certain terminal emulators.

I agree with your point that it's easy to write CLI software that relies on features not all terminals have, but it's almost equally easy to write simple and portable software and test it in the most used terminals.

You’re looking at the master branch. Most of the work is in the CSS branch.

The xterm control sequences are well documented (https://www.x.org/docs/xterm/ctlseqs.pdf) and we’re using a very minimal subset. The only codes we’re using beyond setting colour and style are those that move the cursor. Compatibility is likely to be the same as any TUI built in the last couple of decades. I haven’t found a single terminal emulator were it doesn’t work, and I’ve tried as many as I can download for the Mac, Linux, and Windows.

Perhaps you’ve assumed we’re doing something particularly exotic with terminals, but it’s honestly not doing anything that any curses app doesn’t do.