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

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

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