Why should marketers learn code and why should software developers understand marketing?
Project Nashorn, why should we care #js.next()
-
Upload
michal-gruca -
Category
Software
-
view
196 -
download
1
Transcript of Project Nashorn, why should we care #js.next()
Excellence inSoftware Engineering
Project Nashorn – why should we care
@michalgruca
Excellence in Software Engineering
Excellence in Software Engineering @michalgruca 3
What is Nashorn
Excellence in Software Engineering @michalgruca 4
Whats the fuss all about
● Yet another js runtime -> on server
● Quite fast
● Built on top of Java
● EcmaScript 5.1 compatible
Excellence in Software Engineering @michalgruca 5
But Node
● Mature
● Tested
● Has ecosystem (modules)
● Fast!
V8 powered
Excellence in Software Engineering @michalgruca 6
It's different architecture than Node!
Excellence in Software Engineering @michalgruca 7
Threads!
Excellence in Software Engineering @michalgruca 8
But WHY to use it?!
Excellence in Software Engineering @michalgruca 9
Access to JVM!
JVM
Excellence in Software Engineering @michalgruca 10
Really
Java
http://lustich.de/bilder/tiere/really-dog/
Excellence in Software Engineering @michalgruca 11
Avatar.js
Avatar.js is a project to Avatar.js is a project to bring the nodebring the node programming model, APIs and module ecosystem programming model, APIs and module ecosystem to the Java platformto the Java platform, enabling a new class of , enabling a new class of hybrid server applications that can leverage two of hybrid server applications that can leverage two of the most popular programming languages and the most popular programming languages and ecosystems today. ecosystems today.
These These Java+JavaScriptJava+JavaScript applications can applications can leverageleverage capabilities of capabilities of both environmentsboth environments - - access the latest access the latest node frameworksnode frameworks while taking while taking advantage of the advantage of the Java platform's scalability, Java platform's scalability, manageability, toolsmanageability, tools, and extensive collection of , and extensive collection of Java Java librarieslibraries and middleware. and middleware.
https://avatar-js.java.net/
Excellence in Software Engineering @michalgruca 12
Avatar.js
https://avatar-js.java.net/
Excellence in Software Engineering @michalgruca 13
Compatible with existing Java applications
Excellence in Software Engineering @michalgruca 14
Allows to create Java in Js
DEMOhttps://github.com/mgruca/nashorn_example/blob/master/src/main/test/pl/rits/Runner.java#L19https://github.com/mgruca/nashorn_example/blob/master/src/main/test/pl/rits/Runner.java#L25
Excellence in Software Engineering @michalgruca 15
EnterpriseEnterprisereadyready
By Takashi Hososhima
Excellence in Software Engineering @michalgruca 16
Enterprise?
Excellence in Software Engineering @michalgruca 17
Big stuff
Excellence in Software Engineering @michalgruca 18
Libs
Excellence in Software Engineering @michalgruca 19
Security & Crypto
X.509X.509
PKIPKI
S/MIMES/MIME
Open/PGPOpen/PGP
PKCS#10 PKCS#10 PKCS#12PKCS#12
Hashing algorithmsHashing algorithms
Excellence in Software Engineering @michalgruca 20
XML!
● SAX● Dom● STaX● ...● ...● Bindings● You name it!
Excellence in Software Engineering @michalgruca 21
Office support
Excellence in Software Engineering @michalgruca 22
Desktop
By Moriline: http://en.wikipedia.org/wiki/NetBeans#mediaviewer/File:Gui-builder.png
Excellence in Software Engineering @michalgruca 23
Allows OS scripting!
DEMOhttps://github.com/mgruca/nashorn_example/blob/master/scripts/fx.shhttps://github.com/mgruca/nashorn_example/blob/master/scripts/sample.sh
Excellence in Software Engineering @michalgruca 24
IO
● Channels
● Streams
● Buffers
● Readers / Writers
● Blocking / Non blocking
Excellence in Software Engineering @michalgruca 25
Testing and verification
DEMOhttps://github.com/mgruca/nashorn_example/blob/master/src/main/test/pl/rits/Runner.java#L48
Excellence in Software Engineering @michalgruca 26
Access to all platforms and H/W
Excellence in Software Engineering @michalgruca 27
Polyglot enabled
Excellence in Software Engineering @michalgruca 28
cons
By Hans Hillewaert
Excellence in Software Engineering @michalgruca 29
Slower than Node
May be twice+ slower than V8http://ariya.ofilabs.com/2014/03/nashorn-the-new-rhino-on-the-block.html
Excellence in Software Engineering
Mean tim
e in Java land
Mean tim
e in Java land
www.techempower.com/benchmarks
Excellence in Software Engineering @michalgruca 31
Java experts necessary
2
Excellence in Software Engineering @michalgruca 32
Can be tricky
By Yoel Ben-Avraham
Demo: https://github.com/mgruca/nashorn_example/blob/master/src/main/test/pl/rits/Runner.java#L42
Excellence in Software Engineering @michalgruca 33
Real world examples
What can we do with it?What can we do with it?
Excellence in Software Engineering @michalgruca 34
My project
Excellence in Software Engineering @michalgruca 35
Questions
By Xurblehttps://www.flickr.com/photos/xurble/376588066/
Excellence in Software Engineering @michalgruca 36
I love feedback! :)
@michalgruca
www.rits.pl