Re: Security...
I'm going to have to disagree with you there. I'll grant that installing a binary that is untrusted is a security nightmare, because it has a great deal of access to the disk. The other side of that coin is that granting a web app access to the disk also lets them have similar levels of access. It may be sandboxed, but there are infinitely many security problems allowing things to exit their sandbox or run stuff inside their sandbox that affect things outside it, E.G. putting some malware in there and using the scheduler to run it. So don't allow anything untrustworthy to have access to your disk.
On this front, binaries have an advantage in that they can quite easily be loaded into virtual machines, taken apart, run through malware scanners, blocked by security policies, run inside custom sandbox products, and the like. Most of these things can't be done easily or at all with a web app. You can run it in a VM, but the code still knows where you are because it can require a network connection to start. Most other things in the list are completely impossible. What's more, a binary doesn't change itself, or if it does, you can find out. A web app runs the latest code that was pushed to you. That new code could be an update from the authors, the result of someone getting into the server, a result of someone changing the source for a nodejs component, or someone deciding the application doesn't need to exist anymore. This leaves a large landscape for injection of malware, and I don't want it.
In addition, there eventually comes a time where you need programs with disk access. When dealing with data, sometimes you want more than one program to be able to modify it. You use program 1 for some functionality, save the file, and use program 2 to do something different. Web apps are going to make that a disaster. For example, I give you the app mentioned in the article that compresses images. We already have a bunch of tools that compress images, and they can be quite fast. Does the web interface add anything to this process, even assuming it does the job as well as something using the GPU for the math? Somehow, I doubt it. A graphical program with access to the disk can make it really easy to do batch compressions. A command line program can allow scripting of the compression process. A web app can... it can compress images. What is the benefit?