Ask HN: Is it still possible to live in a terminal?

264 points by ilovecaching ↗ HN
In college I did a month long experiment where I only used my computer's terminal emulator to do all my work. I wrote my code/notes in Vim, browsed the web with elinks, and wrote my emails using mutt. It was a great learning experience.

Recently I looked into doing this again and ran into a bunch of issues:

- My company uses Slack's enterprise auth, and all the CLI slack clients I could find haven't been updated in years and no longer work.

- The web is using more javascript than in the past.

- Mutt doesn't handle multiple email accounts natively for work/personal. The solutions are hacks at best. Email servers are starting to use more complete auth mechanisms that don't work well with mutt.

It seems like the terminal world is slowly getting abandoned in favor of proprietary GUI apps. Anyone still living inside the terminal? Links to tools for Slack are appreciated.

271 comments

[ 4.8 ms ] story [ 285 ms ] thread
How do you read documentation for work?
From the headline, I thought the post would have been about this guy: https://en.wikipedia.org/wiki/Mehran_Karimi_Nasseri
You can, if you’re working as an independent consultant. I have a few friends like this who do live in a terminal. (I am also a consultant, but Gnome works fine for me)
Emacs (which can be run in the terminal using the "-nw" option) has a slack package -- I dipped my toes in and noped out quickly, as I found it too difficult and too ugly compared to using the app: https://github.com/yuya373/emacs-slack

I've tried to do the same thing: going completely text mode. For me, it was disastrous -- it was a big distraction for me at work, at two jobs. I even left a good job partially so that I could try to go text-mode rather than click my way through lots of GUIs. It was something of an obsession. Now I look back and sigh.

For email, it appears Alpine (the successor to Pine) supports multiple email accounts via Roles. I have not tried this.
I do almost everything in terminal windows, but for emails, Slack, video calls, and other support-related things I use native MacOS/iPadOS apps. It doesn't make sense to do everything in a terminal because not every useful service works in a terminal. Choose your environment and tools based on utility.
I agree. I don’t really understand the point in being a terminal maximalist. Yes, I do 90% of my work in vi or ssh and that’s what I prefer.

Checking my email or chatting though, why bother? The company pays for outlook and slack, I’d just be making my life pointlessly difficult.

The overhead of context switching is a thing.

Running a bunch of Electron apps to handle basic things slows you down and takes an unnecessary amount of system resources.

Most users can’t automate GUIs to create workflows, assuming the apps and the platform being used even support that.

Scripting CLI tools has existed since the dawn of Unix.

> The overhead of context switching is a thing.

Yes, and that happens regardless. I can turn off notifications and choose when to look at email or Slack or whatever. I can have those apps on my iPad screen and ignore it or put it in focus mode. If you're talking about switching applications that's just a keystroke whether I'm in screen/tmux or in MacOS.

> Running a bunch of Electron apps to handle basic things slows you down and takes an unnecessary amount of system resources.

All of the native apps I use work faster than I do, I don't think they slow me down. System resources have come a long way since the early days of Unix you refer to. None of my devices struggle with low resources. I mainly work on remote servers so that's where I compile and test code and so on, and those machines don't have GUIs or apps hogging up resources.

>Most users can’t automate GUIs to create workflows, assuming the apps and the platform being used even support that.

Sure, and even fewer users can do anything at the command line.

> Scripting CLI tools has existed since the dawn of Unix.

I remember. That happened about four years into my career as a programmer. I didn't start to see Unix in the wild for a few more years. Scripting CLI tools pre-date Unix but they sure got nicer when Unix took over.

I'm happy to use the command line for almost everything I do in terms of programming. But some of what I do to keep my customers happy involves communicating with them, reading stuff they send, etc. I can't force my customers to stop sending PDFs or HTML emails or links to Zoom calls, nor would I want to. And I'm not going to live with 1970s technology in imitation of Richard Stallman, because however great the terminal and Unix CLI can work for so many things, they aren't the best tool for everything.

It obviously depends on your working environment..? I'd be screwed 5 minutes into my workday having to sign into our PDM.

> It seems like the terminal world is slowly getting abandoned in favor of proprietary GUI apps.

Eh, I'm seeing quite the opposite trend. I see people doing stuff that'd consider using a terminal to be straight up inappropriate for (e.g. displaying line graphs).

And your troubles with Slack is most likely down to it being proprietary garbage.

Since Emacs runs just fine in a terminal, I imagine so.

Although, if you are going to live in Emacs there might be enough terminal there without actually running it in a terminal.

Yes unless you work with language that "needs" an IDE like java, scala ect.
You can always load the IDE up as a Vim/Emacs plugin. I've used the Eclipse Language Server within Vim to some success in the past
Thats why i put need in quotes.

Sure you can get away with it but vim plugin is no where close to what you can do in Idea. Not even in the same orbit.

Good old days at college when I used to code in notepad :p
I have done Java in Vim before with various plugins. It is technically doable, but it's also nowhere near as ergonomic as it is to use IntelliJ for example. I would want to put a lot more into the setup before trying to do it full time in the terminal.
> - My company uses Slack's enterprise auth, and all the CLI slack clients I could find haven't been updated in years and no longer work.

https://github.com/wee-slack/wee-slack is decent.

> - The web is using more javascript than in the past.

cli browsers are probably the only truly unrealistic thing. An idea that I've been kicking around for a while is to build a simple CLI "browser" that uses PhantomJS or similar under the hood to request, load, and render the page into an image, convert the image to sixel (https://en.wikipedia.org/wiki/Sixel) and display it that way (or use any of the various terminal emulator-specific features (KiTTY has https://sw.kovidgoyal.net/kitty/graphics-protocol/ for example)). Probably pretty clunky, but it's doable if you're in the mood to write something purely for fun.

> - Mutt doesn't handle multiple email accounts natively for work/personal. The solutions are hacks at best. Email servers are starting to use more complete auth mechanisms that don't work well with mutt.

I don't think they're hacks. You can define exactly how you want it to work. That's a feature, not a bug. Sure, it takes a little bit of work to set up but you can use https://github.com/cweagans/dotfiles/tree/master/.config/mut... as a starting point if you'd like.

You might be interested in https://brow.sh
Holy shit that's an impressive browser.

Some glitches for sure and I couldn't actually draw in Excalidraw, but I obviously wasn't expecting to.

For everything except web browsing, I use the terminal.

neovim - text editor

aerc - email

nzbget - usenet

irssi - chat

mpv - audio

still hoping for gemini to take over for a full terminal experience.

Are your concerns about the lack of open APIs or the lack of command line apps per-se?

Personally I'm all in favor of having more open APIs and third party clients, but would never want to intentionally constrain myself to a TTY that is half a century old.

I'm not sure what specific issues you've had with mutt, but I have mine setup with multiple accounts & have in the past used it for a work account where I had to do IMAP/SMTP auth via oauth token rather than username/password. It's definitely not a super well supported happy path & requires some setup, but it's worked well for me.

- Multiple accounts: I have a per-account config file with the relevant specifics (https://github.com/wfleming/dotfiles/tree/arch-linux/home/co...) and use folder hooks to apply those depending on which mailbox I'm viewing (https://github.com/wfleming/dotfiles/blob/arch-linux/home/co...). (Plus a keybinding in each account file to make flipping to the next account easy.)

- Non-standard auth:

  - I use offlineimap to sync my mail, and it supports oauth2 for Gmail. The arch wiki has helpful details: https://wiki.archlinux.org/title/OfflineIMAP#Configuring_OAuth2_and_getting_access_tokens_via_mailctl

  - For sending mail, I use msmtp, which also supports oauth2. Again, arch wiki has some helpful details. https://wiki.archlinux.org/title/Msmtp#OAuth2_Setup
For web & Slack, I sympathize and have toyed with CLI alternatives in the past, but I'm come to terms with the the fact that it's just not that feasible for the most part. Personally, I spend as much time in the terminal as I can, but I've given up on fighting against the tide for everything. The only native apps I usually have open are Firefox, Slack, and Spotify, and that's acceptable to me since it ends up meaning I still spend most of my day in a terminal.
I was a terminal poweruser wannabe. For a time I tried just using tmux and Vim on almost all occasions. I still use Vim for something, like writing Puppet code. For everything else: I've just come to embrace to the GUI.

Unless you're an absolute terminal power user that can masterfully navigate tmux, vim or whatever tools you use, I don't think it's a good use of time. There certainly are things where the terminal is the right tools, use it in those situations. Just ask yourself if you're artificially limiting yourself, simply because you think the cool kids use the terminal.

I'd suggest zellij if tmux is too intimidating.

Rather. 99% of what I use tmux for is both: not what I would consider "power user" skills; what I think terminal emulators like kitty or iTerm2 will mimick anyway; and reflects how e.g. VSCode arranges its open files.

I find it convenient to have a session of tabs for a particular task/project, and to switch between the tabs depending on what I want to do.

That said, I rarely make use of split panes (nor a tiled window manager). YMMV, but I almost always want whatever I'm looking at to be fullscreen.

Zellij at least shows the keyboard shortcuts.

It doesn't work for business at all because if you want to do business you have to meet people where they are. You can't email a client and say, sorry, can you please send me that contract in a text file, I only have a terminal. Or, sorry, I can't use your web portal to access the data because it uses JavaScript.

If you're not doing business, using the terminal works fine. Up until you have to deal with health insurance or your power bill or your taxes or bank.

Unfortunately the world now revolves around [gui] web browsers. We brought this technologically retarded hellscape on ourselves and we deserve it.

>[gui] web browsers

You largely can restrict yourself to phone calls and postal mail. Aside from ordering from Amazon, my dad largely does. (Albeit in part because my brother and I will do various things for him he can't figure out how to do with just a phone call or letter.) But it's increasingly difficult for a lot of things and is, at a minimum, less convenient.

And, as you say, in business you generally don't really have the option to basically refuse to use a computer for many purposes.

Saw an elderly lady freaking out at Walmart because they no longer could pay capital one credit card in person with a physical check.
In fairness, paying post-paid bills by check through the mail is still an option for most things. I get most stuff handled automatically and pay most of the rest online through my bank but I still write a fair number of checks either in person or mailed.
>Unfortunately the world now revolves around [gui] web browsers. We brought this technologically retarded hellscape on ourselves and we deserve it.

This seems backwards. Limiting yourself to CLI tools do retard your abilities, modern GUI apps do not.

Sorry?

CLI respect of Emacs yes, is limited and limiting, but modern GUIs are FAR more limited and limiting. Can you integrate them? No. Let's say you want in a single view a set of mails, financial transactions, notes etc. You can arrange something in a CLI, you can do it in org-mode, you can't do it in the most advanced ERP monster.

Modern UIs try to go back to the original document UI concept but TOTALLY fails for the interactive part, they are mere view where you can touch some knobs someone else placed there for you, nothing more, and try to bend them is a nightmare.

What can't you do in X Window that you can do in a terminal?

I'd agree that some GUIs are bad, but the same could be said about some TUIs.

Not in, but with modern GUIs (so X11 xlibs wrapped by some widget lib) I can't compose nor integrate anything. For instance if I want to do some simple math in an email I'm composing I need to launch another application, type the same math I've typed in the message body, evaluate it, copypaste the results, copy-pasting is the sole IPC such tools have.

On a terminal, I can run a terminal based editor who typically can run code from inside the text buffer. In Emacs I can do much more in both terminal and X11. That's is.

My org-mode notes links anything, meaning mails (searches, specific messages, threads), financial transactions (ledger), elisp code, for instance to act on notes themselves like an `* Online retails orders` heading with a "click here to add a new one" or to change the Emacs/EXWM graphic, for instance to present something, org-ql queries on my notes etc. In pure CLI (not TUI) I can at least cat and process programs output, in modern GUIs I can't.

A simple showcase: https://youtu.be/B6jfrrwR10k

This is a matter of pattern, not technology.

GUI apps can and sometimes do provide interfaces for programmatic use.

And some terminal applications fail to follow conventional Unix patterns.

This seems like an unfair comparison.

If you limit the capabilities of a GUI interface to only what is possible without code changes, then you must do the same for CLI applications.

Emacs is all code. Most CLI-only applications cannot be modified other than the flags you pass in; you are instead forced to pipe from one application to another.

If you limit the capabilities of GUI applications to the realm of existing software (i.e. your monster ERP reference) then we must also limit the capabilities of CLI tools to what exists, and I know (for having looked far and wide) that I have needs which are not available via terminal-only programs; the only existing set of available software that I need with a comprehensive set of features is in a GUI-only application.

That's exactly the original Unix model fault: it's designers though that's possible making many very small and simple "programs as functions" to be easy combined in scripts and with IPCs to doing almost anything without the need to go to "system code" as a cheap and easy solution to the hardness of a classic system design.

They quickly drop such idea introducing GUIs, who fail to offer composability and scripting, and they derailed hitting their own design limits. Modern GUIs are the monster emerged form such ashes who happen to be worst than the problem it try to solve. The issue in the example comparison in my previous post is that at least in CLIs you can combine/compose a bit, with modern GUIs you can't. Write a script is easy, at least FAR easier than change an ERP.

The GP lists some ways that a terminal-only workflow limits you.

>Modern UIs try to go back to the original document UI concept but TOTALLY fails for the interactive part, they are mere view where you can touch some knobs someone else placed there for you, nothing more, and try to bend them is a nightmare.

I don't see this as a bad thing. I want someone responsible for the product to figure out the best way to use it via a focused set of controls and inputs. Some people fail at this, others are amazing.

Just a simple example: you probably buy on Amazon and find it's order history webpage simple and nice. Now let's say you want to collect such history in your desktop, link it to the corresponding bank transactions per any order (you have bought many things and they are charged separately on your bank), link to some bought items notes like when the warranty period end in your agenda. What do you need to achieve such result?

In CLIs you need a way to query in text all such elements, you are limited by the limited and limiting Amazon WebUI who do not offer anything cat-able, even not anymore a manual *sv export. Not much different is the situation on your bank side where if you are lucky you just get manual ofx/qif export.

In a classic CLI world you wold have a remote service who can be queried ssh-in it and locally process the output. In modern Emacs you can do the same in a modern 2D DOCUMENT-BASED GUIs. You just need a bit of math to mach items to bank transactions, nothing more than 20 SLoC. With the WebUI paradigms you need perhaps a WebVM extension with around 5-10k SLoC to achieve something similar...

I don’t actually. Amazon is on the “fail” list.

It sounds like you want APIs for all of your services. That’s fair. But I don’t think the vast, vast majority of people have use cases as you describe so the ROI on providing something and maintaining it is too low.

In any case, in today’s world, you can programmatically scrape the page of the results and crawl further pages if necessary. It wouldn’t be 5-10K lines to output a list of names and prices.

> technologically retarded hellscape

The modern web seems pretty great to me. Why do you feel that way?

You must have a very good ad blocker.
It was certainly an eye opener when I went to help a friend with their computer and saw the web without ad blockers for the first time in years. I had no idea.
Worse, if they have been infested with malware that may inject additional ads into sites like Amazon... Actually made me a fan of chromebooks for anyone that doesn't actually need more than that.
Are you sure those aren't just Amazon ads? They generated $31B in ad revenue last year.
In this case of memory, it was definitely malware... though I couldn't really speak to Amazon today if ublock/privacy-guard/pihole catch them.
Censorship, mandatory KYC and ID verification, mass surveillance, ridiculous amounts of ads, everything is a subscription service and my god damn oven needs a login and ethernet connection…
That seems to be a complaint, at least in part, about a terminal-based world which only the "right" people had the ability to access vs. a commercialized Eternal September where all the plebes (and scammers/grifters) have access. I'm pretty sure that a terminal line world that somehow had the same access and usage as today's GUIs/Web would find other ways of introducing the same problems.
Yeah, this is the same thinking that calls Unix with it’s incomprehensible set of pun-filled commands with thousands of conflicting flags “the bazaar” and the relatively-easy-to-use and discoverable GUIs of the world “the cathedral”. It’s elitism at its worst.
Is pretty as a prison dressed to be nice. Is pretty for instance if you do not need to do anything than consume someone else provided contents and your favorite services do not cease to exists or change usage terms overnight.

Google reader was nice, a day Google kill it, GitHub seems to be nice for some cohort of users, a day a political move between some countries makes your account locked, a day your ebook reader+service cease to exists with all books you never own but being convinced of the contrary, a day your smart vacuum cleaner stop to work because an AWS service have issues etc.

That's how pretty it is. Pretty to capture you, ugly once you discover you are trapped and than it's too late.

Oh, sure in mere tech terms you might run webapps locally, they are still NOT AT ALL pretty behind sugar-eye graphics, since integrate things, bend things is a nightmare that demand a gazillion SLoC for anything, while on classic CLI or better systems like Emacs you can do it in a snap. Not only: anything you'll learn on classic systems is valuable normally for a lifetime and more, anything you learn for the modern web might be valid for few years but generally last far less and no, you can't advance, you can only remain afloat keep learning the new crap on and on.

You seem to have a lot of complaints about the internet and they may even be valid concerns on their own, but I fail to see how this relates to CLI vs. GUI. Google Reader would still be dead if you interacted with it via CLI. GitHub would still be dead if their servers shut down. Maybe you're equating CLI with some "good old days" that you fondly remember?
CLIs are family of UIs, whose name is normally used to identify TUIs at a whole, while GUIs tend to identify ONLY modern GUIs, so ignoring the classic Documenti UIs and that's the trick.

My point is:

- modern TUIs, called by most CLIs, compared to modern GUIs (widget based GUIs and WebUIs) are more powerful because AT LEAST they allow limited easy user extensibility and composability (scripts and unix IPCs);

- classic GUIs, in the sense of document UIs, like Emacs, like old Xerox Tioga etc, on contrary can be called 2D CLIs in modern lingo and they are FAR superior both of TUIs and modern GUIs because they are "graphical" and they are even more extensible and composable than TUIs.

That's is. Modern developers regularly push toward classic GUIs without knowing them, think for instance how popular Notebook UIs have became. WebUI themselves as a "more like documents" widgets-based GUIs. Still are are far behind classic document UIs.

The modern web is primarily distinguished by its custom ui/media, as opposed to the old school web which put textual information first and allowed clients more control over presentation. The problems this creates are:

* Accessibility - I can't change presentation to make things easier for me to consume

* Inspectability - I can't search, index, etc. Information is hidden behind js driven interfaces that only present bits at a time.

* Uniformity - I don't want to deal with a deluge of clever interfaces. I want the data only, and I want control over how I will present the data to myself.

* Buggy - All these custom JS driven interfaces means a never ending deluge of weird interaction bugs, most of which we just ignore. Pages are needlessly slow or error prone.

You don't get out much do you? Not if you consider that a hellscape.
I find this comment absolutely inappropriate for this forum.
There are two ways to read that comment. One is like you say. The other - as “someone who doesn’t go out much”, this actually resonates, in a weird way: “the Unix way” resulted in user having a proper control and their environment being predictable and thus trustworthy. Compared to that, the web is not only technologically inferior (Chromium LoC alone is enough to tell), but also as unreliable and unpredictable as many other things IRL.
(comment deleted)
> The modern web seems pretty great to me. Why do you feel that way?

A quote I once heard about the modern web browser: "I want this program to do everything my computer already does."

Imagine a simple hypertext markup language which tells a program how to render the text, link to different text or sites and perhaps paint some images on a screen. Seems pretty strait forward. Now make that program into a worse computer. This is what makes many people nauseous when they attempt to build "modern web" things.

I heard a great comparison of game dev to web dev: "You write programs to reach goals or a finish line. game dev feels like you're building and fine tuning a race car. Web dev feels like you're running a marathon in the rain and everyone is throwing garbage at you while booing."

There's only one problem with that comparison: web development and game development aren't exclusive to each other. Those days are long gone, thanks to WASM and WebGL. For a game developer, the modern web browser is just another platform to deploy to. One that has less friction in many ways. You don't have to ship an executable and lead the user to and through your installer, and then make them log in through your custom login flow where the password manager doesn't work - you just provide a link to a login form that redirects to a WASM build of your game. Your user already knows how to use the browser.
> Up until you have to deal with health insurance or your power bill or your taxes or bank.

> Unfortunately the world now revolves around [gui] web browsers. We brought this technologically retarded hellscape on ourselves and we deserve it.

As bad as the web is, I certainly don't miss the days when I had to go to a physical office, wait minutes, sometimes hours, in a line and talk to somebody that may or may not help me, depending on how their day was going. Thanks but no thanks.

> Unfortunately the world now revolves around [gui] web browsers. We brought this technologically retarded hellscape on ourselves and we deserve it.

This seems like rose colored glasses, maybe there was a very small period of time where there was a wide variety of things you could do in a terminal, but for business purposes it was mostly native GUI’s which suffer from the same problems as the web if not worse (maybe only better because they were harder to make so there were a lot less of them)

There are reasonable terminal viewers for many formats.

Web sites that require JS to function (and there are many) is a bigger deal.

Same with pictures.

It's much more realistic to run a graphical environment and use a regular browser. Just disable JS by default and put a reasonable ad blocker. Then whitelist sites where you really need JS to work, like your Jenkins host :)

A reasonable PDF viewer is also not such a resource hog, same with picture viewers when you need to display pictures. Say, Firefox does a reasonable job of being both if you don't want to install dedicated software.

You can make a graphical environment which is snappy, low-distraction, and very usable. (That was definitely already possible 20 years ago, when my Linux desktop was my main working machine, and ran quite adequately on a tiny fraction of today's laptop resources.)

(comment deleted)
Even my local library stopped using terminals with monochrome screens and some database system written in COBOL. Now they have webbrowsers.

Perhaps it is time to upgrade :)

I don't know about "living" in a terminal, but CLI/terminal tools are quite far from being out of the picture; if anything, I'd say they're thriving. It's not about one or the other; they're complementary, and I use both every day.

Personally, I use Firefox for browsing, PyCharm for coding, mpv/qimgv for media, and do pretty much everything else in the terminal. Terminal tools are incredibly versatile and composable in a way GUIs really can't match - for instance, I built a script that gets all the RAW files from my camera, converts them to jpg with darktable-cli, and optimizes them for filesize maintaining the same visual quality with jpeg-recompress, great for when I don't particularly care about editing each picture of a long hike. Next step will be to also push them to Google Drive, but I haven't gotten around to that yet. Similarly, the gopro-like camera I use for recording racing footage produces files with some weird filenames and terrible encoding which makes them enormous, so another script pulls the files, renames them to the date/time taken, and uses ffmpeg to transcode them to hevc, which saves several GB. Could I do this all from GUIs? Probably, but it'd involve a lot of hunting for files, dragging/dropping, and context switching between different programs. It's a lot more convenient to do it all in one short command.

There's also some amazing tools which just don't make much sense or would be quite contrived in GUI form. fd and fclones come to mind. AI is starting to be packaged as CLI tools, and it'll open up even more possibilities. Separate hiking pictures into their own directory? Sure! Find lecture videos mentioning a specific subject? No problem, this one doesn't mention the specific keyword you were looking for but it's also relevant at X timestamp!

How is the results from the Darktable conversion? Are you able to share the script?
I do most of my work in the terminal. I work on JavaScript/TypeScript projects. Soon Java, we'll see if I use the terminal for that.

I love streamlining my ZSHell and ViM experiences by tooling around and have produced some nice scripts and functions which are both living documentation and useful to share.

However, I wouldn't expect my team to maintain shell scripts as they're a bit esoteric.

I quickly navigate around and search my files, use version control, switch projects, run services, and open sites in my browser using terminal and Vim commands.

I have to switch away for debugging though.

I keep a 'perfect terminal' in the office, basically a system with an nvidia 7600 in it because that's the fastest 2D text thing I've found to date (yes, modern cards are so slow in text mode it's not even funny). Configured for 24 VT's, a bunch of them autoconnect to remote systems/run specific applications etc at boot - so if I want the calculator, for example, it's Alt-F12.

For local graphics programs, that also provides a memory-mapped framebuffer which makes basic graphics a doddle. Beyond that, text-mode browsing has been too hard work for years (and so by extension email too). While it's very possible to 'cheat' by setting X to render to a framebuffer (either directly or in the background) the whole reason to use the text-only console is to focus on code without computer-borne interruptions.

Even on my graphical computer, it's basically terminals windows and a browser. Any piece of software that interrupts the flow is either configured to not do so, or discarded PDQ.

Terminals FTW.

What do you mean by fast or slow in text mode? Like the 7600 is literally writing text to the screen faster than modern cards or?
No idea if op refers to that. I don’t think so, but modern stack can be ineffective.

My work mbp M1 was having a delay writing text in external monitor

While all the rest, including vidéo, was display without delay.

I had to tweak some driver settings ( of the base , not my graphic card )

Did you happen to write down what you tweaked? I use an MBP M1 with an external 4K, and I've had a sneaking suspicion that my keyboard inputs are somewhat delayed. Just hasn't ever felt quite right....
yeah It was silly, the displayLink drivers of the docking station had to get an update specifically for those models. In my case there was no mistake possible: there was a solid second between typing something and actually see the text on the screen. Unusable as is.
Yeah... modern graphics cards have really limited text mode implementations and even worse, often broken ones that don't display the correct colors even (can find many complaints of those running "classic" games etc). There are/were a LOT of basic text modes that were supported up until they were largely deprecated and only very basic implementations exist now... and often are slow to render walls of text. It's kind of wild.
Reading commends like this makes me so grateful I never got into the whole terminal deal and grew up coding on shitty computers.

In my blissful ignorance I could produce just as much effective code on a VNC machine competing with a 1080p Netflix stream on a rural DSL line as I could on a local machine in TTY mode.

The brain is really amazing at what it can adapt to, when I'm typing in a laggy situation it's like "see" the output of what I've typed before it's on the screen and end up being comfortable doing stuff like fixing a typo before it's even been reflected on the screen

(comment deleted)
Indeed, I started in the days of 40x25 video terminals at home, and new-fangled stuff like modems were only just starting to appear (my first one was 300 baud). Getting a job and having 9600 baud VT100 terminals was truely magic (they still have a teletype for printing work orders on).

However, I've never been tolerant of lag - having a time gap between doing something and having a response just adds to mental workload, it's friction between me and the machine (especially pronounced with IDE's that try to 'help' by taking a second or two to come up with a suggestion, by which time it'll have been left in the dust).

Yes, much much faster. The 7600GT will do about 900k characters per second (stock) or 600k at 160x60 using ter-u20b font. Last time I tested, a GTX580 does about 187k per second but that's in stock 80x25 VGA mode without a framebuffer; to get a direct framebuffer the only option I'm aware of is nouveau, and that drops the rate to about 14k per second (so only just better than the equivalent of 1FPS at 160x60, as thast's about 10k characters on screen at once).

Some of the kernel changes that are happening may well make it possible to have simple high-speed framebuffers that can be used for text consoles in the future, so there's still hope.