I don't mind electron myself, but that ps sounds fairly disingenuous to me.
The only thing that makes me hesitate is because I run FreeBSD on some of my computers and FreeBSD support wasn't quite there yet for Electron apps last I checked. It may have changed in the meantime.
If I were to begin using an Electron app, I need to be sure that I will be able to use it on my FreeBSD computers also. This is especially important for editors and IDEs given that writing software is rather central among the things that I do. Currently I use Neovim for a lot of things and I use PyCharm for bigger Python projects.
I am wondering though, would it be feasible for one person (me) to rewrite Oni so that one can use it from within their web browser instead of with Electron?
Interesting project that did something similiar for Vim: https://github.com/coolwanglu/vim.js/
I have not looked into the way neovim communication works but from their site it seems to be using named pipes which are again, not available from a browser.
I seriously doubt it would be impossible to use Electron as it really is, a Web App.
The answer to "would it be feasible/easy to port an Electron app to a pure browser app" is no. Unless all of the communication between the frontend part and the native tooling is done via sockets.
I agree that native apps should be sandboxed, however sandboxing something like an IDE will be quite difficult. Even Apple does not sandbox Xcode.
Admittedly I have not developed any Electron apps, but I have developed serious web apps and worked a little bit with NodeJS also.
Why don’t people do exactly that when they write their code — make all communication happen over regular HTTP and websockets?
For comparison, the same data transfer using Electron native plugin took well under 1ms.
I like the idea of the same group of people maintaining the kernel and the userland utilities.
Also I am strongly in favor of the family of BSD/MIT/ISC licenses over GPL.
I love ZFS. I think dtrace is neat. I think jails are nice. I like pf. Nowadays there are equivalents for pretty much all of that on Linux. In fact you don’t even have to go with btrfs to get something like ZFS on Linux — the ZFS on Linux project makes ZFS available on Linux too. But on FreeBSD all of these things are there in the base install without having to do anything special and they will continue to be there for a very long time.
All in all, I just like FreeBSD a lot, and I feel at home with it in a way that few other systems make me feel.
Neovim has been a joy to build on - fast, performant, and stable. Great example of a high-quality OSS project!
For instance, native undo is time and word sensitive. I don't know its exact heuristics, but it always seems to do what you meant.
Gmail's Chrome and Electron, on the other hand, will often undo letter by letter or leave you in mid typed words, which is nuts.
If you want another example, I often write in multiple languages, something that's beautifully handled for you on native apps. Since Skype changed to Electron, it puts a red underline on every single non english word I type and there is nothing that can be done about it, besides changing the default system language and restarting the app.
There's also CoreText's sharp line width in retina displays no matter which background/foreground color combination you choose, built in dictionary a tap away, etc.
It's just a dreadful experience otherwise, once you get used.
Some new stuff in the unreleased/development version (hidden behind feature-flags):
* Keyboard-driven navigation of embedded web browser: https://twitter.com/oni_vim/status/977280220234268673
* Live reload with embedded browser: https://twitter.com/oni_vim/status/976502172891299840
However personally I just love the scrollbar: it shows viewport-relative position _inside_ the file-relative scrollbar. (maybe this idea was borrowed from some other IDE, but I haven't seen it before.)
P.S.: Yes, it's electron, but if you're not using terminal Vim/Nvim then you already have given up "minimalism" in favor of ... whatever advantage you ascribe to gVim.