Presented at JAX London 2013 Community Night
Through some famous quotes and pictures that will make you think, Guillaume Laforge, Head of Groovy Development for SpringSource, will illustrate some simple principles that he has followed on the projects he’s worked on, and walk through the lessons he’s learned throughout the journey. Guillaume is the official Groovy Project Manager, and the spec lead of JSR-241, the JSR that standardizes the Groovy dynamic language.
13. “
There are three types of people on
earth: ones make things happen,
ones watch things happen,
ones wonder what happened
— Jim Lovell
Appollo 13 astraunaut
16. Contribute to Open Source
Best carreer
move for me!
Work with great
developers
17. Contribute to Open Source
Best carreer
move for me!
Work with great
developers
Travel and meet
great people
18. Contribute to Open Source
Best carreer
move for me!
Work with great
developers
Travel and meet
great people
A job that
doesn’t feel
like a job
19. Contribute to Open Source
Best carreer
move for me!
Work with great
developers
Travel and meet
great people
A job that
doesn’t feel
like a job
You’ll learn
a lot
46. Groovy adds static
typing and static
compilation
C# adds a dynamic
keyword, and Scala a
dynamic trait
47. Groovy adds static
typing and static
compilation
Everybody claims
to be functional
C# adds a dynamic
keyword, and Scala a
dynamic trait
48. A blended world of languages…
Compiled
Static
Imperative
Interpreted
Dynamic
Functional
Object oriented
Prototype based
Single dispatch
Multiple dispatch
Strong typing
Weak typing
49. A blended world of languages…
Compiled
Not just 0 or 1
Static
Imperative
Interpreted
Dynamic
Functional
Object oriented
Prototype based
Single dispatch
Multiple dispatch
Strong typing
Weak typing
50. A blended world of languages…
Compiled
Not just 0 or 1
Interpreted
Staticfloat between 0 and 1
Dynamic
A
Imperative
Functional
Object oriented
Prototype based
Single dispatch
Multiple dispatch
Strong typing
Weak typing
51. A blended world of languages…
Compiled
Not just 0 or 1
Interpreted
Staticfloat between 0 and 1
Dynamic
A
Imperative
Functional
Even
Object oriented a vector of floats!
Prototype based
Single dispatch
Strong typing
Multiple dispatch
Weak typing
52. A blended world of languages…
Compiled
Not just 0 or 1
Interpreted
Staticfloat between 0 and 1
Dynamic
A
Imperative
Functional
Even
Object oriented a vector of floats!
Prototype based
Single dispatch
Multiple dispatch
Strong typing
Weak typing
Several attributes at
the same time
53. “
Programs must be written
for people to read, and
only incidentally for
machines to execute
— Abelson & Sussman
Structure & Interpretation
of Computer Programs
74. Reinventing
the wheel isn’t
always bad!
New languages
mature the field
Design patterns
become language
features
What about a
new language?
75. Reinventing
the wheel isn’t
always bad!
New languages
mature the field
Design patterns
become language
features
What about a
new language?
We’d be still
developing in
ASM or Cobol…
76. “
Perfection is achieved not
when there is nothing more
to add, but when there is
nothing left to take away
— Antoine de Saint-Exupéry
81. Summary — about yourself
• Contribute to Open Source
•
You get the community you deserve
!
• Be an actor!
•
•
Speak publicly
Create the next disruption with software
!
• Your best asset is you
•
•
•
Invest in yourself
Think out of the box
Reinvent yourself
82. Summary — about your craft
!
• Be cautious with magic
!
• Readability matters
!
• Keep things simple
!
• Don’t be afraid of reinventing the wheel