SlideShare a Scribd company logo
1 of 36
JavaScript Monster with

     #vjetjside’}
     #vjetjside’}
      Justin Early, Avantsoft
            @earlyster
         eclipse.org/vjet/
Global
Pollution         Portability


   {types} in    Lack of structure
JsDoc !checked
                 Never upgrade
 not able to       syndrome
     use
  multiple
  libraries          JS errors
VJET’s Journey

•   2005 - VJET started it’s life inside ebay. Based on
    Eclipse platform to work with Java and Web-
    tools development environment.

•   April 2011 - VJET open sourced as part of
    ebayopensource.org

•   2011-2012 - VJET + Sencha work to make VJET
    more extensible to support adopters type
    systems. Sencha sells extensions for VJET.
VJET’s Journey at
    Eclipse Foundation
•   June 2012 - VJET proposed as an Eclipse project

•   Nov 2012 - VJET sourced added to
    git.eclipse.org after IP review

•   Jan 2013 - VJET 0.9 initial contribution

•   Feb 2013 - VJET 0.9.1 bug fix release

•   March 2013 - VJET 0.10
What has been
        delivered?
• Eclipse VJET JS IDE
• VJET ANVILS
• vjo.js - a js library for defining types
• Eclipse Java 2 Js Code Gen
• Eclipse Js 2 Java Code Gen
• VJET Java based DOM construction kit
Training Tools
• Automatic Inferencing
• VJETDoc - you can type all js constructs
• vjo.js - a js library for defining types
• VJET ANVILS - HelloWorld and 3rd party
  JS
• VJET Code generation
Inferencing based on
       literal
Inferencing based on
     assignment
Inferencing based on
known first arguments
Inference of array types
Flagging inferred
accidental global vars
VJETDoc for vars
VJETDoc for DOM
     types
VJETDoc for functions
VJETDoc for functions
     and literals
VJETDoc for
               dependencies
firstfile.js
VJETDoc - more


• Learn more about VJETDoc here
• eclipse.org/vjet/ -> Documentation
VJET vjo.js - a javascript
   functional library
• JS does not have a formal definition format
  for classes,enums,interfaces.
• These are very powerful definitions which
  help build large java libraries.
• If I am going to build a large JS library it
  would be great if there was a build, IDE
  support, JDT support so I know my
  structure is ok.
vjojs - defining types

          Text
                 +VJETDoc
vjojs -kinds of types
• Class
• Enum
• Interface
• Mixin
• Object Literal
• Function
vjojs - side by side with
           Java
vjojs - side by side with
           Java
vjojs - side by side with
           Java
vjojs - side by side with
           Java
vjojs - more info


• There is more information about vjojs
• http://eclipse.org/vjet -> documentation
VJET creating type
libraries using vjojs
vjojs -for type libraries
VJET ANVILS
• Authoring
• Navigation
• Validation
• Instruction
• Library
• http://wiki.eclipse.org/VJET/ANVILS
Using Existing ANVILs

•DOM + JavaScript apis + vjojs - built in
•EcmaScript Ed 5 api updates - add on
•JSON - add on
•HTML Canvas 2D API - add on
Using 3rd party JS
     library ANVILs

• You can use type libraries in multiple ways:
 • For JS authoring
 • For authoring JavaScript with Java
VJET Mix n Match
       Code Gen

• You can generate a Java API from vjojs
• You can also generate vjojs code from Java
Demo
Tame your JavaScript
  Monster with VJET
• Automatic Inferencing
• VJETDoc - you can type all js constructs
• vjojs - a js library for defining types
• VJET ANVILS - HelloWorld and 3rd party
  JS
• VJET Code generation
VJET.next
•   AMD, commonjs module dependency understanding

•   ANVIL documentation/videos and possible standardization for multiple JS
    tools

•   VJET Graduation to 1.0 release

•   Increase # of contributors

•   VJET Core + Orion

•   NodeJS ANVIL 0.10 + 10x10 NodeJs module ANVIL

•   Google SoC -JQuery UI ANVIL + Testing of NodeJS ANVILs

•   Support for Google Closure library
Thanks

• Please visit eclipse.org/vjet/
• Jobs at Avantsoft
• Training and Support for VJET
• Contribute to VJET -- helpwanted bugs
• Follow me on twitter @earlyster

More Related Content

Similar to Tame Your JavaScript Monster with VJET

Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Jeremy Likness
 
CommonJS Everywhere (Wakanday 2011)
CommonJS Everywhere (Wakanday 2011)CommonJS Everywhere (Wakanday 2011)
CommonJS Everywhere (Wakanday 2011)cadorn
 
jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013dmethvin
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNaveen S.R
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bagJamie Coleman
 
No Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueNo Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueAndrus Adamchik
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?LindaHsu19
 
Introduction to node.js by jiban
Introduction to node.js by jibanIntroduction to node.js by jiban
Introduction to node.js by jibanJibanananda Sana
 
Java online training from hyderabad
Java online training from hyderabadJava online training from hyderabad
Java online training from hyderabadrevanthonline
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Max Andersen
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project Elad Hirsch
 
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Codecamp Romania
 
Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Mihail Mateev
 
Eclipse loves-java script
Eclipse loves-java scriptEclipse loves-java script
Eclipse loves-java scriptPatrik Suzzi
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End TestsSriram Angajala
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 

Similar to Tame Your JavaScript Monster with VJET (20)

Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
 
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012
 
CommonJS Everywhere (Wakanday 2011)
CommonJS Everywhere (Wakanday 2011)CommonJS Everywhere (Wakanday 2011)
CommonJS Everywhere (Wakanday 2011)
 
jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
 
ExtJS Sencha Touch
ExtJS Sencha TouchExtJS Sencha Touch
ExtJS Sencha Touch
 
Node.js In The Enterprise - A Primer
Node.js In The Enterprise - A PrimerNode.js In The Enterprise - A Primer
Node.js In The Enterprise - A Primer
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
 
No Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueNo Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with Bootique
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?
 
Introduction to node.js by jiban
Introduction to node.js by jibanIntroduction to node.js by jiban
Introduction to node.js by jiban
 
Java online training from hyderabad
Java online training from hyderabadJava online training from hyderabad
Java online training from hyderabad
 
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
Case study: JBoss Developer Studio, an IDE for Web, Mobile and Cloud applicat...
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project 
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
 
Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]Varna conf nodejs-oss-microsoft-azure[final]
Varna conf nodejs-oss-microsoft-azure[final]
 
Eclipse loves-java script
Eclipse loves-java scriptEclipse loves-java script
Eclipse loves-java script
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Tame Your JavaScript Monster with VJET

  • 1. JavaScript Monster with #vjetjside’} #vjetjside’} Justin Early, Avantsoft @earlyster eclipse.org/vjet/
  • 2. Global Pollution Portability {types} in Lack of structure JsDoc !checked Never upgrade not able to syndrome use multiple libraries JS errors
  • 3.
  • 4. VJET’s Journey • 2005 - VJET started it’s life inside ebay. Based on Eclipse platform to work with Java and Web- tools development environment. • April 2011 - VJET open sourced as part of ebayopensource.org • 2011-2012 - VJET + Sencha work to make VJET more extensible to support adopters type systems. Sencha sells extensions for VJET.
  • 5. VJET’s Journey at Eclipse Foundation • June 2012 - VJET proposed as an Eclipse project • Nov 2012 - VJET sourced added to git.eclipse.org after IP review • Jan 2013 - VJET 0.9 initial contribution • Feb 2013 - VJET 0.9.1 bug fix release • March 2013 - VJET 0.10
  • 6. What has been delivered? • Eclipse VJET JS IDE • VJET ANVILS • vjo.js - a js library for defining types • Eclipse Java 2 Js Code Gen • Eclipse Js 2 Java Code Gen • VJET Java based DOM construction kit
  • 7. Training Tools • Automatic Inferencing • VJETDoc - you can type all js constructs • vjo.js - a js library for defining types • VJET ANVILS - HelloWorld and 3rd party JS • VJET Code generation
  • 9. Inferencing based on assignment
  • 10. Inferencing based on known first arguments
  • 16. VJETDoc for functions and literals
  • 17. VJETDoc for dependencies firstfile.js
  • 18. VJETDoc - more • Learn more about VJETDoc here • eclipse.org/vjet/ -> Documentation
  • 19. VJET vjo.js - a javascript functional library • JS does not have a formal definition format for classes,enums,interfaces. • These are very powerful definitions which help build large java libraries. • If I am going to build a large JS library it would be great if there was a build, IDE support, JDT support so I know my structure is ok.
  • 20. vjojs - defining types Text +VJETDoc
  • 21. vjojs -kinds of types • Class • Enum • Interface • Mixin • Object Literal • Function
  • 22. vjojs - side by side with Java
  • 23. vjojs - side by side with Java
  • 24. vjojs - side by side with Java
  • 25. vjojs - side by side with Java
  • 26. vjojs - more info • There is more information about vjojs • http://eclipse.org/vjet -> documentation
  • 28. vjojs -for type libraries
  • 29. VJET ANVILS • Authoring • Navigation • Validation • Instruction • Library • http://wiki.eclipse.org/VJET/ANVILS
  • 30. Using Existing ANVILs •DOM + JavaScript apis + vjojs - built in •EcmaScript Ed 5 api updates - add on •JSON - add on •HTML Canvas 2D API - add on
  • 31. Using 3rd party JS library ANVILs • You can use type libraries in multiple ways: • For JS authoring • For authoring JavaScript with Java
  • 32. VJET Mix n Match Code Gen • You can generate a Java API from vjojs • You can also generate vjojs code from Java
  • 33. Demo
  • 34. Tame your JavaScript Monster with VJET • Automatic Inferencing • VJETDoc - you can type all js constructs • vjojs - a js library for defining types • VJET ANVILS - HelloWorld and 3rd party JS • VJET Code generation
  • 35. VJET.next • AMD, commonjs module dependency understanding • ANVIL documentation/videos and possible standardization for multiple JS tools • VJET Graduation to 1.0 release • Increase # of contributors • VJET Core + Orion • NodeJS ANVIL 0.10 + 10x10 NodeJs module ANVIL • Google SoC -JQuery UI ANVIL + Testing of NodeJS ANVILs • Support for Google Closure library
  • 36. Thanks • Please visit eclipse.org/vjet/ • Jobs at Avantsoft • Training and Support for VJET • Contribute to VJET -- helpwanted bugs • Follow me on twitter @earlyster

Editor's Notes

  1. 2005 - VJET started it’s life inside ebay as a JS type editor and code-gen to provide Java API for JS code. Nov 2012 - VJET renamed to org.eclipse.vjet
  2. There are many options for constructing a “class” today in JS since JS doesn’t have class construct by default. function Person(){} Person.prototype.method = function(){} Person.prototype.prop = 20; Multiple issues with this: 1. no namespace 2. can mix execution code + definition code 3. !nested classes 4. how to handle java concepts such as enum, interfaces,
  3. Example: load vjo bootstrap.js on the page then load vjo . ctype ( 'ns.Person' ) //< public . props ({ // can be accessed ns.Person.doIt() //>public void doIt() doIt : function (){ alert( "props done" ) } }) . protos ({ // can be accessed new ns.Person().doIt2() //>public void doIt2() doIt2 : function (){ alert( "protos done" ) } }) . endType (); Then you can call methods in the class.
  4. Class, Enum and Interface are to match types found in Java Object literal and Function are to match types found in JavaScript Mixin is a concept found in Ruby
  5. These are written in JavaScript
  6. First show js examples that were in slides Show a change to VJET ANVIL