Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Friday, December 14, 12

Slide 4

Slide 4 text

Friday, December 14, 12

Slide 5

Slide 5 text

Friday, December 14, 12

Slide 6

Slide 6 text

Training Tools Friday, December 14, 12

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Inferencing based on literal Friday, December 14, 12

Slide 9

Slide 9 text

Inferencing based on assignment Friday, December 14, 12

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Inference of array types Friday, December 14, 12

Slide 12

Slide 12 text

Flagging inferred accidental global vars Friday, December 14, 12

Slide 13

Slide 13 text

VJETDoc for vars Friday, December 14, 12

Slide 14

Slide 14 text

VJETDoc for DOM types Friday, December 14, 12

Slide 15

Slide 15 text

VJETDoc for functions Friday, December 14, 12

Slide 16

Slide 16 text

VJETDoc for functions Friday, December 14, 12

Slide 17

Slide 17 text

VJETDoc for functions and literals Friday, December 14, 12

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

vjojs -for type libraries Friday, December 14, 12

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Demo Friday, December 14, 12

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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