advertisement

Javantura Zagreb 2014 - Nashorn - Miroslav Rešetar

67 %
33 %
advertisement
Information about Javantura Zagreb 2014 - Nashorn - Miroslav Rešetar
Technology

Published on March 2, 2014

Author: hujak

Source: slideshare.net

Description

Konferencija Javantura Zagreb 2014 by HUJAK

Java 8 JavaScript – Nashorn by Miroslav Rešetar

Java 8 donosi podršku za scripting u JavaScriptu. Engine se zove Nashorn (openjdk.java.net/projects/nashorn) i nasljednik je popularnog Rhino engine-a. Za razliku od starijeg Rhino-a, Nashorn koristi invoke dynamic Java 7 mehanizam što mu omogućava puno bolje performanse. Nashorn je moderni engine, usklađen sa ECMAScript 5.1 standardom. To omogućava uporabu popularnih JavaScript biblioteka iz Java programa što otvara neke sasvim nove načine kako implementiramo naša Java rješenja. Prezentacija ima za cilj upoznati Java developera s mogućnostima integracije JavaScript-a u buduća Java 8 rješenja.
advertisement

Java 8 JavaScript Nashorn @MiroslavResetar, Javantura, 22.2.2014.

JavaScript na Javanturi? • Alfresco • • CMIS API implementiran u JavaScriptu Neo4J • „people love to use Neo4j from Node.js and the browser” • Sencha Touch, Ext.Js, D3.js, • JavaFX • • Dart • • „writing JavaFX scripts in Nashorn is very easy” transkompajlira se u JavaScript! Vert.x • JavaScript API

Popularnost JavaScripta? • Redmonk, siječanj 2014. • Github repozitoriji vs Stack Overflow 1. JavaScript (+1) 2. Java (-1) 3. PHP 4. C# (+2) 5. Python (-1)

JVM polyglot programming • Clojure, Scala, JRuby, Jython, Rhino (JavaScript) • Zašto JVM? • Jer je zakon • GC, Threads, Java API, ogromna količina biblioteka, puno platformi • JVM – najbolji dio Jave 

Rhino • Rhino – Java implementacija JavaScripta • 1997 – Netscape započeo rad na Rhino-u • 1998 – Rhino je predan Mozilli i open source-an • 2006 – Java 6 pakira Rhino kao standardnu implementaciju skriptnog jezika

Problemi sa Rhino-om • Rhino je veoma spor u usporedbi sa ostalim JavaScript engine-ima (browserima) • Velika potrošnja memorije • Veoma stari codebase (iz Java 1.1 vremena) • Kako bi se „popravio” bio je potreban veliki rewrite, odluka je bila krenuti iz početka

Nashorn • Potpuno nova implementacija JavaScripta • Kompajlirani kod a ne interpreter • Dolazi standardno sa JDK-om 8 • 5 x manji footprint • 20 x bolje performanse (otprilike )

Rhino vs Nashorn

Nashorn vs Groovy

InvokeDynamic • A First Taste of InvokeDynamic • „... static nature of Java is in the language itself (and not the JVM)” • „Every invocation has to be called against a known type.” • „we must generate hundreds of tiny methods into tiny classes with everything neatly tied up in a bow so the JVM will pretty please perform that invocation for us as quickly as possible” • „java.lang.OutOfMemoryError: PermGen space” • „InvokeDynamic ... the ability to make a dynamic call that the JVM not only recognizes, but also optimizes in the same way it optimizes plain old static-typed calls.” • MethodHandle happyTimeHandle = MethodHandles.findVirtual(Happy.class, "happyTime", void.class, String.class);

Kako do Nashorn-a? • JSR 223 – javax.script (Java 6, 12/2006)

Nashorn smoke test

QUnit • „QUnit is a powerful, easy-to-use JavaScript unit testing framework.” • Dohvati engine, učitaj QUnit, setupiraj ga, pokreni test

{{Mustache}} • „Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object.”

Shell scripting: JJS • Curl -> Regex -> Curl -> Play Audio

Što Nashor nije • Nije DOM/CSS okruženje • Ne podržava korištenje biblioteka kao što su JQuery, Dojo, Ext. (out-of-the-box) • Nema browser plugin API • Nije embeddable u browser • Ne podržava ne standardizirane feature JavaScripta • Nije multithreaded safe • generalno nije problem ukoliko se izbjegava globalni scope • loadWithNewGlobal creates a fresh global before loading the script

„Meet the team”

Jim Laskey odgovara • Postoji li debugger za Nashorn? • Debuger je integriran u Netbeans 8 (beta). • Eclipse još nema debugger za Nashorn. • Da li radite još na poboljšanju performansi? • Da. Veliki trud se ulaže kako bi performanse bile još bolje sa verzijom 8u20. Verzija se očekuje na jesen. Za sada su brojke obećavajuće. • Što se događa sa Node.jar projektom? • Preimenovan u Avatar.js. StrongLoop ulažu ogroman trud ne bi li podržali projekt. Trenutne performanse su bolje od Node.js. Bit će još bolje sa verzijom 8u20.

Project Avatar i Avatar.js • „Avatar.js is a project to bring the node programming model, APIs and module ecosystem to the Java platform.” • „Avatar.js applications are both asynchronous and singlethreaded (exactly as in Node.js).” • „Avatar - JavaScript services layer...rich client side framework that assumes very minor JavaScript knowledge.”

Želite znati više? • Jim Laskey - Nashorn, JavaScript for the JVM • http://www.youtube.com/watch?v=I6eo2KPsk7U • Attila Szegedi - The Curious Case of JavaScript on the JVM (http://vimeo.com/78890890) • Oracle Java Magazine Jan/Feb 2014 – Oracle Nashorn • http://julien.ponge.org/blog/nashorn-article-in-oraclejavamagazine-jan-feb-2014/

Pitanja?

Reference • Kod - https://github.com/mresetar/javantura-nashorn • JUnit benchmarks - http://labs.carrotsearch.com/junitbenchmarks-tutorial.html • Nashorn JavaFx debugger https://github.com/wickund/nashornexamples/ • Spring boot sample project • Rhino QUnit setup • VoiceRSS service

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Javantura Zagreb 2014 - Sencha Touch - Denis Jajčević ...

Javantura Zagreb 2014 - Sencha Touch ... Javantura Zagreb 2014 - Nashorn - Miroslav Rešetar - Duration: ... Javantura Zagreb 2014 ...
Read more

Javantura Zagreb 2014 - WildFly 8 - Tomaž Cerar - YouTube

Javantura Zagreb 2014 - Nashorn - Miroslav Rešetar - Duration: ... Javantura Zagreb 2014 ... Javantura v2 - JavaFX: Write ...
Read more

Predavanja | Javantura

Popis predavanja (abecedno) na konferenciji Javantura Zagreb 2014. ... Java 8 JavaScript – Nashorn – Miroslav Rešetar; Java na klijentskoj strani ...
Read more

Program | Javantura

... 45 Otvaranje konferencije Javantura Zagreb 2014 HUJAK i IT HGK ... Program @ Javantura v1 Feb 2014; ... Nashorn Miroslav Rešetar: Je li JavaFX ...
Read more

Miroslav Rešetar (@MiroslavResetar) | Twitter

The latest Tweets from Miroslav Rešetar ... #zagreb #fog pic.twitter ... My presentation from Javantura is now on Slideshare "Designing a ...
Read more

Javantura - Informacijska i komunikacijska tehnologija

... Dartlang, Eclipse, Groovy, JavaFX, JavaScript, Nashorn, Neo4J, RIA ... prva poludnevna Java konferencija nazvana Javantura Zagreb 2014, ...
Read more

Milan Rešetar - Wikipedia, the free encyclopedia

Milan Rešetar; Born: February 1, 1860 Dubrovnik: Died: January 14, 1942 Florence, Italy: ... Zagreb 1916) M. Rešetar, Popis dubrovačkih vlasteoskijeh ...
Read more

Veljača | 2014 | HUJAK - Hrvatska udruga Java korisnika

Java konferencija Javantura Zagreb 2014 je okupila 150 Java ... prikaz novog JavaScript engine-a Nashorn koji je ... Nashorn – Miroslav Rešetar;
Read more