HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Yehuda Katz - Why Rails is Hard (Railsberry 2012)

applicake2 HN recommenders · recommended in 2 months, 2013-2014
YouTube
29K views · 14 years ago · talk · dated

Yehuda Katz's Railsberry 2012 talk on why Rails is hard to learn and use. He explains that the framework's many features reflect real complexity in web applications that newcomers do not yet see.

Recommended to people who call Rails bloated, as an argument that its size comes from features you eventually need.

Python, Ruby & scripting languagesWeb developmentSoftware architecture & design#rails#yehudakatz#ruby#frameworkcomplexity#webdevelopment

4 comments from Hacker News

@dham2014 · in “Ask HN: why most startups use ruby and rails?”

Rails is not bloated, it just comes with a lot of features. I'd suggest watching these videos. ▶ this video link A typical Rails instance will use 100 - 150mb, and does not take a minute to start up. Have you actually used Rails? I have several large projects and none have ever taken that long to startup. I use Ruby for non Rails projects all the time and had no issue finding how to include Active Record and Action Mailer into a Ruby CLI application.

RecommendsView on HN
@danneu2013 · in “Lisp Web Tales”

The difference is that Rails and the popular gems involve some of the highest abstractions I've ever used. It's like that by design. There's nothing inherently bad about it. Here's the typical workflow for adding a gem: 1. Add "gem 'some_library'" to Gemfile 2. `bundle install` 3. Drop the 'some_library_method!' incantation where you need to. Here are the steps for Devise's base-case (I only use Devise as an example for a broader point): 1. echo 'gem "devise"' >> Gemfile 2. `rails generate devise:install` 3. `rails generate devise User` 4. `rails generate devise:views` Boom. It's awesome. The trade-off is that now your entire authentication system is hidden behind line 37 of your Gemfile. And that's Devise's purpose - to be that abstract. And on many projects that's perfectly fine. Of course, you can roll your own authentication in Rails. It's easy. It's not like you have to use Devise or a daisy-chain of opaque libraries. But I find it nontrivial to understand what Rails does behind the scenes. Or what `require "activerecord"` in Sinatra does behind the scenes. Or how to recreate a state of my application. Or how to test things without a testing abstraction. And I didn't really care until I started to care. Ring's functional abstraction has helped me remain aware of what my application is doing. My application state is annotated clearly as `(def ^:dynamic current-user )` which is bound to every request by plucking the value of the `:session` key out of the request map. My ap

CitesView on HN
@cllns2013 · in “You are dangerously bad at cryptography”

(Un)conscious (in)competence reminds me of Donald Rumsfeld's trichotomy of known knowns, known unknowns and unknown unknowns. (highlighted here: ▶ this video )

CitesView on HN
@gingerlime2013 · in “Hacking Flask: A Success Story”

I would gladly take Flask over Django/TastyPie Could you explain the benefits or difference for you? Personally, I enjoyed using Tastypie, and when things weren't clear, its code was a pleasure to read and made things easier to understand or work out how to solve. Perhaps similar to your experience with the Flask code. I imagine a thinner framework is cleaner in many ways, but then with a more robust framework you get stuff out of the box. In this particular case, getting the request time (+ if you want, sql time etc) is relatively easy and there are a few middleware options to do it in Django. I've seen an interesting talk[1] by Yehuda Katz: "why rails is hard". One of the key points, if I can somehow paraphrase, is that with a bigger framework like rails, you get a lot more out of the box for the 'price' of it being heavier... He's comparing rails to node and sinatra, but the same might apply to the comparison between django/tastypie and flask I suppose. Finally, I don't know about flask, but another important point in Yehuda's talk was that some of those things implemented for you, you might not even know that you need. This is true particularly for security, where you probably don't have to think about whether XSS/CSRF protection is implemented etc, you just want things to be secure by default and it's not a feature you even think about... I am not saying flask doesn't have those (I don't know), just that in general that's usually the trade-off between heavier and lighter

RecommendsView on HN
Rails Conf 2012 Keynote: Simplicity Matters by Rich Hickey36:53

Rails Conf 2012 Keynote: Simplicity Matters by Rich Hickey

Confreaks
220K views • 14 years ago
RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"47:34

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"

O'Reilly
26K views • 15 years ago
October CincyRb - Jim Weirich on Decoupling from Rails1:15:58

October CincyRb - Jim Weirich on Decoupling from Rails

Launch Scout
48K views • 13 years ago
Interview with Steve Yegge on Rhino on Rails and more25:17

Interview with Steve Yegge on Rhino on Rails and more

Google for Developers
34K views • 18 years ago
RailsConf 2016 -  Turbolinks 5: I Can’t Believe It’s Not Native! by Sam Stephenson37:37

RailsConf 2016 - Turbolinks 5: I Can’t Believe It’s Not Native! by Sam Stephenson

Confreaks
61K views • 10 years ago
MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk28:06

MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk

Confreaks
27K views • 12 years ago
GoRuCo 2012 Hexagonal Rails by Matt Wynne29:23

GoRuCo 2012 Hexagonal Rails by Matt Wynne

Confreaks
17K views • 14 years ago
RailsConf 2015 - Nothing is Something35:53

RailsConf 2015 - Nothing is Something

Confreaks
84K views • 11 years ago
Ruby on Rails demo16:12

Ruby on Rails demo

tenthconcept
428K views • 21 years ago
RailsConf 2014 - All the Little Things by Sandi Metz38:47

RailsConf 2014 - All the Little Things by Sandi Metz

Confreaks
190K views • 12 years ago
RailsConf 2016 - Rails to Phoenix by Brian Cardarella28:34

RailsConf 2016 - Rails to Phoenix by Brian Cardarella

Confreaks
12K views • 10 years ago
Lone Star Ruby Conference 2010 Real Software Engineering by Glenn Vanderburg51:57

Lone Star Ruby Conference 2010 Real Software Engineering by Glenn Vanderburg

Confreaks
30K views • 15 years ago
RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson1:01:17

RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson

Confreaks
123K views • 12 years ago
PHP doesn't suck (anymore)10:48

PHP doesn't suck (anymore)

Aaron Francis
223K views • 3 years ago
7 minutes of Pharo Smalltalk for Rubyists7:15

7 minutes of Pharo Smalltalk for Rubyists

Avdi Grimm
37K views • 11 years ago
Nicholas Zakas: Scalable JavaScript Application Architecture52:23

Nicholas Zakas: Scalable JavaScript Application Architecture

YUI Library
68K views • 15 years ago
"Simple Made Easy" - Rich Hickey (2011)1:01:39

"Simple Made Easy" - Rich Hickey (2011)

Strange Loop Conference
219K views • 5 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
Cheng Lou - On the Spectrum of Abstraction at react-europe 201635:32

Cheng Lou - On the Spectrum of Abstraction at react-europe 2016

ReactEurope
63K views • 10 years ago
Hacker Way: Rethinking Web App Development at Facebook44:36

Hacker Way: Rethinking Web App Development at Facebook

Meta Developers
900K views • 12 years ago