I'm moving forward with developing a prototype of a cryptographically secure social networking site/messaging service/photo service.
All encryption will take place on the browser, using Open PGP standards. The server will see only encrypted data.
I can't decide between using Javascript/HTML5 and a hidden Java applet to do the bulk of the work.
Advantages of Java:
* Much faster for bitwise crypto operations (a significant concern).
* With the right permissions, it can load files directly from the hard drive and encrypt them in memory. As far as I know, this isn't possible with Javascript - the only way to upload a file is to submit it directly to the server though a form. This could be a dealbreaker for Javascript - though alternatively, I could use Java for only this specific task and everything else could be in JS.
* I can use direct socket communication to reduce latency (the page is likely to be very chatty).
* More crypto libraries already exist.
Advantages of JS/HTML5:
* Not Java
* Will work on the iPhone/iPad immediately (otherwise, if I went commercial, I'd have to develop an app).
* More transparent, giving technical users a greater sense of security.
Thoughts?