CZ:Proposals/Java applet support

Driver: Audrius Meskauskas 11:49, 30 September 2009 (UTC)

Complete explanation
Java applet is a powerful feature to illustrate mathematical, technical, electric and some other subjects, from interactive function graphs till mathematical models with advanced visualization. Unlike animations, they may have controls to interact with the user, allowing active experiments. They are fast enough for non trivial visualizations that are computation intensive. They are more portable, secure and website-integrable than standalone applications. During the years, lots of applets were created for educational and similar purposes; it is even possible to suspect that this is one of the most successful areas of they use. Some scientific projects have applets as an illustrations of concepts, discovered during research work.

Java applets are also proposed for Wikipedia by the same author, with quite a discussion evolving around. However Citizendium Citizendium users are real users with real names, making applet usage far easier here:


 * It looks more acceptable here that some complex piece of illustrative material (like Java applet) can only be written and maintained by a specialist. Wikipedia, differently, much stronger follows the rule that "anyone can edit" and many talks against advanced visualization are based on claims that not everybody can program, not everybody has suitable computer to install development environment and so on.
 * Also, it seems more acceptable here that applet has a maintainer, a person with real name that updates and expands it, so it may not be necessary to start from the difficult to implement changes as the public code review or the forced server side compilation of all provided applets. An applet must fulfill licensing rules in a compiled role, serving its content same way as image does. From the other side I am not against requiring the applet source code to be under FOSS license and would support this idea.
 * Unlike in Wikipedia, the level of vandalism is extremely low (if not zero). This makes highly unlikely that somebody will start exercising a vandalism so difficult as uploading potentially malicious applets. As Java applets run in a sandbox (no access to the local filesystem, clipboard, etc) and can only talk with the host where it has been downloaded from, security risks may not be actually so huge. The author of this proposal is convinced that big part of talks about Java insecurity is an urban legend as applets are even more restricted than currently abundant JavaScript

It is a normal security practice to disable all unneeded browser features for untrusted sites, and it may happen that Java is disabled by default as well on a majority of browsers. This, however, does not look like a major problem as it is not complex to install1 and enable Java for selected sites. Administrators are also not just devils: after several years of nothing horrible happening around they would enable features that people need for they direct work. Hence general argument that "Java will not run because it is disabled" may also not be universal.

Java is a highly popular language with long history; many issues that were possible in the past should be resolved. Educational and demonstrational Java applets are abundant on a web, showing that this technology may be efficient and attractive. Not all they are under FOSS licenses, but many are, showing the willingness of some authors to share the work. Allowing applets would allow Java developers to participate in Wikipedia with they programming contribution. For the average developer, writing applet is relatively very easy task, comparable by time with the text contribution and producing much more valuable output.

''A complete, clear, feasible, and (as applicable) step-by-step explanation of the proposal. Or, if an issue: a complete and fair explanation of the competing positions that the decisionmakers are being asked to consider.''

Reasoning
While some less computation intensive demos can be arranged with JavaScript, Java basically has no competitors when an execution speed of the compiled application is required. Applets to visualize and demonstrate various concepts are abundant on a web, many under free licenses. Non trivial visualizations like chess game, 3D mathematical models of development, protein 3D viewers and so on are easily possible.

Implementation
Allow to upload applet .jar files same way as pictures are uploaded and implement Wikilanguage extensions allowing to embed them into pages (specifying alternative content if an applet will not run on that browser). Allow to upload source code in the form of the .zip files (.jar and .zip names must match).

= Discussion = A discussion section, to which anyone may contribute.