5 ms·
Seems like especially for the last year or so, there have been a significant amount of interest in single-language oriented (instead of a single core library w/
by treesciencebot 3y ago
Seems like especially for the last year or so, there have been a significant amount of interest in single-language oriented (instead of a single core library w/N language bindings, winking at a particular one) TUI libraries that are getting better and better (potentially because some of them were able to attract VC money). Two of them off top of my head is Textual (by textualize.io) for Python and BubbleTea (by charm.sh) for Go.
- lc9er 3y agoSpectre.Console for dotnet.
- pjmlp 3y agoFor me all of them have Turbo Vision for Turbo Pascal 6.0 in MS-DOS, circa 1990, as baseline to beat. Or the various Clipper based TUI for business data entry, as another example. Since they are catching up with the past, they should improve upon it, not just revisit it.
- kragen 3y agois there a good publicly available video that demonstrates what is good about these user interfaces, or alternatively, something that a non-expert user could run in dosbox to get a feeling? is the notably excellent part the user experience of the things that people built, or the library calling interface, or both? business data entry seems like something that probably requires an experienced user running the application to show what's good and bad about it my own 'baseline to beat' is fractint, which is pretty much unchanged in xfractint, which you can install from apt on debian. you just have to imagine it running fullscreen on a svga
- mixmastamyk 3y agoWhy a video? Here's a recent port: https://github.com/magiblot/tvision https://github.com/magiblot/tvision
- jrumbut 3y agoThe video is to display what an expert can do with it, if I understand correctly. In undergrad, I worked nights in a warehouse where most things were managed by a very complicated TUI program. The learning curve was quite steep. What someone could do after 6 months of using it was completely different to what a beginner without a trainer could do. You wouldn't be able to see what is good about it by just setting it up on your own computer and playing with it (and of course you probably don't have a busy warehouse to manage).
- mixmastamyk 3y agoMay be so, but Turbo Vision was not a unique interface paradigm. It worked just like any CUA application of the era, with dialogs and widgets, tab/funcion keys etc. Its "raison d'être."
- kragen 3y agoperhaps you intend to assert that turbo vision implemented the https://en.wikipedia.org/wiki/IBM_Common_User_Access https://en.wikipedia.org/wiki/IBM_Common_User_Access standard, or made it easy for applications to do so if so, that's news to me
- mixmastamyk 3y agoYes it did to a large extent, although I think some of the function key defaults were a bit different, probably from older Borland apps. But by and large converging on a singular CUA/MDI interface from Mac OS, Windows, IBM, Motif, QBasic, and TVision, in the late 80s. While not everyone got there 100% it did help tremendously that one could sit at a Mac/Win/Dos PC, Unix Workstation, or IBM mainframe and understand the application level interface immediately. We're sadly losing that as "smart" people decide to hide things from "dumb" people in terms of interface design.
- kragen 3y agocompare these alternatives: - spend an hour comparing recent turbovision-like libraries. spend twenty minutes building one. spend two hours working through the tutorial. spend sixteen hours building a new application using the library. use it. get a feeling for what an application using the library written in a weekend by someone with no experience is like. (this is my understanding of the alternative you're suggesting) - spend eight minutes watching a video of a domain expert using a user interface built in turbovision by programmers experienced in turbovision, who refined that user interface over years. (this is what i was asking for) which one do you think provides more insights into the textual user interface design space which one provides more insights per minute
- karmakaze 3y agoWhat more is there? It seems like a feature-complete set once there's mouse support. I suppose adding graphics for iTerm and such could be extras.
- deadbabe 3y agoI think mouse support would defeat the purpose of a terminal UI.
- joshka 3y agoCore Ratatui dev here. Mouse events are supported by the underlying backend libraries (e.g. crossterm). There's an example custom widget that shows how to handle these in Ratatui at https://github.com/ratatui-org/ratatui/blob/f767ea7d3766887cb79145103b5aa92e0eabf8f6/examples/custom_widget.rs#L241 https://github.com/ratatui-org/ratatui/blob/f767ea7d3766887c... Note the code is fairly manual as Ratatui doesn't provide any abstractions over the input side of UIs - just the output. (yet?)
- joshka 3y agoThere are apps that are built on ratatui that support mouse already including an example in the repo[1], and crates (and some internal changes to the buffer) to support iterm/kitty/sixel based images.[2] [1]: https://github.com/ratatui-org/ratatui/tree/main/examples#custom-widget https://github.com/ratatui-org/ratatui/tree/main/examples#cu... [2]: https://crates.io/crates/ratatui-image https://crates.io/crates/ratatui-image Compared to TurboVision, Ratatui has a lot of missing things: - Containers - Dialog types (I'm working on this in https://github.com/joshka/tui-prompts https://github.com/joshka/tui-prompts) - Higher order combinations of widgets (e.g. combine the scrollbar and paragraph) - Menus - Any event system (apps bring their own - we just handle display) - etc. - There's lots of things in TV that are provided as external crates (like editors, treeview, etc.) The main thing is that Ratatui is at least right now, just the display side of things. Things to do with events or application shell aren't built-in. This somewhat stems from the immediate vs retained mode approach to the library, but this may change in the future.
- joshka 3y agoCore Ratatui dev here. Fun fact, I played a lot with these libraries when I was in a kid in the 80s/90s learning Pascal and C++. I never played with clipper though.
- LargoLasskhyfv 3y agoI'd recommend looking into https://en.wikipedia.org/wiki/Framework_(office_suite) https://en.wikipedia.org/wiki/Framework_(office_suite) for conceptual inspiration. Because it did this on flicker-free(for the day) Hercules/MDA monochrome graphics. I've experienced this 1st-hand while snobbishly commenting on that textmode stuff, while seeing friends dads working in their home-office, or sometimes in the living room on 'luggables' or early laptops, while myself enjoyed an ATARI-ST at the time. They shut me up rather good. Wizards.
- deleted 3y ago[deleted]
- joshka 3y agoTextualize and BubbleTea are both things I look to for inspiration in what Ratatui could be. Eventually, I'd like to make widgets look great with sensible defaults and support themes that allow for customization. We use Charm's VHS for scripting the generation of images for all our examples, so definitely some thanks to distribute there in addition to the inspo.
- goodpoint 3y ago>able to attract VC money pass