Top Banner
The creative polyglot (“developer”) Wouter Groeneveld https://twitter.com/woutergroenev https://github.com/wgroeneveld
19
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The creative polyglot

The creative polyglot

(“developer”)Wouter Groeneveld

https://twitter.com/woutergroenev

https://github.com/wgroeneveld

Page 2: The creative polyglot

What is creativity

...

Page 3: The creative polyglot

What is being a polyglot

...

Page 4: The creative polyglot

When you're a hacker

Define “hacking”: tirez votre plan

Page 5: The creative polyglot

Why? (1)

Dreyfus model of skill acquisition:It takes 10 years to master something.

Would you like to be a master C# dev,Or a master software dev?

Page 6: The creative polyglot

Polyglot – examples (1)

Example java VS C#, enumshttp://brainbaking.com/being-a-polyglot-

programmer-matters-part-1/

Page 7: The creative polyglot

Polyglot – examples (2)

Example java VS C#, strategy subclassinghttp://brainbaking.com/being-a-polyglot-

programmer-matters-part-2/

Page 8: The creative polyglot

Polyglot – examples (3)

With() in javascript & groovy to create DSLshttp://brainbaking.com/enhancing-the-builder-

pattern-with-closures/

Page 9: The creative polyglot

Polyglot – examples (4)

Reflection in C# (MethodBase.GetCurrentMethod() for example) vs

in Java (urgh)

Page 10: The creative polyglot

Polyglot – examples (5)

Generics in Java vs C#

Page 11: The creative polyglot

Creativity – constraints (1)

“domain” logic on interfaceshttp://brainbaking.com/faking-domain-logic/

Page 12: The creative polyglot

Creativity – meta programming (2)

(mis)-use of annotations to reduce plumbingC# Nhibernate's event lifecycle vs

Java Hibernate event lifecycle

Page 13: The creative polyglot

Polyglot – examples (6)

PostSharp & Spring AOPVery easy to work with one if you know the other

Page 14: The creative polyglot

Creativity – constraints (2)

Nhibernate's Session.BeginTransaction() - nested.(Wrapping API objects)

Page 15: The creative polyglot

Creativity – meta programming (1)

(mis)-use of annotations to reduce plumbinghttp://brainbaking.com/metaprogramming-instead-

of-duplication/

Page 16: The creative polyglot
Page 17: The creative polyglot

Stealing is okay

As long as you know how it works!

It doesn't hurt to dig deeperKeep digging until you hit rock bottom

Page 18: The creative polyglot

Don't copy that floppy

Without learning how it works!

Page 19: The creative polyglot

So... What are you going to learn next?