Ask HN: Why are there so many companies trying to reinvent the terminal (badly)?
Every week I see a new terminal app here on HN, and it's always some startup with no good will that's built it on Electron and filled it full of always-online trackers.
Why is this a thing, and why do companies think this is a market worth pursuing?
137 comments
[ 3.3 ms ] story [ 224 ms ] threadOn linux I just use gnome-terminal + zsh + oh-my-zsh and I am perfectly capable. For me, this is a case of "it's not broke so why are you messing with it?"
So after that I'd look at: historically has a venture capital firm ever funded innovation? And I think the answer is yes.
So worst case they have a spyware product you don't need to use. Best case they actually innovate.
I'm cool with letting that play out.
Not that I think this thread on HN or my opinion makes any difference to what these companies do/don't do. :)
Warp https://news.ycombinator.com/item?id=30921231
It's reachable by email: hn@ycombinator.com
And highly responsive in my experience.
What i've seen so far was mostly aesthetics and less "functional" stuff, which makes me wonder: Maybe there isn't that much to improve?
Developers use terminals frequently, and there have been no major improvements in terminal software in the last few years. I'd be happy to see more terminals developed because they are useful. I would rather encourage them than discourage it
I think I am using about 2% of the potential of what the terminal is offering me.
So my need for a new terminal app would be one which - undisruptive - trains me to unlock more and more power of the terminal.
first idea, a panel on the right hand side which explains what I just did, highlights pot improvements (how I could have chained the last 5 tasks) and explains similar or pot. next steps.
A beginners terminal.
What are your unmet needs in regards of the terminal app?
Also I hate how clunky the interfaces feel when you're trying to view something which happened prior. It might be there, might not, some command you ran might have cleared the terminal at some point, some overwrite over themselves to do things like progress bars, and god forbid if you resize the terminal at some point because this will reflow everything that was written to it earlier into garbage.
have a look at screen/tmux
Things that always get me:
- Meaningful whitespace in bash.
- Differences between Mac BSD-derived utilities and POSIX utilities. (Perils of using a Mac, I guess, I know I can install the GNU versions of most things but ugh)
- Not being able to just use PCRE everywhere
- The magic of awk
- Differences in parameter/flag placement between different tools
- The amount of edge cases that you have to account for, usually to do with various levels of globbing, or special characters or even spaces in file names or utility output.
- More, I'm sure, that I can't think of right now.
there's just this underlying sense of inconsistency that I have when dealing with these tools that I feel results in me always having to check the man pages or StackOverflow whenever I want to string together more than a couple of operations.
BSD-derived utilities in macOS are POSIX-compliant. The gulf is between GNU and POSIX.
- Better support for multiline editing. Including full mouse support so that I can click to highlight a word in the command I want to replace rather than having to slowly arrow key to it and then backspace it out. And automatically stripping the newlines so I don't have to end every line with a backslash.
- Support for things like multiple cursors, again so that I can edit my terminal commands efficiently.
I personally don't like to use pimped up terminals because they are written in electron and are not portable. The whole point of using a minimal terminal is being snappy and portable. Just like engineers today can't write code without autocomplete, new engineers won't be able to navigate the cli without assistance.
An analogy would be, vim purists with 0 config vs people who have elaborate configs.
Alacritty, Wezterm and Kitty say hi. Uber-fast native apps that also render all the modern Unicode symbols correctly (well OK, Kitty has some Python).
You are also over-exaggerating and coming across as the "get off my lawn" guy.
I am 42, I was there when terminals were as bland as non-salted spaghetti in boiling water with nothing else in. Nowadays I like the autocompletes (with context nonetheless -- a huge improvement; you can autocomplete GIT verbs for example), I like the fuzzy finders that I integrate with (a) looking for files, (b) looking in my command history, (c) looking in my OS process list and (d) looking through all modified / untracked GIT files in a repo, I like the colors, I like the icons for separate file types, and I like modern incarnations of coreutils whose output provides you visual aid that objectively reduces the amount of parsing that your eyes must do on the screen. Eye and mind fatigue are real and all visual aid [that's not overdone] helps a ton. There are even scientific studies on it.
Want me to go on?
Conservatism like yours is not productive. Like with everything in life, there's good and there's bad e.g. I won't ever use the terminals that are written in Electron and phone home -- that gets an immediate "NOPE!" from me -- but there are objectively useful terminals, terminal extensions and CLI tools out there.
That you judge all of them by a few hip repos that are making the rounds here on HN only says something non-flattering about your abilities to gauge innovation.
Be more open-minded. It helps in an objective manner and with objectively improving metrics to show for it afterwards. At least it did for me and 30+ colleagues.
When saying "fast" I definitely meant it as "all the operations it does while alive" and not "how many times per minute I can restart it" (lol).
Still doesn't invalidate its usefulness, too. Alacritty in particular is often times a better Unicode-rendering citizen compared to other terminals.
I too use a whole lot of tools to keep the output less messy and I know some tools which have changed my life, ripgrep, exa, neovim, zsh, alacritty, git extensions, fzf and what not.
I find this pretty offensive. I have a vim config that automated my workflows, and integrated linters and build tools etc...and I am using Linux based systems for over 22 years now.
While I consent with the rest of your comment, I think that most people don't want to deal with shitty syntaxes that are less memorable than they should be. Computers and TTYs have moved far beyond 80 character screenlines these days.
Having a -s instead of "sync", for example, doesn't make sense from the UX perspective. Most of the reimplementations of common CLI tools of coreutils and others are mostly there because they were fed up with inconsistent parameters, options, and flags of those programs that have historically grown out of proportions.
On the other hand I can also understand why people use zsh, even when I don't like it because I'd consider myself a minimalist. Though I also have a lot of aliases for common tools I use, because I would go rogue when I would have to type all those parameters on a regular basis.
The issue most terminals try to solve is explainability and predictability, because they see terminals as a human interface, and not as a tool to write yourself one.
The clashes of those different philosophies are also found in shell implementations. I mean: off the top of your head, do you know all string manipulation syntaxes in bash? Probably not.
First of all stop what you are doing. This is about vim configs, it is not this serious.
I agree the inconsistencies with coreutils. Having helper tools and scripts vs spoon feeding with all options using arrow keys. Just the extremes, having aliases is all good and I never remember awk and sed syntax.
I had problems with having to log in to a bunch of audio encoders last weekend to find out why they were engaged.
I looked at the webpage, a few calls with http/digest returning xml.
I strung together a quick perl script to take an ip/user/password, fire it off to the device, decode the output, fire off more queries, and dump out a <tr>, and then wrapped that in a bash script which generated the rest of the page for the N devices I wanted the status of. Took less than 60 minutes. Deployed it as a new apache virtual host with +ExecCGI.
3878 bytes plus OS provided packages for things like kernel etc, and now I can save time again and again by looking at the status page.
You can choose to make a simple webpage to perform a simple task and have it take 100s of MB, or you can choose not to.
I think many people start learning to use these tools at the same time they learn to program, I know I did. You expect junior devs to be terminal wizards?
> Even a simple web page requires to install 100MBs of dependencies.
No it doesn't? Some tooling requires lots of dependencies, but it's still very possible to open a text editor and spin up a web page.
If I said you need to install 100's of mb of gcc to produce a binary, would you say "no you don't? you can write bytes directly from the shell right into a file" It would be a technical fact, and yet kind of stupid to pretend not to understand that today, in all practical senses, one produces a binary with a compiler suite of one sort or another.
Today, it's a growing trend that software is developed using huge ides and stacks of frameworks. And a new developer is started right off at the highest most abstract (most automatic and magic, sold as most "productive" or "practical") layers possible, which requires the fattest of ides and the tallest of stacks.
The demand for fancy terminals is unproven, but anybody who's pressed <Tab> in their shell or tried to process files with shell pipelines has thought - this could be better.
For electron, because it is the only reasonable multi platform UI platform out there. I do not like that fact but it is true.
For why, because the terminal protocol is atrocious, mix data with control signalling, mix together multiple layers making it really hard to extend it, is stuck emulating an emulator of a physical device from the 70s, is bursting at the seams and is blocking dozens of possibilities in ergonomics that would make our industry kill less people.
Is it well done or can it make money ? I doubt it. Is there an obvious need with wide impact? Fuck yes.
Why do people constantly repeat this? Did we all forget about Qt? Did Qt do such a good job of driving people away from it?
Taking music players for an example, I prefer the way Amarok (Qt) looks compared to something like Amazon Music or Spotify.
1. It's based on C++.
2. The licensing makes it very expensive for non-open-source applications.
As stated _many_ times: Qt can be used via LGPLv3 in commercial software. Only a few components like QtQuick3d are GPLv3 only.
Yes, they did, with their hostile licensing changes and the fact that you cannot customize it as much as you can Electron apps.
It’s not.
> As a user I want apps built to fit into my platform
As a user, I don’t care that about that. As long as the standard keyboard shortcuts exist, as well as reasonable integration with the OS which Electron does perfectly, I’m all set.
I myself prefer the snapiness of QT apps, but budget and time to market will win.
As a developer I must say calling it talent is in most cases a huge stretch, as I do believe you can probably make something in Electron that performs passably, integrates passably and will still be a resource hog. The reason we see basically none of this is because people simply don't care to engineer these applications well. "It's just the browser", after all. Why look deeper?
In this context the argument is moot: a better app that is too expensive or slow to make is simply not going to be released vs the worse one that actually gets published.
That's all there is to it.
That's why people still use wordpress, excel or jupyter notebooks for important stuff.
You may want things to be different, and for good reasons, but it's still what's the market has decided.
Swing.
For developer? Maybe. For user? No way.
Not to mention it spins up an entire chrome process for every app? And doesn’t work on natively wayland?
It’s hard not to conclude that devs working this way hate their users.
First, there's only 2 apps. Second, none of the terminals you're talking about is in Electron, and neither is cross-platform ( partially as a result). Fig isn't really a terminal for that matter.
So you're just ranting for ranting's sake without even understanding the subject?
As for what the market is, maybe they're trying to emulate Docker's switch to developer tooling and make money off enterprises buying team licenses. It's not the worst business model I've heard of, and could work if they get traction. And funnily that's where we get to the other part of your rant - telemetry. Without that data they have significantly lower chances of making it. I don't particularly trust their promises they'll make it opt-in once they've gained enough traction and data, but i think it's unfair to suggest they're collecting errors and usage patterns to sell that data ( which IMHO doesn't make sense, and they would need to warn users that's the case, thank you GDPR).
I'm now curious if these were actually what OP was thinking of.
Terminal is just the program that shows text. New terminal emulators (not all new terminal emulators, but the ones mentioned in comments, the ones op asked about mostly) are way more than just programs showing text, they are also replacing/re-imagining the shell, or re-imagining the way you interact with the shell; thay are wrappers around the shell (and more).
When you start investing you quickly realize how difficult it is to gauge a “good” idea. The only thing that matters is how the market responds and it seems like these solutions have a small, dedicated and quickly growing user base.
I don't see anything in the question that exactly says "get this crap off my screen" "these companies should not be allowed to exist". I see a critical opinion but that is entirely allowed. Your critical opinion like the one you just wrote is presumably allowed.
But I do see an observance of phenomenon, and I find any phenomenon interesting.
This post is a perfectly valid question, just at it's academic face value.
[1] "(badly)", "always some startup with no good will", "Electron" (arguably), "filled it full of always-online trackers"
No, those are not facts
If they're re-inventing the terminal poorly it can only ever make things worse. What is not to understand about the sentiment that the world should not get worse?
> The only thing that matters is how the market responds
The only thing that matters is whether or not something can in aggregate make the world a better place. Tons of stuff does and is profitable, but most things that are profitable emphatically do not. So this is a terrible signal.
Geeky founders think they are so smart that others should work way they are working.
They forget that other geeky developers think the same way and don't care about using someone else tools/workflows because "they" themselves are smarter.
For founding people with money - they see hype of development and they don't know most of geeks will think that tool is crap. They might "there are 100k developers we can reach if each pay $10 we have lots of money" - they don't know geeks don't want to pay for anything because they can build their own tools and their own Dropbox.
I can totally see how there are people with blind spots why these products won't work.
But this is not a recent thing, every time the current thing gets flooded with crap ideas competing for some market share (ie longtail theory).
Sometimes the old ideas are just rebuilt, nocode is just RAD with different branding, event sourcing is just ESB, microservices is basically SOA...
What is scary that actually very little is being created, and a huge amount of crap just resuscitates from old tech, or is a skewed version of some working technology which tries to make it different so it doesn't look like a complete ripoff.
I love terminals, but honestly there isn't much to improve there IMHO is already good, I admire those who try and honest people who try to get a good idea into the market, I despise completely people trying to push any random hello world as a product which is basically a spyware full of trackers.
Event sourcing is a persistence model, an ESB is about distribution.
Microservices are an implementation of the 4+1 architectural view model where at least three of the views are identical.
You’re not wrong about spyware though.
How dare you, I'm telling
There was a lot of hype built around it at the time, and a lot of people that used and believed in it. I think a lot of people saw that and thought "I could market that".
Maybe because the terminal is one of the last frontiers in computing where potential users with deep pockets still have their privacy?