java2script/java2script is the overall master of the project. However, all active devlopment should be forked from BobHanson/java2script, as that is the current development fork. That said, pushing to java2script/java2script is done regularly, so BobHanson/java2script should not ever be too far ahead of java2script/java2script.
A discussion of application limitations and features is at https://github.com/BobHanson/java2script/blob/master/sources/net.sf.j2s.core/dist/swingjs/differences.txt
Developers of java2script/SwingJS itself should read README-developers.md
Bob Hanson (email@example.com)
See https://github.com/BobHanson/java2script/tree/master/sources/net.sf.j2s.core/dist and the README file in that directory.
Relationship to Alternatives
Google Web Toolkit
I can only find a very few examples of TeaVM use. But from what I can see, TeaVM is still at "concept" stage. It appears that they are hand writing "pseudo" Java as they go. For example, we see at
that "java.awt" contains three classes: TColor, TDimension, and TPoint. TColor has exactly four methods: getRed(), getGreen(), getBlue(), and getAlpha(). It appears to me that the developer has hand-written a decent collection of 800 files as org.teavm.classlib.java. Apparently, the idea is that you would take your Java project and swap in these pseudo-java classes. But this is not scalable. One can't expect a 100,000-line Java program to be retooled or limited to this small hand-crafted set of classes.
The primary differences between java2script/SwingJS and CheerpJ, to the best of my knowledge, include:
- fast start-up time. SwingJS applications generally start within a second or two, sometimes within 100 ms
- small downloads, anywhere from about 800K for a small non-GUI program to 10 MB for a full-blown Swing application (JSmol)
- class-level just-in-time dynamic class loading; no need to retrieve entire JAR files just for a few methods
- open source and completely extensible
History - 2019-
History - 2017-
https://github.com/BobHanson/java2script/tree/hanson1 (development branch)
Jmol-SwingJS https://github.com/BobHanson/Jmol-SwingJS (code only)
Varna https://github.com/BobHanson/VARNA and https://chemapps.stolaf.edu/swingjs/varna
History - 2010-2016
https://github.com/java2script/java2script (stable master)
Ported from SourceForge by Zhou Renjian, developed further by Zhou Renjian and Udo Borkowski (primarily) as "Version 2.0".
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 dubbed "SwingJS". Used by Bob Hanson during 11/2016 for conversion of the PhET gas applications applets.
Synchronized with https://github.com/BobHanson/java2script as the stable master version in 2018.
PhET, Falstad, and other tests https://chemapps.stolaf.edu/swingjs/phet/site/swingjs/examples Initial SwingJS tests converting AWT to Swing in Java, then transpiling.
JSmol: https://chemapps.stolaf.edu/jmol/jsmol Non-AWT, Non-Swing version, our initial application of Java2Script technology.
Falstad Math and Physics Applets (https://www.falstad.com/mathphysics.html) Source available.
History - 2005-2010
https://sourceforge.net/projects/j2s (last updated 6/2010)
Initially developed by Zhou Renjian (aka "Josson Smith", firstname.lastname@example.org, 2005-2017), Soheil Hassas Yeganeh (email@example.com, 2006), Sal Ferro (firstname.lastname@example.org, 2006), Sebastian Gurin (email@example.com, 2008), and others. The project was a "proof-in-concept" that saw limited actual application.