Skip to content

Commit 2c26fcc

Browse files
authored
Merge pull request #34 from BobHanson/master
readme
2 parents 4dfecf6 + 7e6c4c6 commit 2c26fcc

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,13 @@ See https://github.com/BobHanson/java2script/tree/master/dist and the README fil
3030

3131
https://github.com/BobHanson/java2script (development master)
3232

33-
Current development "Version 3.0 development master" involving a completely rewritten transpiler (2017) that nearly perfectly emulates the Java Virtual Machine, including Swing, modal and nonmodel dialogs, audio, jpdf, the AWT event thread, and many other added packages.
33+
Current development "Version 3 development master" involving a completely rewritten transpiler (2017) that nearly perfectly emulates the Java Virtual Machine, including fully qualified methods, compile-time method binding, generic methods and classes, Java reflection for efficient modular just-in-time class loading, Java Swing components, modal and nonmodel dialogs, audio, jpdf, the AWT event thread, and many other added packages. Java applications and applets can both be run in JavaScript in a browser.
3434

35+
Version 3 also implements real-time creation of HTML test files for immediate JavaScript testing of any changes made to the Java code. Basically, when the source file is saveed in Eclipse, the JavaScript updates automatically, and a reload of the page in the browser shows the changes directly. This makes for very easy side-by-side Java and JavaScript debugging.
36+
37+
Unlike Version 2, Version 3 requires minimal reworking of Java classes - primarily just for performance and threading* reasons, maximizing JavaScript performance without compromising any Java performance and making Java-to-JavaScript conversion almost trivial. (Of course, we are still finding occasional bugs in the transpiler and run-time "JavaScript-JVM.")
38+
39+
*Note that java2script/SwingJS cannot not support Thread.wait(), Thread.notify(), or Thread.sleep(). Nonetheless, in all cases we have found simple state-based alternatives that essentially reproduce this behavior in JavaScript using javax.Swing.Timer. These methods work equally well in Java and JavaScript, requiring just a bit of redesign of Java methods.
3540

3641
Examples include:
3742

@@ -45,22 +50,24 @@ Varna https://github.com/BobHanson/VARNA and https://chemapps.stolaf.edu/swingjs
4550

4651
https://github.com/java2script/java2script (stable master)
4752

48-
Ported from SourceForge by Zhou Renjian, developed further by Zhou Renjian and Udo Borkowski as "Version 2.0".
49-
53+
Ported from SourceForge by Zhou Renjian, developed further by Zhou Renjian and Udo Borkowski (primariy) as "Version 2.0".
54+
5055
Extensively used by Bob Hanson in 2012-2016 for the conversion of Jmol/java to JSmol/javascript (http://jmol.sourceforge.net/), leading to extensive distribution and widespread use on the web. As of 3/2018, still the
5156
only known widely-available java2sript application.
5257

5358
Developed further in 2016 by zhou Renjian, Udo Borkowski, Bob Hanson, Andrew Raduege, Nadia El Mouldi, and Paul Falstad (http://www.falstad.com) for the first round of post-JSmol application of java2script, adding javax.swing classes and
5459
dubbed "SwingJS". Used by Bob Hanson during 11/2016 for conversion of the PhET gas applications applets.
5560

56-
Currently synchronized with https://github.com/BobHanson/java2script as the stable master version.
61+
Version 2 allowed extensive development of JavaScript versions of Java applets, including JSmol, Falstad applets, and PhET applets.
62+
However, this version did not produce "fully qualified" method signatures, resulting in error-prone and performance-reducing run-time binding of methods. Java class loading procedures were not consistent with the seqence of events used by the Java class loader, and parameter and array typing was minimal. Thus, while functional, Version 2 was not fully generalizable and required extensive reworking of Java code to be "java2script compliant."
63+
64+
Synchronized with https://github.com/BobHanson/java2script as the stable master version in 2018.
5765

5866
Examples can be found at https://chemapps.stolaf.edu/swingjs/phet/site/swingjs/examples
5967
and https://chemapps.stolaf.edu/jmol/jsmol
6068

6169
# History - 2005-2010
6270

63-
6471
https://sourceforge.net/projects/j2s (last updated 6/2010)
6572

6673
Initially developed by Zhou Renjian (aka "Josson Smith", zhourenjian@gmail.com, 2005-2017),

0 commit comments

Comments
 (0)