Groovy como você nunca viu

Post on 09-Apr-2017

94 views 0 download

Transcript of Groovy como você nunca viu

COMO VOCÊ NUNCA VIU

/DEV/FELIPEMAMUD

Disclaimer

It's Groovy

● Groovy is object-oriented dynamic language by default, but…

… can be optionally typed;

… can be static type checking with @TypeChecked;

● dynamic != interpreted;

● static compilation with @CompileStatic;

● Groovy compiles down to JVM bytecode;

● Script vs Classes;

A little bit of history

2003 2007 2008

1.0

2011 2012

2.0

2014 20152005

Compilation phases

1. Initialization (read source files and config compiler)

2. Parsing (text → concrete syntax tree; Antlr2)

3. Conversion (CST → AST) @Grab

4. Semantic Analysis (resolve classes, consistency and grammar) @Lazy @Builder @Field @Log

5. Canonicalization (AST finalize and last chance to use AST) @Delegate @ToString @Immutable

6. Instruction Selection (instruction set for bytecode / type checking) @CompileStatic @TypeChecked

7. Class Generation (create bytecode in memory, AST → bytecode)

8. Output (binary output .class to file system)

9. Finalization (perform cleanup tasks, unused today!)

Awesome!

● Optional (Typing, Semicolons, Parentheses, public & return keyword);

● Native syntax constructs (Closures, Lists, Maps, Regex, Ranges)

● Boilerplate mode off; (String, BigDecimal, Null, Truth, Switch)

● Java Interoperability & integration;

● Groovy Development Kit enhancements (GDK);

● DSL easy mode on;

● Builders;

● AST Transformations;

Groovy’s nature

programming language…

as type safe as you want itstatic type checking

as fast as you needstatic compilation

as functional as you make itclosures, immutable, etc…

Ecosystem

References

● Groovy documentationhttp://groovy-lang.org/documentation.html

● Guillaume Laforge's Bloghttp://glaforge.appspot.com

● Cédric Champeau's Bloghttp://melix.github.io/blog

● Groovy in Action, 2nd Editionhttps://www.manning.com/books/groovy-in-action-second-edition

Felipe Mamud@ftmamud

THANK YOU!