Code Is What Code Does

A8e44ce1b57c2689d5a7172d15df42b5?s=47 brixen
August 22, 2014

Code Is What Code Does

Madison+ Ruby 2014

A8e44ce1b57c2689d5a7172d15df42b5?s=128

brixen

August 22, 2014
Tweet

Transcript

  1. Code Is What Code Does @brixen

  2. I <3 Ruby

  3. None
  4. None
  5. None
  6. We live in a world filled with hard problems

  7. watsi.org

  8. People are leaving Ruby

  9. Haskell Go Clojure Scala Node.js Rust Javascript Elixir

  10. Businesses are not choosing Ruby

  11. Ruby has problems

  12. Too slow

  13. 0 1.25 2.5 3.75 5 Rubinius v1 Rubinius JIT v1

    Rubinius v2 MRI 2.1
  14. No concurrency

  15. 0 1 2 3 4 Rubinius MRI 2.1

  16. Too much memory

  17. 0 22.5 45 67.5 90 Hash 1 Hash 2

  18. Not compiled

  19. Monkey patching

  20. $ rbx! irb(main):001:0> "abc".clear! => ""! irb(main):002:0> require "./some_gem.rb"! =>

    true! irb(main):003:0> "abc".clear! => "nope"! irb(main):004:0>
  21. irb(main):003:0> "abc".clear! => "nope"! irb(main):004:0> "abc".method :clear! => #<Method: String#clear

    (defined in String at some_gem.rb:2)>! irb(main):005:0>
  22. None
  23. Static types

  24. Why use static types?

  25. Correctness 1

  26. Adding types does not make correct code more correct

  27. Speed 2

  28. 0 1.25 2.5 3.75 5 Rubinius v1 Rubinius JIT v1

    Rubinius v2 MRI 2.1
  29. Maintenance 3

  30. Adding complexity does not improve understanding

  31. Ruby is a better choice

  32. Programming is too hard

  33. We are too slow

  34. We fail a lot

  35. The Cynefin framework

  36. Simple Sense • Categorize • Respond 1

  37. Simple Sense • Categorize • Respond 1 Best Practice

  38. Complicated Sense • Analyze • Respond 2

  39. Complicated Sense • Analyze • Respond 2 Good Practice

  40. Complex Probe • Sense • Respond 3

  41. Complex Probe • Sense • Respond 3 Emergent Behavior

  42. Chaotic Act • Sense • Respond 4

  43. Chaotic Act • Sense • Respond 4 Novel Solutions

  44. Clay vs concrete

  45. B.C. A.D.

  46. B.C. A.D. Before compilation After deployment

  47. Read Eval Print Loop

  48. Study Experiment Check Loop

  49. Assumptions help us solve problems

  50. Assumptions hinder our efforts

  51. Technical debt Cost to experiment

  52. Refactoring Rework

  53. We live in a world filled with hard problems

  54. Let's make programming easier

  55. Let's test our ideas more quickly

  56. Let's fail more productively

  57. Improve the world

  58. Try Rubinius github.com/rubinius/rubinius

  59. Thank you!

  60. • http://winstonyw.com/2013/06/12/reddotrubyconf_2013_-_thank_you/ • https://www.flickr.com/photos/veganstraightedge/6037027106/ • http://www.europeancarweb.com/news/ epcp_1010_audi_e_tron_spyder_creation/photo_13.html • http://thisisbuildingmaterials.blogspot.com/2012/03/examples-of-famous- concrete-buildings.html

    Credits