Java is from Mars,Ruby is from Venus        @nusco   (paolo perrotta)
why Ruby
expressive
fast feedback
great community
fun
why Java
powerful tools
automated refactoring
rock-solid
fun
learn both
difficult
- tools__- values_- design_
tools
learning a library
the static workflow   1.   open the IDE   2.   set up a project   3.   read the docs   4.   write/run code   5.   repeat f...
the dynamic workflow 1.   open the interpreter 2.   import the library 3.   introspect the library 4.   try code 5.   repe...
the command line
functional fixedness “A mental block against usingan object in a new way that is required to solve a problem.”
the dynamic workflow 1.   open the interpreter 2.   import the library 3.   introspect the library 4.   try code 6. repeat...
the dynamic workflow 1.   open the interpreter 2.   import the library 3.   introspect the library 4.   try code 5.   read...
values
“do it right”       vs.“keep it simple”
ethnocentrism“The viewpoint that one’s own    group is the center ofeverything, against which all  other groups are judged.”
design
bumblebees
good design in Java
small interfaces
many small classes
limited inheritance
few class methods
ActiveRecord
require active_recordclass User < ActiveRecord::Baseenduser = User.find(:first)user.name = "Nusco"user.save
require active_recordActiveRecord::Base.ancestors.count          # => 42ActiveRecord::Base.instance_methods.count   # => 2...
require active_recordActiveRecord::Base.ancestors.count          # => 42ActiveRecord::Base.instance_methods.count   # => 2...
modules
small interfaces    small classeslimited inheritance few class methods
readability  “once and only once”        decouplingshared responsibilities
the Saphir-Worf hyphotesis“Our language influences our way          of thinking.”
- functional fixedness______- ethnocentrism_____________- the Sapir–Whorf hypothesis
learning a new language
1. be aware
2. get uncomfortable
3. think generalist
1. be aware__________2. get uncomfortable_3. think generalist__
thank you.
Google: metaprogramming perrotta
Java is from Mars, Ruby is from Venus
Java is from Mars, Ruby is from Venus
Java is from Mars, Ruby is from Venus
Java is from Mars, Ruby is from Venus
Java is from Mars, Ruby is from Venus
Java is from Mars, Ruby is from Venus
Upcoming SlideShare
Loading in …5
×

Java is from Mars, Ruby is from Venus

2,241 views

Published on

For Java programmers is difficult to think in Ruby. For Ruby programmers is difficult to think in Java. In general, switching programming languages is more difficult than most people expect. Here is why.

Published in: Technology, Education
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
2,241
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
0
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Java is from Mars, Ruby is from Venus

    1. 1. Java is from Mars,Ruby is from Venus @nusco (paolo perrotta)
    2. 2. why Ruby
    3. 3. expressive
    4. 4. fast feedback
    5. 5. great community
    6. 6. fun
    7. 7. why Java
    8. 8. powerful tools
    9. 9. automated refactoring
    10. 10. rock-solid
    11. 11. fun
    12. 12. learn both
    13. 13. difficult
    14. 14. - tools__- values_- design_
    15. 15. tools
    16. 16. learning a library
    17. 17. the static workflow 1. open the IDE 2. set up a project 3. read the docs 4. write/run code 5. repeat from 3...
    18. 18. the dynamic workflow 1. open the interpreter 2. import the library 3. introspect the library 4. try code 5. repeat from 3...
    19. 19. the command line
    20. 20. functional fixedness “A mental block against usingan object in a new way that is required to solve a problem.”
    21. 21. the dynamic workflow 1. open the interpreter 2. import the library 3. introspect the library 4. try code 6. repeat from 3...
    22. 22. the dynamic workflow 1. open the interpreter 2. import the library 3. introspect the library 4. try code 5. read the source 6. repeat from 3...
    23. 23. values
    24. 24. “do it right” vs.“keep it simple”
    25. 25. ethnocentrism“The viewpoint that one’s own group is the center ofeverything, against which all other groups are judged.”
    26. 26. design
    27. 27. bumblebees
    28. 28. good design in Java
    29. 29. small interfaces
    30. 30. many small classes
    31. 31. limited inheritance
    32. 32. few class methods
    33. 33. ActiveRecord
    34. 34. require active_recordclass User < ActiveRecord::Baseenduser = User.find(:first)user.name = "Nusco"user.save
    35. 35. require active_recordActiveRecord::Base.ancestors.count # => 42ActiveRecord::Base.instance_methods.count # => 240ActiveRecord::Base.methods.count # => 508
    36. 36. require active_recordActiveRecord::Base.ancestors.count # => 42ActiveRecord::Base.instance_methods.count # => 240ActiveRecord::Base.methods.count # => 508
    37. 37. modules
    38. 38. small interfaces small classeslimited inheritance few class methods
    39. 39. readability “once and only once” decouplingshared responsibilities
    40. 40. the Saphir-Worf hyphotesis“Our language influences our way of thinking.”
    41. 41. - functional fixedness______- ethnocentrism_____________- the Sapir–Whorf hypothesis
    42. 42. learning a new language
    43. 43. 1. be aware
    44. 44. 2. get uncomfortable
    45. 45. 3. think generalist
    46. 46. 1. be aware__________2. get uncomfortable_3. think generalist__
    47. 47. thank you.
    48. 48. Google: metaprogramming perrotta

    ×