groovy como você nunca viu

Download Groovy como você nunca viu

Post on 09-Apr-2017

84 views

Category:

Software

0 download

Embed Size (px)

TRANSCRIPT

  • 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;

  • Groovys 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

    Cdric Champeau's Bloghttp://melix.github.io/blog

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

    http://groovy-lang.org/documentation.htmlhttp://groovy-lang.org/documentation.htmlhttp://glaforge.appspot.comhttp://glaforge.appspot.comhttp://melix.github.io/blog/http://melix.github.io/blog/https://www.manning.com/books/groovy-in-action-second-editionhttps://www.manning.com/books/groovy-in-action-second-edition

  • JOIN US!FRIENDSTECHDAY.COM

    SHARE, LEARN E CONTRIBUTE!

    http://friendstechday.comhttp://www.meetup.com/friendstechdayhttp://twitter.com/friendstechdayhttps://github.com/friendstechdayhttp://friendstechday.com

  • Felipe Mamud@ftmamud

    THANK YOU!