CZ:Proposals/Java applet support

From Citizendium
< CZ:Proposals
Revision as of 00:25, 16 July 2010 by imported>Audrius Meskauskas (→‎Implementation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This proposal has not yet been assigned to any decisionmaking group or decisionmaker(s).
The Proposals Manager will do so soon if and when the proposal or issue is "well formed" (including having a driver).
For now, the proposal record can be found in the new proposals queue.

An example of Java applet with user controls and 3D graphic presentation area

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.

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. Many such applications are already written but stay hosted on various random sites, not finding the way to the shared knowledge resource. If Wikipedia would vote into consensus not to support Java applets, having them on Citizendium would give use one more distinct feature that may be attractive at least for part of the users and contributors.

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). The fastest solution might be to remove the filtering of the HTML APPLET tag, allowing to specify all the applet needs in the standard HTML. Also, it would be good to allow to upload source code in the form of the .zip files (.jar and .zip names must match).

Known public Wiki sites, offering Java applets

At the time of writing the proposal, there were no any notable projects that would combine Java applets and Wiki engine. Closest to that from the applet side looked SourceForge.net that hosts huge number of various free/open source software, including many applets. However as of July 2010, Ultrastudio.org have emerged, offering something very close to that is summarized in this proposal. Ultrastudio.org has the code reviewing system, Wiki engine that supports applets very much like images in Wikipedia are supported and security-aware server side applet builder. It is currently not clear how successful this project will be.

Discussion

A discussion section, to which anyone may contribute.

Thanks for the initiative, Audrius! One question immediately comes to mind: Is it technically possible to upload a demo right now, or are there requirements for technical changes at Citizendium, in addition to changes on the user side? If you already can upload a demo into your user space or a subpage of this proposal, I would think this may help people evaluate the proposal. --Daniel Mietchen 12:15, 30 September 2009 (UTC)

I see the upload wizard does not accept .jar or .zip files, so the best way to get a demo would be to ask a constable to do the upload for you. They may well refuse, however, as we do not currently have policy guidelines on this. --Daniel Mietchen 12:22, 30 September 2009 (UTC)
Please visit http://www.world-of-fungi.org/Models/index.htm and follow one of the two links there to see the applets that I personally wrote as a supplementary material to our publications. These without any doubt I am ready to contribute to Citizendium at any time. There are also many others similar on the web. Immediate showing without changes may not be possible as embedding applet requires the <APPLET> or <OBJECT> tag that likely would be filtered away by Wiki engine. Audrius Meskauskas 14:38, 30 September 2009 (UTC)
An example of Java applet integration into a wiki environment can be found here. --Daniel Mietchen 14:34, 9 November 2009 (UTC)

Proposals System Navigation (advanced users only)

Proposal lists (some planned pages are still blank):