Upgrade to Pro — share decks privately, control downloads, hide ads and more …

{learnhowto:‘tame the JavaScript Monster with #vjetjside’}

Justin Early
December 12, 2012

{learnhowto:‘tame the JavaScript Monster with #vjetjside’}

Talk given on 12/12/2012 at Eclipse Day at Google

Justin Early

December 12, 2012
Tweet

Other Decks in Programming

Transcript

  1. {learnhowto:‘tame the
    JavaScript Monster with
    #vjetjside’}
    Justin Early, Avantsoft
    @earlyster
    eclipse.org/vjet/
    Friday, December 14, 12

    View Slide

  2. Global
    Pollution
    Lack of structure
    Never upgrade
    syndrome
    not able to
    use
    multiple
    libraries
    types in
    JsDocs are not
    correct
    Portability
    JS errors
    Friday, December 14, 12

    View Slide

  3. Friday, December 14, 12

    View Slide

  4. Friday, December 14, 12

    View Slide

  5. Friday, December 14, 12

    View Slide

  6. Training Tools
    Friday, December 14, 12

    View Slide

  7. Training Tools
    • Automatic Inferencing
    • VJETDoc - you can type all js constructs
    • vjojs - a js library for defining types
    • VJET Type libs - HelloWorld and 3rd party
    JS
    • VJET Code generation
    Friday, December 14, 12

    View Slide

  8. Inferencing based on
    literal
    Friday, December 14, 12

    View Slide

  9. Inferencing based on
    assignment
    Friday, December 14, 12

    View Slide

  10. Inferencing based on
    known first arguments
    Friday, December 14, 12

    View Slide

  11. Inference of array types
    Friday, December 14, 12

    View Slide

  12. Flagging inferred
    accidental global vars
    Friday, December 14, 12

    View Slide

  13. VJETDoc for vars
    Friday, December 14, 12

    View Slide

  14. VJETDoc for DOM
    types
    Friday, December 14, 12

    View Slide

  15. VJETDoc for functions
    Friday, December 14, 12

    View Slide

  16. VJETDoc for functions
    Friday, December 14, 12

    View Slide

  17. VJETDoc for functions
    and literals
    Friday, December 14, 12

    View Slide

  18. VJETDoc for
    dependencies
    firstfile.js
    Friday, December 14, 12

    View Slide

  19. VJETDoc - more
    • Learn more about VJETDoc here
    • eclipse.org/vjet/ -> Documentation
    Friday, December 14, 12

    View Slide

  20. vjojs - defining types
    Text
    +VJETDoc
    Friday, December 14, 12

    View Slide

  21. vjojs -kinds of types
    • Class
    • Enum
    • Interface
    • Mixin
    • Object Literal
    • Function
    Friday, December 14, 12

    View Slide

  22. vjojs - side by side with
    Java
    Friday, December 14, 12

    View Slide

  23. vjojs - side by side with
    Java
    Friday, December 14, 12

    View Slide

  24. vjojs - side by side with
    Java
    Friday, December 14, 12

    View Slide

  25. vjojs - side by side with
    Java
    Friday, December 14, 12

    View Slide

  26. vjojs - more info
    • There is more information about vjojs
    • http://eclipse.org/vjet -> documentation
    Friday, December 14, 12

    View Slide

  27. VJET creating type
    libraries using vjojs
    Friday, December 14, 12

    View Slide

  28. vjojs -for type libraries
    Friday, December 14, 12

    View Slide

  29. Using Existing Type
    libraries
    • DOM + JavaScript apis + vjojs - built in
    • EcmaScript Ed 5 api updates - add on
    • JSON - add on
    • HTML Canvas 2D API - add on
    Friday, December 14, 12

    View Slide

  30. Using Existing Type
    libraries
    • You can use type libraries in multiple ways:
    • For JS authoring
    • For authoring JavaScript with Java
    Friday, December 14, 12

    View Slide

  31. VJET Mix n Match
    Code Gen
    • You can generate a Java API from vjojs
    • You can also generate vjojs code from Java
    Friday, December 14, 12

    View Slide

  32. Demo
    Friday, December 14, 12

    View Slide

  33. Tame your JavaScript
    Monster with VJET
    • Automatic Inferencing
    • VJETDoc - you can type all js constructs
    • vjojs - a js library for defining types
    • VJET Type libs - HelloWorld and 3rd party
    JS
    • VJET Code generation
    Friday, December 14, 12

    View Slide

  34. Thanks
    • Please visit eclipse.org/vjet/
    • Jobs at Avantsoft
    • See how VJET is being extended at Ignite
    talk later this afternoon
    • Follow me on twitter @earlyster
    Friday, December 14, 12

    View Slide