Bck2Brwsr
From APIDesign
(→Demo) |
(→TODO) |
||
Line 22: | Line 22: | ||
* Speed (e.g. rewrite to register based system) | * Speed (e.g. rewrite to register based system) | ||
* Speed - benchmark and infrastructure to measure it in various environments | * Speed - benchmark and infrastructure to measure it in various environments | ||
- | |||
* More precise number support (int32, int64, float, etc.) | * More precise number support (int32, int64, float, etc.) | ||
* [[API]] for drawing on the canvas | * [[API]] for drawing on the canvas | ||
Line 28: | Line 27: | ||
* Method overriding with various modifiers | * Method overriding with various modifiers | ||
* Compatibility tests | * Compatibility tests | ||
- | * Basic reflection support (e.g. [[ | + | * Basic reflection support (e.g. [[Bck2Brcorewsr]] throws {{JDK|java/lang|SecurityException}} when allowed), but for example Class.newInstance() should work. |
* Debugger of [[Java]] (and not [[JavaScript]] would be good) | * Debugger of [[Java]] (and not [[JavaScript]] would be good) | ||
* [[Maven]] archetype for creating the calculator like demos | * [[Maven]] archetype for creating the calculator like demos | ||
+ | ** with translation in the browser | ||
+ | |||
+ | '''Done:''' | ||
+ | |||
+ | * Support for converting [[ByteCode]] in the browser |
Revision as of 23:04, 28 November 2012
During my duties at JavaOne2012 my feeling (primed by observing various RSS feeds full of posts about something which ends .js) that Java is no longer as cool as it used to be straightened. It always starts by loosing interest of newcomers, targeting just a piece of the technology segment and soon once Good Technology becomes new COBOL. Can that happen to Java? Just read Is JavaScript the Future of Programming? and (if you like Java), you'll get scared. I decided to do something about that. I'd like to return my favorite programming language Bck2Brwsr.
Goals
Create small Java capable to boot fast and run in 100% of modern browsers including those that have no special support for Java.
Demonstrate that Java has benefits over JavaScript when creating larger HTML5 applications.
Unlike other similar efforts, the goal of this project is not to execute any existing Java library. It is expected that libraries for the new, limited environment need to be specially designed.
Demo
Right now there are two compilator demos. One is generating the JavaScript during compile phase (try here). That is no longer the most interesting one.
There is also a demo that is using classes packaged in JAR files. That is in my opinion more interesting as it shows how easy it is to reuse (simple) libraries in your browser as well as on your server. Try it here!
TODO
Although the system is capable to run and execute trivial applications, there remains tons of things to improve and fix. Any help is welcomed. Just let me know if something interests you:
- Throwing and catching exceptions - Tomáš Z. volunteered
- Speed (e.g. rewrite to register based system)
- Speed - benchmark and infrastructure to measure it in various environments
- More precise number support (int32, int64, float, etc.)
- API for drawing on the canvas
- Convertor from GWT's native code to Bck2Brwsr's @JavaScriptBody
- Method overriding with various modifiers
- Compatibility tests
- Basic reflection support (e.g. Bck2Brcorewsr throws SecurityException when allowed), but for example Class.newInstance() should work.
- Debugger of Java (and not JavaScript would be good)
- Maven archetype for creating the calculator like demos
- with translation in the browser
Done:
- Support for converting ByteCode in the browser