SlideShare a Scribd company logo
SEVEN LANGUAGES
IN SEVEN WEEKS
Renan Ranelli
Renan Ranelli (Milhouse)
Software Engineer @
Renan Ranelli (Milhouse)
sete linguagens em sete semanas
sete linguagens em sete semanas
AGENDA
•
Why should I care about learning new languages?
•
A little bit about the languages in the book and how
they compare with Ruby
•
What I learned during the last few years
WHO IS THIS TALK FOR
•
You, who is an Object oriented programmer and has
heard about functional programming
•
You, who have no clear understanding on why learning
many languages will help you be better at your
language of choice
1 - WHY SHOULD I CARE?
WHY SHOULD I CARE ?
•
First of all...
•
I Think you should learn programming languages
•
But my opinion probably will not matter to you.
So, listen to these guys:
http://blog.golang.org/concurrency-is-not-parallelism
http://blog.golang.org/concurrency-is-not-parallelism
http://blog.golang.org/concurrency-is-not-parallelism
sete linguagens em sete semanas
DISCLAIMER:
ALL THE LANGUAGES HERE ARE TURING
COMPLETE
WE WILL A LITTLE ABOUT
•
Ruby
•
Io
•
Prolog
•
Scala
•
Erlang
•
Clojure
•
Haskell
WHAT I AIM TO ACHIEVE
•
I will try to explain what is important when learning a
new programming language
•
I expect to show you that characterizations such as “it
is a functional language” or “it is object oriented” is
insufficient and most of the times innapropriate
•
I *Do Not* intend to teach you any of the languages
WE WILL A LITTLE ABOUT
•
Ruby
•
Io
•
Scala
•
Erlang
•
Clojure
•
Haskell
Support for OOP
Support for FP
2 – SELECTED POINTS ABOUT
EACH LANGUAGE
RUBY
•
Object oriented, class based, dynamic and strongly
typed
•
*Extremely* meta-programmable
•
OPEN CLASSES !!!!!!
•
Complex syntax, complex evaluation rules
•
Reads like a novel
•
We all know and love it
IO
•
Object oriented, prototype based, strongly typed
•
Extremely simple and consistent syntax
•
Heavy emphasis on message passing, not method call.
(method is a message that returns an object that can
receive the message call)
•
Easy to create DSLs
•
Excellent concurrency primitives (futures, corroutines,
actors)
•
CRAZY amount of reflective power
IO
IO
Message
IO
Message
IO
Message
IO
Message
IO
IO
SCALA
•
OOP, FP, statically typed, strongly typed
•
Has a powerful type system (not as much as Haskell's)
•
Offers advanced FP concepts such as monads and type
classes
•
Easy(-ish) to create DSLs
•
You can emulate non-strict evaluation with “call by
name” vs “call by value” parameter passing strategies
•
Suffers from the Java legacy to a certain extent (nulls)
SCALA
SCALA
SCALA
SCALA
SCALA
ERLANG
•
Designed by Ericsson to build telecom software
•
Alien syntax, derived from Prolog
•
Functional, enforces extreme isolation of processes.
Truly share-nothing.
•
Amazing support for faul-tolerant, near-real-time
distributed application development
•
Quite opinionated ..
•
ALIEN SYNTAX
CLOJURE
•
Is a LISP (!!1!!11)
•
FP, supports OOP, strongly typed and dynamically
•
Strong focus on good concurrency primitives and
immutable & persistent data structures
•
Being a LISP, has macros
•
Being a LISP, code is data and data is code
•
Not so Lispy. No custom reader macros and no
automatic tail call optimizations (schemers be mad)
CLOJURE
•
Although Clojure is a strict language, you can simulate
non-strictness using macros
•
Its possible to define the language on-the-fly, i.e., the
language is internally reprogramable (heavy influce in
both Ruby and Smalltalk)
•
Offers the CLOS-like long forgotten multiple-dispatch !
HASKELL
•
Non-strict (lazy) pure functional language
•
No exceptions and no mutable state (!)
•
Unparalleled type system (at least in production-ready
languages) with parametric types, type classes,
algebraic data types and type inference
•
Offers the full pack of FP crazyness: Monads, Monoids,
Functors, applicatives, Foldables and Semigroups are
common ground among Haskell programmers
•
Much more close to Math, simplyfing the way we
represent abstract, symbolic and self-recursive
constructs
HASKELL
•
Makes it impossible to mutate state
•
But allow you to simulate its effects with Monads
HASKELL
HASKELL
HASKELL
3 – WHAT I LEARNED AFTER
READING THIS BOOK
WHAT DOES IT TAKE TO LEARN A NEW
LANGUAGE ?
•
Syntax
•
The programming languages primitives
•
The type system (strong or weak? Static or dynamic?)
•
Evaluation rules (precedence, strictness, etc)
•
Idioms
•
Libraries
•
Tools, IDEs, yadda yadda
WHAT DOES IT TAKE TO USE A LANGUAGE
IN PRODUCTION
•
Meta-programming and extensibility models
•
Concurrency model
•
Library distribution
•
Debugging, IDEs, Tools, Refactoring tools ...
•
*Community*
•
Concurrency model (again!)
YOU CAN'T SEPARATE THE
LANGUAGE AND ITS ECOSYSTEM
IS IT THAT RUBY IS PRODUCTIVE IN
ITSELF, OR ARE RUBY LIBRARIES,
LIKE RAILS, PRODUCTIVE??
LEARN FROM OTHERS
UNDERSTAND HOW THEY SOLVE
PROBLEMS YOU HAVE, OR PROBLEMS
YOU DON'T EVEN KNOW YOU HAVE
GET TO KNOW WHAT YOU CAN
IMITATE !
SEE CONCURRENT-RUBY AND CELLULOID !
THERE IS *A LOT* OF COOL STUFF OUT
THERE. LOOK OUTSIDE YOUR COMMUNITY
HAVE FUN
HAVE FUN
OBRIGADO !
@renanranelli
/rranelli
Renan Ranelli (Milhouse)
milhouseonsofware.com

More Related Content

PPT
DITA for Localization
Andrzej Zydroń MBCS
 
PPTX
How To Write a Testable Code
OPIN Software Inc.
 
PPTX
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
PrabhatKumar591
 
PPT
Evalution about programming language part 1
Synapseindiappsdevelopment
 
PDF
JOSA TechTalks - Compilers, Transpilers, and Why You Should Care
Jordan Open Source Association
 
PDF
Code jugalbandi
Dhaval Dalal
 
PDF
Sentiment analysis for Serbian language
Nikola Milosevic
 
PPTX
4. sql
in4400
 
DITA for Localization
Andrzej Zydroń MBCS
 
How To Write a Testable Code
OPIN Software Inc.
 
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
PrabhatKumar591
 
Evalution about programming language part 1
Synapseindiappsdevelopment
 
JOSA TechTalks - Compilers, Transpilers, and Why You Should Care
Jordan Open Source Association
 
Code jugalbandi
Dhaval Dalal
 
Sentiment analysis for Serbian language
Nikola Milosevic
 
4. sql
in4400
 

What's hot (6)

PPT
Xm lforthe smallerpublisher-andywilliams
Society for Scholarly Publishing
 
PPTX
Introduction to functional programming with JavaScript
Farzaneh Orak
 
PDF
Graduates Gone Mad: Innovations in Software
Alper Kanat
 
PPTX
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
PPTX
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
PDF
Challenges in Building NLP Applications in Nepali Language
Chandan Goopta
 
Xm lforthe smallerpublisher-andywilliams
Society for Scholarly Publishing
 
Introduction to functional programming with JavaScript
Farzaneh Orak
 
Graduates Gone Mad: Innovations in Software
Alper Kanat
 
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
Challenges in Building NLP Applications in Nepali Language
Chandan Goopta
 
Ad

Similar to sete linguagens em sete semanas (20)

PPT
PL6666666666666666666666666666666666.ppt
sameehamoogab
 
KEY
groovy & grails - lecture 1
Alexandre Masselot
 
PDF
Metamorphic Domain-Specific Languages
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PDF
Software Engineering Thailand: Programming with Scala
Brian Topping
 
PPT
Do Languages Matter?
Bruce Eckel
 
PDF
Programming Languages #devcon2013
Iván Montes
 
PDF
Are High Level Programming Languages for Multicore and Safety Critical Conver...
InfinIT - Innovationsnetværket for it
 
PPTX
Haskell @ HAN Arnhem 2013-2014
Tjeerd Hans Terpstra
 
PDF
AOMEI Partition Assistant Crack 2025 FREE
yazdanwaqar
 
PDF
K7 Total Security 16.0.1260 Crack + License Key Free
birbaahan
 
PPTX
Evolving Scala, Scalar conference, Warsaw, March 2025
Martin Odersky
 
PDF
WTFAST Crack Latest Version FREE Downlaod 2025
channarbrothers93
 
PDF
uTorrent Pro Crack Latest Version free 2025
channarbrothers93
 
PDF
Adobe Master Collection CC Crack 2025 FREE
arslanyounus93
 
PDF
Building a Neural Machine Translation System From Scratch
Natasha Latysheva
 
PPTX
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Mike Pence
 
PDF
Natural Language Processing (NLP)
Yuriy Guts
 
PDF
Introducing the Ceylon Project - Gavin King presentation at QCon Beijing 2011
devstonez
 
PDF
Introducing the Ceylon Project
Michael Scovetta
 
PPT
Principle of programming language -M.E-CSE
poonkodiraja2806
 
PL6666666666666666666666666666666666.ppt
sameehamoogab
 
groovy & grails - lecture 1
Alexandre Masselot
 
Metamorphic Domain-Specific Languages
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Software Engineering Thailand: Programming with Scala
Brian Topping
 
Do Languages Matter?
Bruce Eckel
 
Programming Languages #devcon2013
Iván Montes
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
InfinIT - Innovationsnetværket for it
 
Haskell @ HAN Arnhem 2013-2014
Tjeerd Hans Terpstra
 
AOMEI Partition Assistant Crack 2025 FREE
yazdanwaqar
 
K7 Total Security 16.0.1260 Crack + License Key Free
birbaahan
 
Evolving Scala, Scalar conference, Warsaw, March 2025
Martin Odersky
 
WTFAST Crack Latest Version FREE Downlaod 2025
channarbrothers93
 
uTorrent Pro Crack Latest Version free 2025
channarbrothers93
 
Adobe Master Collection CC Crack 2025 FREE
arslanyounus93
 
Building a Neural Machine Translation System From Scratch
Natasha Latysheva
 
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Mike Pence
 
Natural Language Processing (NLP)
Yuriy Guts
 
Introducing the Ceylon Project - Gavin King presentation at QCon Beijing 2011
devstonez
 
Introducing the Ceylon Project
Michael Scovetta
 
Principle of programming language -M.E-CSE
poonkodiraja2806
 
Ad

More from tdc-globalcode (20)

PDF
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
tdc-globalcode
 
PDF
TDC2019 Intel Software Day - Inferencia de IA em edge devices
tdc-globalcode
 
PDF
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
tdc-globalcode
 
PPT
Trilha .Net - Programacao funcional usando f#
tdc-globalcode
 
PDF
TDC2018SP | Trilha Go - Case Easylocus
tdc-globalcode
 
PDF
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
tdc-globalcode
 
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
tdc-globalcode
 
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
tdc-globalcode
 
PDF
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - .NET funcional com F#
tdc-globalcode
 
PDF
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
tdc-globalcode
 
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
tdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
tdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
tdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
tdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
tdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
tdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
tdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
tdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
tdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
tdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
tdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
tdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
tdc-globalcode
 

Recently uploaded (20)

PDF
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PPTX
How to Apply for a Job From Odoo 18 Website
Celine George
 
PPTX
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PPTX
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PPTX
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
PPTX
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
PPTX
Basics and rules of probability with real-life uses
ravatkaran694
 
PPTX
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
PDF
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
PPTX
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
PPTX
CDH. pptx
AneetaSharma15
 
DOCX
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PDF
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
PPTX
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
PDF
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
How to Apply for a Job From Odoo 18 Website
Celine George
 
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
Basics and rules of probability with real-life uses
ravatkaran694
 
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
CDH. pptx
AneetaSharma15
 
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 

sete linguagens em sete semanas

  • 1. SEVEN LANGUAGES IN SEVEN WEEKS Renan Ranelli
  • 3. Software Engineer @ Renan Ranelli (Milhouse)
  • 6. AGENDA • Why should I care about learning new languages? • A little bit about the languages in the book and how they compare with Ruby • What I learned during the last few years
  • 7. WHO IS THIS TALK FOR • You, who is an Object oriented programmer and has heard about functional programming • You, who have no clear understanding on why learning many languages will help you be better at your language of choice
  • 8. 1 - WHY SHOULD I CARE?
  • 9. WHY SHOULD I CARE ? • First of all... • I Think you should learn programming languages • But my opinion probably will not matter to you. So, listen to these guys:
  • 14. DISCLAIMER: ALL THE LANGUAGES HERE ARE TURING COMPLETE
  • 15. WE WILL A LITTLE ABOUT • Ruby • Io • Prolog • Scala • Erlang • Clojure • Haskell
  • 16. WHAT I AIM TO ACHIEVE • I will try to explain what is important when learning a new programming language • I expect to show you that characterizations such as “it is a functional language” or “it is object oriented” is insufficient and most of the times innapropriate • I *Do Not* intend to teach you any of the languages
  • 17. WE WILL A LITTLE ABOUT • Ruby • Io • Scala • Erlang • Clojure • Haskell Support for OOP Support for FP
  • 18. 2 – SELECTED POINTS ABOUT EACH LANGUAGE
  • 19. RUBY • Object oriented, class based, dynamic and strongly typed • *Extremely* meta-programmable • OPEN CLASSES !!!!!! • Complex syntax, complex evaluation rules • Reads like a novel • We all know and love it
  • 20. IO • Object oriented, prototype based, strongly typed • Extremely simple and consistent syntax • Heavy emphasis on message passing, not method call. (method is a message that returns an object that can receive the message call) • Easy to create DSLs • Excellent concurrency primitives (futures, corroutines, actors) • CRAZY amount of reflective power
  • 21. IO
  • 26. IO
  • 27. IO
  • 28. SCALA • OOP, FP, statically typed, strongly typed • Has a powerful type system (not as much as Haskell's) • Offers advanced FP concepts such as monads and type classes • Easy(-ish) to create DSLs • You can emulate non-strict evaluation with “call by name” vs “call by value” parameter passing strategies • Suffers from the Java legacy to a certain extent (nulls)
  • 29. SCALA
  • 30. SCALA
  • 31. SCALA
  • 32. SCALA
  • 33. SCALA
  • 34. ERLANG • Designed by Ericsson to build telecom software • Alien syntax, derived from Prolog • Functional, enforces extreme isolation of processes. Truly share-nothing. • Amazing support for faul-tolerant, near-real-time distributed application development • Quite opinionated .. • ALIEN SYNTAX
  • 35. CLOJURE • Is a LISP (!!1!!11) • FP, supports OOP, strongly typed and dynamically • Strong focus on good concurrency primitives and immutable & persistent data structures • Being a LISP, has macros • Being a LISP, code is data and data is code • Not so Lispy. No custom reader macros and no automatic tail call optimizations (schemers be mad)
  • 36. CLOJURE • Although Clojure is a strict language, you can simulate non-strictness using macros • Its possible to define the language on-the-fly, i.e., the language is internally reprogramable (heavy influce in both Ruby and Smalltalk) • Offers the CLOS-like long forgotten multiple-dispatch !
  • 37. HASKELL • Non-strict (lazy) pure functional language • No exceptions and no mutable state (!) • Unparalleled type system (at least in production-ready languages) with parametric types, type classes, algebraic data types and type inference • Offers the full pack of FP crazyness: Monads, Monoids, Functors, applicatives, Foldables and Semigroups are common ground among Haskell programmers • Much more close to Math, simplyfing the way we represent abstract, symbolic and self-recursive constructs
  • 38. HASKELL • Makes it impossible to mutate state • But allow you to simulate its effects with Monads
  • 42. 3 – WHAT I LEARNED AFTER READING THIS BOOK
  • 43. WHAT DOES IT TAKE TO LEARN A NEW LANGUAGE ? • Syntax • The programming languages primitives • The type system (strong or weak? Static or dynamic?) • Evaluation rules (precedence, strictness, etc) • Idioms • Libraries • Tools, IDEs, yadda yadda
  • 44. WHAT DOES IT TAKE TO USE A LANGUAGE IN PRODUCTION • Meta-programming and extensibility models • Concurrency model • Library distribution • Debugging, IDEs, Tools, Refactoring tools ... • *Community* • Concurrency model (again!)
  • 45. YOU CAN'T SEPARATE THE LANGUAGE AND ITS ECOSYSTEM
  • 46. IS IT THAT RUBY IS PRODUCTIVE IN ITSELF, OR ARE RUBY LIBRARIES, LIKE RAILS, PRODUCTIVE??
  • 48. UNDERSTAND HOW THEY SOLVE PROBLEMS YOU HAVE, OR PROBLEMS YOU DON'T EVEN KNOW YOU HAVE
  • 49. GET TO KNOW WHAT YOU CAN IMITATE ! SEE CONCURRENT-RUBY AND CELLULOID !
  • 50. THERE IS *A LOT* OF COOL STUFF OUT THERE. LOOK OUTSIDE YOUR COMMUNITY