While I applaud the development of bitcoin-related software,
Thanks! I hope people will find it to be useful
Well, I anticipated that some people would have negative feelings towards this. I considered the potential negative aspects of a project like this before I started. Although the idea might sound bad initially to some people, I think that any possible negative aspects can be dealt with rather easily, and the idea has a lot of potential to offer new options to people.
1. Potentially consumes all available CPU resources of your visitors unbeknownst to them (especially bad considering laptops and smartphones, which have limited power and small fans at full throttle are uncool as well)
I'm pretty sure this wouldn't run on most (if any) smartphones:
Even if a smartphone could run applets, it probably still wouldn't run due to security restrictions, and even in that case, you could filter them out by http header.
As for laptops, that's a pretty different issue, but it still probably wouldn't be a problem. If there's an outlet available nearby, people usually tend to plug in to save their battery life for when they really need it, and also so that their system will run faster since the OS isn't throttling the cpu, harddrive, etc. to conserve power. So what if there are no power outlets around? Well, If someone's browsing the web, they're almost certainly using wifi, and that would imply that there would be power outlets nearby. If the the user doesn't have a wifi connection, the applet won't be able to connect, and it's designed to sleep when there's no connection, so it won't use any cpu time at all. So, in short:
connected to wifi?
yes -> there should be a power outlet nearby, not a problem.
no -> miner shuts itself off until a connection is available, not a problem.
2. Even if you have people give you full consent, they'd be better off running a miner closer to the bare metal. While probably a few orders of magnitude more efficient than JS implementations, it's still a waste of energy.
Java uses Just In Time compilation, which means it gets the chance to optimize the compiled code in a way that is able to take full advantage of the machine's capabilities, which means that there's a good possibility that the Java code could run faster than statically compiled C/C++, though it varies from one program to another. You might be able to get better performance out of C#/Silverlight since that also uses JIT, but it's not as portable as Java.
3. Having to load the Java VM is pretty annoying by itself.
Not sure what you mean here. If you mean the time it takes for the VM to start up, all of that happens in the background (and doesn't even take very long) so it really has no effect on the user. If you mean the Java VM icon cluttering up the system tray in windows, I believe it should be hidden by default, and it doesn't show up on linux. (dunno about mac though)
Nice tech demo, but don't ever serve this to my browser or I'll never return.
I find your response understandable, but I think that if you consider the idea further, it seems apparent that it has the potential to make the web a better places in many different ways, and at very little or no cost to anyone.
The applet is designed so that it shouldn't noticably impact performance in any way, so I find it unlikely that people would even know it was served to their browser. It's just code that runs in the background, like Google Analytics, Quantcast, and the like.
Try running Ghostery (http://www.ghostery.com/
), there's already tons of stuff like this running behind all the webpages you visit every day. The big difference here is, this code directly and solely benefits the webmaster, and it's arguably quite a bit less ethically questionable.
Many of the scripts that are served invisibly collect information about you so that companies can construct user profiles, which are used to construct statistics which are then sold, usually to marketing companies so that they can figure out how you think and determine which advertisements to show you so you'll buy more stuff from them. Personally, I think that the fact that companies are recording what you do on the internet, building a profile on you, and then selling it is quite a bit more bothersome than having a bit of code that you'd never even know existed run in the background for a minute or two.
Now, if technology like this began to replace
advertising, it would mean that rather than having things you don't care about trying to grab your attention by filling up a good portion of your screen space, being blasted in your face with popups, and trying to blend into the page and disguise itself as actual content, an applet would run in the background, and it wouldn't interfere with the user's experience at all.
In addition, if something like this really caught on and people were to use this rather than web advertising, there wouldn't be as much of a need for the previously mentioned (more questionable) scripts, to collect user data to sell to marketing companies, so it could improve internet privacy, while at the same time making the internet a much cleaner, more concise environment.
Even if you don't see the value in this applet, I'm sure that it will be useful not only to web masters, but also to any developers of future
distributed computing applications that could be used to, in an ideal world, offer a complete and viable replacement for web advertisements.