Little words of wisdom for the developer - Guillaume Laforge (Pivotal)

Preview:

DESCRIPTION

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.

Citation preview

Little words of wisdom for the developer

Guillaume Laforge

@glaforge ! http://glaforge.appspot.com "

http://gplus.to/glaforge +

Have Fun!

“ million downloadsper year1.7

Great forscripting

Great forscripting

Fit for Domain-Specific Languages

Great forscripting

Fit for Domain-Specific Languages

Most seamless integration &interoperability wih java!

Yup, we’re allusing Groovy!

“There are three types of people on earth: ones make things happen,

ones watch things happen, ones wonder what happened

— Jim LovellAppollo 13 astraunaut

Contribute to Open Source

Contribute to Open Source

Best carreermove for me!

Contribute to Open Source

Best carreermove for me!

Work with greatdevelopers

Contribute to Open Source

Best carreermove for me!

Travel and meetgreat people

Work with greatdevelopers

Contribute to Open Source

Best carreermove for me!

Travel and meetgreat people

Work with greatdevelopers

A job thatdoesn’t feel

like a job

Contribute to Open Source

Best carreermove for me!

Travel and meetgreat people

Work with greatdevelopers

A job thatdoesn’t feel

like a job

You’ll learna lot

Speak publicly

Speak publiclyGet more confident in

your skills, yourknowledge, yourself…

Always be nice& helpful

Always be nice& helpful

You get thecommunity you

deserve

“ Software is eating

the world— Marc Andreessen

Netscape fame Venture Capitalist

Software disrupted:retail, book, newspaper,

music industries….

Software disrupted:retail, book, newspaper,

music industries….

Need to reinventyourself !

Software offers us alot of opportunities

Software offers us alot of opportunities

Deploy in the cloud,spread the word onsocial networks…

Software offers us alot of opportunities

Deploy in the cloud,spread the word onsocial networks…

Create the nextdisruption!

“Don’t worry about what anybody else is going to do. The best

way to predict the future is to invent it.

— Alan Kay Smalltalk co-inventor

Be an actor!

Your bestasset is you!

Your bestasset is you!

Always investin yourself !

Think out of the box

“ Nothing is black or white. Life is never either / or.

Nothing is ever as straightforward

as it appears— Nelson Mandella

VI EMACS

STATIC DYNAMIC

Groovy adds statictyping and static

compilation

Groovy adds statictyping and static

compilation

C# adds a dynamickeyword, and Scala a

dynamic trait

Groovy adds statictyping and static

compilation

C# adds a dynamickeyword, and Scala a

dynamic trait

Everybody claimsto be functional

A blended world of languages…

Compiled

Static

Imperative

Object oriented

Single dispatch

Strong typing

Interpreted

Dynamic

Functional

Prototype based

Multiple dispatch

Weak typing

A blended world of languages…

Compiled

Static

Imperative

Object oriented

Single dispatch

Strong typing

Interpreted

Dynamic

Functional

Prototype based

Multiple dispatch

Weak typing

Not just 0 or 1

A blended world of languages…

Compiled

Static

Imperative

Object oriented

Single dispatch

Strong typing

Interpreted

Dynamic

Functional

Prototype based

Multiple dispatch

Weak typing

Not just 0 or 1

A float between 0 and 1

A blended world of languages…

Compiled

Static

Imperative

Object oriented

Single dispatch

Strong typing

Interpreted

Dynamic

Functional

Prototype based

Multiple dispatch

Weak typing

Not just 0 or 1

A float between 0 and 1

Even a vector of floats!

A blended world of languages…

Compiled

Static

Imperative

Object oriented

Single dispatch

Strong typing

Interpreted

Dynamic

Functional

Prototype based

Multiple dispatch

Weak typing

Not just 0 or 1

A float between 0 and 1

Even a vector of floats!

Several attributes atthe same time

“Programs must be written for people to read, and

only incidentally for machines to execute

— Abelson & SussmanStructure & Interpretation

of Computer Programs

Readability matters

Readability matters

Conciseness shouldn’tcompromise readability

Readability matters

Conciseness shouldn’tcompromise readability 80 % reading,

20 % writing code

Ascii art programming…

(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)

Ascii art programming…

(0:/o)(_*_)

“ Any sufficiently advanced technology is indistinguishable

from magic— Arthur C. Clarke

Use magicwith caution

Use magicwith caution

Too many« implicits » or« conventions »can be harmful

Use magicwith caution

Too many« implicits » or« conventions »can be harmful

Often « explicit »is more obvious

Reinventingthe wheel isn’t

always bad!

Reinventingthe wheel isn’t

always bad!

What about anew language?

Reinventingthe wheel isn’t

always bad!

New languagesmature the field

What about anew language?

Reinventingthe wheel isn’t

always bad!

New languagesmature the field

Design patternsbecome language

features

What about anew language?

Reinventingthe wheel isn’t

always bad!

New languagesmature the field

Design patternsbecome language

features

We’d be stilldeveloping in

ASM or Cobol…

What about anew language?

“ 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

Keep ItSimpleStupid

Keep ItSimpleStupid

Don’t over-engineertoo much

Keep ItSimpleStupid

Don’t over-engineertoo much

You Ain’t GonnaNeed It

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

Summary — about your craft

!

• Be cautious with magic !

• Readability matters !

• Keep things simple !

• Don’t be afraid of reinventing the wheel

Summary — and…

!

• Have fun!

“ We must be very careful when giving advice to younger people:

sometimes they follow it

— Edgar Dijkstra

Thanks for your attention!

Recommended