←Older revision |
Revision as of 11:34, 23 February 2015 |
Line 1: |
Line 1: |
| [[TeaVM]] is a [[bytecode]] to [[JavaScript]] translator written by Alexey Andreev: https://github.com/konsoletyper/teavm | | [[TeaVM]] is a [[bytecode]] to [[JavaScript]] translator written by Alexey Andreev: https://github.com/konsoletyper/teavm |
| | | |
- | Alexey contacted [[I|me]] (as the author of [[Bck2Brwsr]]) and we were seeking for a way to cooperate. I suggested Alexey to extend his [[TeaVM]] to understand [[DukeScript]]'s [http://bits.netbeans.org/html+java/0.7.6/net/java/html/js/package-summary.html @JavaScriptBody] annotation and he did it! | + | Alexey contacted [[I|me]] (as the author of [[Bck2Brwsr]]) and we were seeking for a way to cooperate. I suggested Alexey to extend his [[TeaVM]] to understand [[DukeScript]]'s @{{HTML4J|net/java/html/js|JavaScriptBody}} annotation and he did it! |
| | | |
| That is amazing! Now we have a [[common ground]] - a way to write [[Java]] libraries that talk to [[JavaScript]] and can execute them in a variety of [[environment]]s (like [[FXBrwsr]], [[DlvkBrwsr]], [[HTML|NetBeans and Eclipse]], via [[Bck2Brwsr]] or [[TeaVM]]). No need to worry about proprietary [[API]] to talk to different [[VM]]s! Use [[DukeScript]] - it is the [[wikipedia:Lingua_franca|ligua franca]] all [[VM]]s understand (well, somebody needs to enhance [[GWT]] and convince the [[Doppio]] guys). | | That is amazing! Now we have a [[common ground]] - a way to write [[Java]] libraries that talk to [[JavaScript]] and can execute them in a variety of [[environment]]s (like [[FXBrwsr]], [[DlvkBrwsr]], [[HTML|NetBeans and Eclipse]], via [[Bck2Brwsr]] or [[TeaVM]]). No need to worry about proprietary [[API]] to talk to different [[VM]]s! Use [[DukeScript]] - it is the [[wikipedia:Lingua_franca|ligua franca]] all [[VM]]s understand (well, somebody needs to enhance [[GWT]] and convince the [[Doppio]] guys). |
| | | |
- | Once your application is ready, you can then decide how you want to deploy it. Whether you want more feature rich [[Bck2Brwsr]], or lightweight (but not as complete) [[TeaVM]].
| + | == Getting Started with [[DukeScript]] and [[TeaVM]] == |
| | | |
- | Also now the competition between [[VM]]s can start! We have a way to write a sample application once and then execute it and compare the results. For example here is a ''minesweeper'' (written with [[DukeScript]] [[API]]s) executed by [[TeaVM]]: http://xelfi.cz/minesweeper/teavm/ and here is one executed by [[Bck2Brwsr]]: http://xelfi.cz/minesweeper/bck2brwsr/ - the same [[HTML]] page, the same [[Java]] code - just different [[VM]]s (btw. [[I]] have speeded up the [[Bck2Brwsr]] start a bit; now it should be less than a second):
| + | Once your application is ready, you can then decide how you want to deploy it. Whether you want more feature rich [[Bck2Brwsr]], or lightweight (but not as complete) [[TeaVM]]. The best way to get started is currently to use the [[Minesweeper]] application and modify it to your needs: |
| + | |
| + | <source lang="bash"> |
| + | $ hg clone http://source.apidesign.org/hg/html~demo/ |
| + | $ cd html~demo/ |
| + | $ hg up -C teavm # or directly to version 908708015f61 which is known to work |
| + | $ mvn clean install -DskipTests |
| + | $ cd minesweeper/ |
| + | $ mvn -Pteabrwsr clean package bck2brwsr:brwsr |
| + | </source> |
| + | |
| + | And you can repeat the last step once you modify the [[HTML]] or [[Java]] code. And don't forget - the other way to execute the same application is: |
| + | |
| + | <source lang="bash"> |
| + | $ mvn exec:java |
| + | </source> |
| + | |
| + | == Competition is [[Good]]! == |
| + | |
| + | Now the competition between [[VM]]s can start! We have a way to write a sample application once and then execute it and compare the results. For example here is a ''minesweeper'' (written with [[DukeScript]] [[API]]s) executed by [[TeaVM]]: http://xelfi.cz/minesweeper/teavm/ and here is one executed by [[Bck2Brwsr]]: http://xelfi.cz/minesweeper/bck2brwsr/ - the same [[HTML]] page, the same [[Java]] code - just different [[VM]]s (btw. [[I]] have speeded up the [[Bck2Brwsr]] start a bit; now it should be less than a second): |
| * [http://source.apidesign.org/hg/html~demo/file/4dce5ea7e13a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/MinesModel.java MinesModel] | | * [http://source.apidesign.org/hg/html~demo/file/4dce5ea7e13a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/MinesModel.java MinesModel] |
| * [http://source.apidesign.org/hg/html~demo/file/4dce5ea7e13a/minesweeper/src/main/webapp/pages/index.html HTML] | | * [http://source.apidesign.org/hg/html~demo/file/4dce5ea7e13a/minesweeper/src/main/webapp/pages/index.html HTML] |
| | | |
| In any case, congratulation Alexey for your [[good]] work and thanks for sharing the [[common ground]]! | | In any case, congratulation Alexey for your [[good]] work and thanks for sharing the [[common ground]]! |