SlideShare a Scribd company logo
Feelin' Groovy
A Groovy Developer in the Java World
Contact Info
Ken Kousen
Kousen IT, Inc.
ken.kousen@kousenit.com
http://www.kousenit.com
http://kousenit.wordpress.com (blog)
@kenkousen
Groovy Podcast: http://nofluffjuststuff.com/groovypodcast
O'Reilly videos: http://search.oreilly.com/?q=kousen&x=0&y=0
A note about the US Elections...
A note about the US Elections...
I'm sorry
A note about the US Elections...
Anybody hiring?
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Pierre-Simon Laplace
1749 - 1827
Feelin' Groovy: A Groovy Developer in the Java World
Patent Trolls
Technology Evangelist
Feelin' Groovy: A Groovy Developer in the Java World
Groovy Evangelist
What I use to sell Groovy to Java devs:
- Groovy JDK
Why Use Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
(Thanks to Soren Glasius)
Feelin' Groovy: A Groovy Developer in the Java World
Even better, move to Geb
See gr8conf_geb.groovy …
(also build.gradle and GebConfig.groovy)
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
Why Use Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
- POGOs
Why Use Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
- POGOs
- AST transformations
Why Use Groovy?
@Delegate
@Immutable
@Sortable
@Canonical
@TypeChecked
@CompileStatic / @CompileDynamic
…
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
- POGOs
- AST transformations
- Safe navigation operator
Why Use Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
- POGOs
- AST transformations
- Safe navigation operator
- Slurpers and Builders (XML and JSON)
Why Use Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
What I use to sell Groovy to Java devs:
- Groovy JDK
- Native syntax for collections
- POGOs
- AST transformations
- Safe navigation operator
- Slurpers and Builders (XML and JSON)
- Metaprogramming
Why Use Groovy?
Remember the Date calculation?
What about Java 8?
java.time.LocalDate doesn't have the same minus method
Easy enough to fix with Groovy metaprogramming
Feelin' Groovy: A Groovy Developer in the Java World
Source Code
All these examples hosted at:
https://github.com/kousen/keynote
How popular is Groovy?
Feelin' Groovy: A Groovy Developer in the Java World
TIOBE Data
December, 2016 (http://www.tiobe.com/tiobe-index/)
1 Java 17.856%
19 Groovy 1.786%
32 Scala 0.689%
50 Clojure 0.183%
(Note: Kotlin in "next 50")
StackOverflow Developer Survey
Most Popular Technologies - Used
Java 36.3%
Groovy 0.34%
Kotlin 0.12%
Scala, Clojure not listed
Feelin' Groovy: A Groovy Developer in the Java World
Why Use Grails?
Grails 3
Why Use Grails?
Grails 3
- Uses Gradle
Why Use Grails?
Grails 3
- Uses Gradle
- Cool profiles: REST, Angular, …
Why Use Grails?
Grails 3
- Uses Gradle
- Cool profiles: REST, Angular, …
- One word: RxGORM
- Part of GORM 6 (!) in Grails 3.2
Why Use Gradle?
Definitive build tool in the open source world
Why Use Gradle?
Definitive build tool in the open source world
Rapidly growing adoption in industry
Why Use Gradle?
Definitive build tool in the open source world
Rapidly growing adoption in industry
Lots of people seriously loathe Maven
Perception vs Reality
Perception
End of Pivotal support means end of Groovy and Grails
Reality
Six Pivotal employees affected
Three Groovy
Three Grails
Reality
Six Pivotal employees affected
Three Groovy
Three Grails
All were successfully employed soon afterwards
Reality
Gradle, Inc increased hiring
Reality
Groovy moved to Apache
Apache Groovy, top level project, Nov 2015
Feelin' Groovy: A Groovy Developer in the Java World
Reality
Grails moved to OCI
Does more to support Grails than Pivotal ever did
One other unfortunate side effect…
Feelin' Groovy: A Groovy Developer in the Java World
Reality
Inside Groovy community:
Short term uncertainty, but we're okay
How do we fight the perception problem?
How do we fight the perception problem?
Groovy
Point to Apache Project
Downloads have steadily increased
Feelin' Groovy: A Groovy Developer in the Java World
How do we fight the perception problem?
What about Grails?
OCI blog
Feelin' Groovy: A Groovy Developer in the Java World
How do we fight the perception problem?
What about Grails?
OCI blog
Grails Quickcasts
Feelin' Groovy: A Groovy Developer in the Java World
How do we fight the perception problem?
What about Grails?
OCI blog
Grails Quickcasts
Grails Slack channel
Feelin' Groovy: A Groovy Developer in the Java World
Perception
"Our company decided to use Spring Boot instead of Grails"
Reality
Everything in Spring Boot is in Grails
Reality
Everything in Spring Boot is in Grails
This includes the Spring Boot actuator → profiling and administration
Reality
Everything in Spring Boot is in Grails
This includes the Spring Boot actuator → profiling and administration
Grails adds convenience, capabilities, and customization to Spring Boot
Reality
Spring Boot is Grails Lite
Maybe Grails needs rebranding...
Grails Boot
Das Boot
Or maybe even...
Holy Grails
S
Objections
Common objections to Groovy-related projects
Objection
Isn't Groovy slow?
Response
@CompileStatic
Works on classes and methods
What about the
elephant in the room...
Feelin' Groovy: A Groovy Developer in the Java World
Now we know why that Gradlephant looks so grumpy…
Feelin' Groovy: A Groovy Developer in the Java World
IDE Support
IDE support is the real issue
Static typing makes IntelliJ IDEA work better
Who wins when Gradle supports Kotlin?
Clear winners:
- JetBrains
- Kotlin developers
Who loses when Gradle supports Kotlin?
Groovy, because fewer developers come into the field
Internally, we're fine
Externally, we have a perception problem
"Gradle adopted Kotlin because of problems with Groovy"
What about Gradle, Inc?
This is a big gamble for them
- Kotlin is still very new
What about Gradle, Inc?
This is a big gamble for them
- Kotlin is still very new
- What about all those existing build files that use Groovy?
What about Gradle, Inc?
This is a big gamble for them
- Kotlin is still very new
- What about all those existing build files that use Groovy?
- Groovy is great at DSL's
What about Gradle, Inc?
This is a big gamble for them
- Kotlin is still very new
- What about all those existing build files that use Groovy?
- Groovy is great at DSL's
- Still need Eclipse support (JetBrains says they'll do it, but whoa)
What about Gradle, Inc?
This is a big gamble for them
- Kotlin is still very new
- What about all those existing build files that use Groovy?
- Groovy is great at DSL's
- Still need Eclipse support (JetBrains)
Time will tell whether or not this was a good idea
Feelin' Groovy: A Groovy Developer in the Java World
Feelin' Groovy: A Groovy Developer in the Java World
Groovy's Biggest Strength
The Community
Feelin' Groovy: A Groovy Developer in the Java World
The Groovy Community
In Groovy-related projects
Experienced devs are friendly and helpful
The Groovy Community
This flows from the top
I could add a dozen more easily …
The Groovy Community
Often your greatest strength is also your biggest weakness
The Groovy Community
Often your greatest strength is also your biggest weakness
Maybe our leaders are TOO humble
The Groovy Community
That's where we can help →
The Groovy Community
That's where we can help →
Tell other devs about your Groovy experiences
Bottom Line
Groovy, Grails, Gradle, Ratpack, Griffon, Spock, Geb, …
Bottom Line
Groovy, Grails, Gradle, Ratpack, Griffon, Spock, Geb, …
All healthy, powerful, successful, mature technologies
Groovy, Grails, Gradle, Ratpack, Griffon, Spock, Geb, …
All healthy, powerful, successful, mature technologies
Our problems are perception, not reality
Bottom Line
Bottom Line
Groovy, Grails, Gradle, Ratpack, Griffon, Spock, Geb, …
All healthy, powerful, successful, mature technologies
Our problems are perception, not reality
So go tell everybody, and become your own …
Groovy Evangelist
Thanks!
Thank you for coming and
Enjoy the rest of Gr8conf!

More Related Content

PDF
05092019 The Battle of the IDEs by Ko Turk at the AlmereJUG / Conspect
PDF
Building New on Top of Old: The Argument for Simplicity
PPTX
Intro. to Git and Github
PDF
떠먹는 '오브젝트' Ch07 객체 분해
PDF
Introducing Github and Octocats by Tony Bangratz
ZIP
Contributing to YUI
PDF
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
KEY
Advanced Django Forms Usage
05092019 The Battle of the IDEs by Ko Turk at the AlmereJUG / Conspect
Building New on Top of Old: The Argument for Simplicity
Intro. to Git and Github
떠먹는 '오브젝트' Ch07 객체 분해
Introducing Github and Octocats by Tony Bangratz
Contributing to YUI
When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014
Advanced Django Forms Usage

Similar to Feelin' Groovy: A Groovy Developer in the Java World (20)

PDF
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
PDF
Grails @ Java User Group Silicon Valley
PDF
Tales from the OSGi Trenches - Bertrand Delacretaz
PDF
SFScon 2020 - Matteo Ghetta - DataPlotly - D3-like plots in QGIS
PDF
Natalie Pistunovich - Using Go In Dev Ops
PDF
Using Go in DevOps
ODP
Nightmare on Docker street
PDF
Getting started with Go - Florin Patan - Codemotion Rome 2017
PDF
10 kickass-technologies-modern-developers-love
PDF
SMX Munich 2018 - Current State of JavaScript SEO
PPTX
Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014
PDF
Getting started with go - Florin Patan - Codemotion Milan 2016
PDF
Use Groovy&Grails in your spring boot projects
PDF
Groovy and Grails
PDF
Future of Grails
PDF
Develop Android/iOS app using golang
PDF
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
PDF
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
KEY
WebGL Camp 4 - A3 3D Engine
PPTX
Power Up Your Build - Omer van Kloeten @ Wix 2018-04
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Grails @ Java User Group Silicon Valley
Tales from the OSGi Trenches - Bertrand Delacretaz
SFScon 2020 - Matteo Ghetta - DataPlotly - D3-like plots in QGIS
Natalie Pistunovich - Using Go In Dev Ops
Using Go in DevOps
Nightmare on Docker street
Getting started with Go - Florin Patan - Codemotion Rome 2017
10 kickass-technologies-modern-developers-love
SMX Munich 2018 - Current State of JavaScript SEO
Applied Data Science: Building a Beer Recommender | Data Science MD - Oct 2014
Getting started with go - Florin Patan - Codemotion Milan 2016
Use Groovy&Grails in your spring boot projects
Groovy and Grails
Future of Grails
Develop Android/iOS app using golang
Collaborative Development: The Only CD That Matters - Brent Beer - Codemotion...
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
WebGL Camp 4 - A3 3D Engine
Power Up Your Build - Omer van Kloeten @ Wix 2018-04
Ad

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Introduction to Artificial Intelligence
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
medical staffing services at VALiNTRY
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Softaken Excel to vCard Converter Software.pdf
PPT
Introduction Database Management System for Course Database
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
AI in Product Development-omnex systems
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
2025 Textile ERP Trends: SAP, Odoo & Oracle
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
medical staffing services at VALiNTRY
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ISO 45001 Occupational Health and Safety Management System
Design an Analysis of Algorithms II-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Softaken Excel to vCard Converter Software.pdf
Introduction Database Management System for Course Database
CHAPTER 2 - PM Management and IT Context
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
AI in Product Development-omnex systems
PTS Company Brochure 2025 (1).pdf.......
Understanding Forklifts - TECH EHS Solution
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Ad

Feelin' Groovy: A Groovy Developer in the Java World