What's with the hacker community and their obsession with a terminal emulator? You're just writing to a framebuffer when you call printf. You may as well cut out the middleman and get better, more responsive controls and rendering of a GUI (and let's not pretend this application is not a GUI). I prefer nedit, just wish it would support Unicode. Or maybe I don't and Unicode should just stop existing. I also notice nedit has less input latency than vim on most terminal emulators.
Decoupling the machine where you do the edit/build/run cycle from the machine where you get your key presses and mouse movements processed has a number of advantages in the general case and is practically non-negotiable in a subset of cases.
By having my editor (and the LSP servers, etc.) running on a different machine I can afford to have it be a big, high core count Linux machine maybe with GPUs in it that is arbitrarily hot or loud or heavy. For many languages (C/C++, Haskell, Rust, there are others) either the build or the go-to-definition or some other frequently-done thing are slow on even the best laptop / quiet PC.
By having the client machine be an appliance running a terminal emulator, my colleagues and I can be indifferent to one another’s choices in desktop environment: there can be Mac people and Windows people and desktop Linux people etc. In my case I can have a slim little MacBook Air that can drive a big display, play sound properly out of the box, wake/sleep properly out of the box, and otherwise get out of the way while I work on the “real” computer, which can be anywhere with a manageable ping from here.
There are disadvantages too: mostly that networks go down, GUIs are nice for some things, and others. It’s not a free lunch.
It’s a tradeoff (and I’m aware that it’s surprising to many that regular computers still aren’t fast enough for many hackers), buts it’s not just Luddism.
X and VNC and all the others place much higher demands on your network connection.
If all your boxes are reasonably local those can be great options, but they still don’t obsolete tmux and stuff. Nothing obsoletes tmux and stuff.
Whether it’s vi or emacs or tmux or whatever: this field is too competitive to let shitty stuff stick around for decades. People who go all terminal know the alternatives, they’ve tried them, they try the new ones, and they know what the fuck they’re doing.
While I agree that ssh -Y requires a somewhat fast connection, VNC works at 10 MBit/s. RDP and XDPA works at 3 MBit/s.
And if the speed is lower, then typically it also implies a high latency. Then I have found that running a GUI remotely via xpra gives a better experience than running an editor with IDE features under ssh and tmux. I suspect XPRA protocol simply has less round trips than a terminal IO as the latter was never designed for high-latency links.
> What's with the hacker community and their obsession with a terminal emulator?
Because unlike web apps, terminal apps are often fast (and even faster when the terminal has HW acceleration, see for example https://alacritty.org). Unlike native GUIs, they can easily go through a low-bandwidth network connection (e.g. ssh). They are often portable and can be easily made stable without a huge stack of dependencies.
But why would I want to think about keyboard shortcuts and remember controls, if we can have better, self-discoverable interfaces rather than something designed in the 1970ies?
I find they're very different parts of memory. Keyboard shortcuts live in your hands -- they're muscle memory.
Trying to remember where some option in a cluttered dropdown menu you used 20 minutes ago is working memory, something I'm personally terrible with. It's either whiplash out of a flow state, or risks sidetracking me.
It takes practice to build muscle memory, but it's something that generally stays with you for a long time, so it's an investment.
The point is that you don't think about keyboard shortcuts. You just think about the thing you need to do, and let your hands do it.
Doesnt have to be shortcuts.
You know where the items are. Press menu -> 3x down, enter, enter, tab, tab, type something, done. Compare that to the same by mouse.
This is why old cashier systems are so super fast.
Terminal emulators, IMO, have 2 big reasons they are popular. First is that they work like a better, more stable web browser in the sense that they provide a standard platform to develop UIs on. Second is that the command shell is arguably the best general purpose UI we have for computers today and it lives in the terminal.
Should you be spending a lot of time in the production environment though? Also, in many places, the list of things you can do in the production environment is quite short (viewing logs or reconfiguring things), because the app runs off a Docker-or-whatever container and is written in a compiled language (so you can’t just hack together a bugfix in vim on the production server).
This explanation doesn't do it for me because you also wouldn't be able to run any text editor you like. Basically you're going to be using vi (or possibly vim or nano). It also shouldn't be a daily activity to be poking around directly on a production machine, and if it is then why not setup something like sshfs and use a local text editor on the file? Then you can use whatever GUI or TUI editor you'd like.
You can use xnedit which supports unicode (UTF-8).
https://sourceforge.net/projects/xnedit/
It can read nedit default setting file.
It also supports antialiased fonts, has an improved file selection box, indent rainbow and more...
> What's with the hacker community and their obsession with a terminal emulator?
I spend a lot of time ssh’ed into other computers where there is no gui.
I often tell new devs that there are different formats for computer programs, just like with media.
1. One dimensional, text only
2. Two dimensional desktop
3. Three dimensional VR / AR, etc
Just like audio, video and physical immersive art, having one that exists doesn’t make the others invalid, bad, or useless. You need to pick the right format for the job.
If you’re doing “low level” things one dimensional is often the most useful - which, I think, is why the hacker community prefers terminal based.
(not to mention you can often view lower dimensional things in higher dimensions, but not the other way around (something like running a terminal in VR vs VR in a terminal))