Speed
A long time ago, I came upon hyper.js. Before then I was using the native terminal shipped with macOS and iTerm for a long time. The aesthetics of the design of hyper.js immediately hook me. I downloaded it and started using it for my daily research tasks. I immediately find it slow. It very frequently gives no response to my input and even using ls
to list a directory sometimes can cause it to freeze for a few seconds. I tried to use it for probably a month and eventually gave up. I resorted back to iTerm and appreciated its speed which I never thought about before. Although I still couldn’t appreciate its design at that time, its speed is fast enough to not hinder my work in any way.
Two months ago, I noticed that hyper.js has released version 3 which they claimed to be much faster than the previous version. I gave it another try and the new version is indeed much faster than the version I used before. But after several days of usage, I cannot ignore the noticeable lagging (which is probably around 100 ms). One may argue such tiny lagging is not a big deal, but I find it unbearable if I intend to use it as my main terminal.
The same story goes to Atom. Again, it looks much better than Sublime Text or Vim (Neovim) and has a superb plugin ecosystem. But it is slow, the same experience shared by many people. Its new version certainly feels much faster than the version I used one year ago. However, once installed a few plugins and I started to notice the slowing down of opening a new file, the response from linter, etc. And due to its high memory usage, once you have several applications running, it becomes too slow to work on.
Furthermore, my research often requires me to open some large MD simulation trajectory files (200 MB on the small end, usually 1 GB and above), Atom or even Sublime Text isn’t able to handle it. I have to use Vim (actually Neovim) in such case. I imagine many people who deal with large data file daily will find Vim/Neovim is their only truly reliable text editor.
Both Hyper.js and Atom are not native applications but ones built with electron framework which are essentially web apps/sites running on your local computer. I do see the appeal of Electron which gives developers the ability to write cross-platform software/application using javascript, and maybe it is the future. A good example of Electron-based application is Visual Studio Code which I have been using for a well and it seems it is an application written with performance in mind. I do hope more apps follow this path.
P.S. I just read the terminal latency benchmark by danluu. The data there suggests hyper.js is faster than iTerm (even back in 2017)! However, the benchmark is rather simple, compared to the day-to-day use case. But I do notice that the memory consumed by hyper.js is much higher than other terminals. It could be the reason why I find it frequently freeze (I usually will have a bunch applications/software - Jupyter Notebook, a bunch of tabs in chrome, PDF reader, VMD, Sublime Text, etc - going on at the same time).