Terminal Speed for Developers
Why would we want the terminal to be fast? You have made TDD a religion at your workplace. Guard runs constantly in your multiplexed environment. You watch the tests stream by but can't help wondering how much horsepower is being used to display those cute little airline fonts and glyphs and coloring syntax.
Quite a lot actually. All the pretty formatting you see is the result of writing extra characters to the log file or to STDOUT. Open a log file from an app that supports this kind of output in a text editor, and you will see a number of extra characters interposed with the log output like "[35m", "[0m" etc. The terminal emulator actually has to do the work to support displaying all these extra codes. Also consider the case where you want to open up a file in Vim or another terminal based editor that's anywhere from a few Mb in size to several hundred Mb.
Enter Alacritty, a super bare bones terminal emulator for 'nix systems that does all the text rendering on the GPU. Wait, what? Yes you read that right, the GPU.
For sure throwing this portion of the workload onto the GPU makes sense. Now the CPU can actually run the test suite, or the log output.
Why did we have to wait so long for hardware acceleration to help with the terminal?
For all you cool kids out there that want to see what Rust, a language Mozilla sponsors, can really do as far as bare implementations, this has got to be it. The combination of Rust and OpenGL for the rendering means you aren't going to blow smoke out the back of the computer while running tests with big dumps to STDOUT.
In particular, with the advent of 4k and 5k screens and retina displays most terminal emulators have shown their age.
More details on Alacritty here
And of course, what could be funner that watching the Gource visualization of how the project developed.
Gource Visualization of Alacrity
Take care and keep computing.
Brian
Very cool Brian. Going to try it out. Hopefully they have Windows support soon.