Here's to the crazy ones

Here's to the crazy ones

We regress around 13 years back into Rails history to revisit a personal journey I took with Rails, and some thoughts about how that might relate to Rails in the future

Acd62030df551952268e84c8fff26a5b?s=128

lazyatom

April 18, 2018
Tweet

Transcript

  1. Here’s to the crazy ones lazyatom.com/crazy-ones

  2. 2005

  3. None
  4. – Me, on a mailing list of friends, Thursday, 16

    Aug 2001 “I forsake Java! I renounce C++! All hail The Mighty RUBY!!” 2.upto(100) do |num| puts "Ruby is #{num} times better that Java or C++" end
  5. None
  6. None
  7. None
  8. None
  9. None
  10. Rails 5.2 Active Storage Redis Cache Store HTTP/2 Early Hints

    Credentials
  11. Rails 5.1 Yarn/Webpacker Integration System Tests Encrypted Secrets Parameterised Mailers

  12. Rails 5.0 Action Cable API Mode Turbolinks 5

  13. Rails 4.2 Active Job Asynchronous Mailers Adequate Record Web Console

  14. Rails 4.1 Spring Template Variants Enums Mailer Previews

  15. Rails 4.0 Russian Doll Caching Turbolinks Live Streaming Strong Parameters

  16. Rails 3.2 Faster Development Mode Faster Routing Engine Active Record

    Store Strong Parameters
  17. Rails 3.1 Asset Pipeline HTTP Streaming Full Engines! Identity Map

    Reversible Migrations
  18. Rails 3.0 ARel Active Model Significant Internal Refactoring Bundler Railtie

    API
  19. Rails 2.3 Application Templates Rack Engines! Sort-of! Rails Metal Nested

    Forms
  20. Rails 2.2 Internationalisation HTTP Validators Thread Safety Database Connection Pool

  21. Rails 2.1 Time Zones Dirty Attribute Tracking Named Scopes Better

    Caching
  22. Rails 2.0 Resources MultiView Cookie Store Sessions “Sexy” Migrations

  23. Rails 1.2 RESTful Routes Formats Multibyte Support Autoloading

  24. Rails 1.1 RJS (Javascript written in Ruby) Polymorphic Associations Eager

    Loading respond_to
  25. Rails 1.0 Dynamic Finders Filter Controls redirect_to :back

  26. Rails 0.14 Plugins Cleaner Configuration Gem Freezing

  27. Rails 0.13 Migrations Ajax Scriptaculous Visual Effects Named Routes

  28. Application 1 Application 2 Application 3 Application 4

  29. Sharing code between apps in 2005 Railtie inside a gem

    Plugin A regular gem … guess we better make it
  30. Application 1 Application 2 Application 3 Application 4

  31. Application 1 Application 2 Application 3 Application 4 engines.rb

  32. None
  33. None
  34. – François “Thanks! These engines are great — this is

    the most excited I’ve been since finding Rails.”
  35. – Robert “Sweet stuff! "Most coolest" plugin yet ! Nice

    "”
  36. – Ramin “Amazing. Great job! Go see it! GO GO

    GO!”
  37. – Scott “This is just awesome. […] This is the

    real answer to the reuse question. I just tried the login engine, and it totally works, easy! Wowee zowee...”
  38. ENGINES INSIDE OTHER ENGINES

  39. None
  40. –DHH “It's a tale of caution, not condemnation”

  41. –DHH “It's a tale of caution, not condemnation”

  42. None
  43. Hey, here’s an idea OK, but y’know, be careful

  44. Hey, here’s an idea OK, but y’know, be careful Genuine

    stock image for “excited developer” Genuine stock image for “angry developer”
  45. 2005-2008

  46. 2005-2008

  47. None
  48. None
  49. None
  50. None
  51. Some Guy said about 17 hours later: Engines are in

    fact de facto evil
  52. None
  53. None
  54. https://www.flickr.com/photos/etlund/539344246

  55. None
  56. https://www.flickr.com/photos/robbyrussell

  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. –Rails Envy Podcast #51 “Kinda like Rails Engines… but doesn’t

    suck?” “Exactly.” (On the topic of Merb slices)
  65. “Engines aren’t evil”

  66. November 2008

  67. November 2008

  68. November 2008

  69. THE END

  70. [ insert coding montage ]

  71. Engines plugin features Controllers, Helpers, Views Models Routes Migrations Assets

  72. + =

  73. class Rails::Application < Rails::Engine

  74. Engines plugin features Controllers, Helpers, Views Models Routes Migrations Assets

  75. Technology Trigger Peak of Inflated Expectations Trough of Disillusionment Slope

    of Enlightenment Plateau of Productivity
  76. Technology Trigger Peak of Inflated Expectations 2005 2011

  77. Technology Trigger Peak of Inflated Expectations Trough of Received Opinions

    Slope of Fear, Uncertainty and Doubt Plateau of “Oh, are those still a thing?” 2005 2011
  78. –Ryan Bigg & Yehuda Katz, Rails 3 in Action, Manning

    Publications, 2011 “There was a lot of controversy surrounding engines, and James spent a lot of his time defending the decision to develop them. Since then, however, the community has grown to accept the idea.”
  79. None
  80. Application 1 Application 2 Application 3 Application 4

  81. Application 1 Application 2 Application 3 Application 4

  82. The Doctrine

  83. Engines you may know Devise Spree Refinery CMS Active Storage

  84. Donate to archive.org Almost every site I referenced here is

    gone
  85. Donate to archive.org Almost every site I referenced here is

    gone
  86. None
  87. A History of Opinions The History of Rails

  88. String#capitalize Array#forty_two

  89. resource :session

  90. Model-centric ▶ Resource-centric controllers (2.0) RJS & Scriptaculous ▶ UJS

    & jQuery (3.1) Observers ▶ Concerns (4.0)
  91. Active Resource ▶ Nothing (Monoliths?) (4.0)

  92. None
  93. Majestic Monolith vs. Microservices Fat Models vs. Presenters Callbacks vs.

    Service Objects System Tests vs. Unit Testing & Stubs Fixtures vs. Factories
  94. None
  95. H A N A M I rom.rb dry-rb

  96. The Doctrine

  97. Hey, I have an idea!

  98. Hey, I have an idea! Some Guy said about 12

    seconds later: Your idea is in fact de facto evil
  99. None
  100. None
  101. None
  102. . I’ve written about it here: http://t.co/…

  103. None
  104. None
  105. Pearls, not diamonds

  106. Thanks! lazyatom.com/crazy-ones (it really is the end now)