Skip to content

Commit a1a319b

Browse files
authored
Update README.md
1 parent d7cb2f7 commit a1a319b

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,27 +56,31 @@ In the author's own words, "There are Java APIs that are impossible to implement
5656

5757
https://www.leaningtech.com/cheerpj/ "CheerpJ converts Java applications or libraries into JavaScript. Works on bytecode, does not require access to the source code. Compatible with 100% of Java including reflection and dynamic classes. Existing Java archives can be converted to Web applications effortlessly"
5858

59-
This sounds terrific. Very straightforward -- just convert the Java class files to JavaScript. I don't doubt that most of what is written here is true. I am dubious about that "100%" claim, as there are plenty of problems in Java that would take considerably more work than just using class files directly. The Java Reporter demonstration at https://www.leaningtech.com/cheerpj/demos/ crashed both Firefox and Chrome for me, so I cannot really evaluate what I see here.
59+
This sounds terrific. And truly it is. I am very impressed! Basically run the Java byte code in JavaScript. The Java Reporter demonstration at https://www.leaningtech.com/cheerpj/demos/ crashed both Firefox and Chrome for me, so I cannot really evaluate what I see here. But I have played with the JFiddle at https://javafiddle.leaningtech.com/, and it is pretty amazing.
6060

6161
The primary differences between java2script/SwingJS and CheerpJ, to the best of my knowledge, include:
6262

63-
- implementing a true HTML5 UI rather than just painting a canvas the way Java does
63+
- fast start-up time. SwingJS applications generally start within a second or two, sometimes within 100 ms
64+
- small downloads, anywhere from about 800K for a small non-GUI program to 10 MB for a full-blown Swing application (JSmol)
65+
- class-level just-in-time dynamic class loading; no need to retrieve entire JAR files just for a few methods
66+
- leveraging features of HTML5 and modern JavaScript rather than just painting a canvas the way Java does natively
6467
- delivering an easily interpretable and debuggable JavaScript translation of Java classes, with little or no obscurification (unless that is desired)
65-
- well-designed JavaScript-friendly Java core classes that leverage the considerable power of HTML5 rather than ignoring that completely
68+
- well-designed JavaScript-friendly Java core classes that leverage the considerable power of JavaScript
6669
- open source and completely extensible
6770

6871
# History - 2019-
6972

70-
SwingJS is now more than just "Swing"-JS. AWT applets and applications are now supported. A test suite of over 500 AWT applets has been used to refine the AWT runtime classes with great success. Many thanks to Karsten Blankenagel (University of Wuppertal) for access to this source code set.
73+
SwingJS is now more than just "Swing"+JavaScript. AWT applets and applications are now supported. A test suite of over 500 AWT applets has been used to refine the AWT runtime classes with great success. Many thanks to Karsten Blankenagel (University of Wuppertal) for access to this source code set.
7174

7275
Examples include:
7376

7477
MathePrisma (http://www.matheprisma.uni-wuppertal.de/) This site is still using the Java applets as of 2019.03.12; JavaScript versions still in development.
7578

7679
# History - 2017-
7780

81+
https://github.com/BobHanson/java2script/tree/hanson1 (development branch)
7882

79-
https://github.com/BobHanson/java2script (development master)
83+
https://github.com/BobHanson/java2script (master)
8084

8185
Current development "Version 3 development master" involves a completely rewritten transpiler (2017) “CompilationParticipant” that follows the Eclipse Java compiler. The implementation nearly perfectly emulates the Java Virtual Machine. It includes fully qualified methods, compile-time method binding, generic methods and classes, Java 8 lambda functions and streams, Java reflection and dynamic class loading for efficient modular just-in-time performance, 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 any browser.
8286

0 commit comments

Comments
 (0)