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.
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.
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 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)
> 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.
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.
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.
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.
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.
> 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.
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.
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.)
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.
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.
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.
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...
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.
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.