Next-Gen Terminals
The terminal is as old as the computer and largely hasn't changed. It's where developers send commands to their machine (or remote machines) – you might hear it called the command line. But the terminal is text-only: no images, no rich text, no functionality that hooks into modern development workflows.
*The terminal that you use on your computer isn't technically a terminal, it's a teletype emulator (TTY), or a pseudo-teletype (PTY). Technically, a terminal refers to the actual hardware device. The go-to technical explanation is The TTY Demystified.
The terminal isn't going away anytime soon. Even IDEs all include an integrated terminal. There's a whole host of startups and open-source projects thinking up what the next-generation terminal looks like. Here's a few categories.
GPU-accelerated terminal emulators. Alacritty was the first I heard of to target performance and speed by using the GPU. Performance of the terminal isn't an obviously critical feature – some terminals slow down framerates intentionally to save resources for actually doing the computation. Probably why these projects haven't seen that much adoption.
Touch gestures / WebRTC-sharing. Some developers are trying to use touch devices to code. I haven't really tried it, so I'm not going to knock it, but I enjoy having my physical keyboard. There's even more purpose-built terminals for iPads and iPhones, but here's two that I've seen recently.
Autocomplete / Feature Enhancements. Some of these provide basic features that don't come with the minimal terminal emulators on Linux or macOS. On Windows, the new Windows Terminal is actually pretty awesome (and my go-to on that OS). Tabs, rich text, configurability, and styling to name a few – alongside a minimal UI that just makes sense.
Hyper by Vercel (Electron-based)
Web. Finally, there's some web-based terminals, but Xterm.js is most popular (and best in my opinion). I think that this is the most underrated and exciting category, especially as IDEs and shells move to the browser.
Xterm.js (used by VSCode)