future of ruby on the web
DESCRIPTION
Aaron Patterson's talk from Future Insights Live 2014 in Las Vegas: "The Web is constantly changing, and technology is constantly evolving. With these ideas in mind, let's look at what Ruby and Rails not only can do, but must do in order to push technology forward on the web." Miss his talk? Join us at a future show: www.futureofwebapps.com. Sign up for our newsletter at futureinsights.com and get 15% off your next conference.TRANSCRIPT
![Page 1: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/1.jpg)
Spoiler Alert!
![Page 2: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/2.jpg)
![Page 3: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/3.jpg)
Dumbledore Dies!
![Page 4: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/4.jpg)
Welcome to Future Insights Live!!!
![Page 5: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/5.jpg)
Las Vegas
![Page 6: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/6.jpg)
"The Vegas"
![Page 7: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/7.jpg)
![Page 8: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/8.jpg)
![Page 9: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/9.jpg)
I am not always right.
![Page 10: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/10.jpg)
Future Insights Live
![Page 11: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/11.jpg)
Future Insights Live
![Page 12: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/12.jpg)
Future!Insights Live
![Page 13: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/13.jpg)
Future!Insights Live
![Page 14: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/14.jpg)
Future!Insights!Live
Hopefully?
![Page 15: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/15.jpg)
Future ofRubyRailsWeb
![Page 16: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/16.jpg)
I am not a Fortune Teller
![Page 17: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/17.jpg)
Agile Web Developer
![Page 18: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/18.jpg)
![Page 19: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/19.jpg)
Progress Is a Line
![Page 20: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/20.jpg)
Start At The Beginning
![Page 21: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/21.jpg)
Aaron Patterson
![Page 22: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/22.jpg)
@tenderlove
![Page 23: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/23.jpg)
Ruby Core Team
![Page 24: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/24.jpg)
Rails Core Team
![Page 25: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/25.jpg)
OMG!
INTERNET!
POINTS
![Page 26: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/26.jpg)
![Page 27: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/27.jpg)
![Page 28: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/28.jpg)
![Page 29: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/29.jpg)
FULL STACK ENGINEER
![Page 30: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/30.jpg)
AT&T, AT&T logo and all AT&T related marks are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies.
![Page 31: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/31.jpg)
☑AdequateEverything. Adequately.
![Page 32: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/32.jpg)
Two Cats
![Page 33: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/33.jpg)
Gorbachev!Puff Puff!
Thunderhorse
![Page 34: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/34.jpg)
Sea-Tac!Facebook!YouTube
![Page 35: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/35.jpg)
![Page 36: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/36.jpg)
Extremely Shy
![Page 37: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/37.jpg)
Constant Failyour
![Page 38: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/38.jpg)
WWFMD?
![Page 39: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/39.jpg)
![Page 40: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/40.jpg)
Language Background
![Page 41: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/41.jpg)
School: C / C++
![Page 42: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/42.jpg)
![Page 43: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/43.jpg)
First OSS in 2002
![Page 44: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/44.jpg)
Lingua::EN::NameCase
![Page 45: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/45.jpg)
![Page 46: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/46.jpg)
SomethingFactoryFactoryFactoryBuilder
![Page 47: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/47.jpg)
SomethingFactoryFactoryFactoryBuilder
![Page 48: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/48.jpg)
No OSS in Java.
![Page 49: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/49.jpg)
I’ve never written Java for fun.
![Page 50: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/50.jpg)
![Page 51: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/51.jpg)
![Page 52: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/52.jpg)
My Birthday, in 2003
![Page 53: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/53.jpg)
Lesson: Use someone else’s credit card
![Page 54: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/54.jpg)
I was hooked.
![Page 55: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/55.jpg)
![Page 56: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/56.jpg)
High Productivity
![Page 57: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/57.jpg)
Startup World
![Page 58: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/58.jpg)
OSS Increased
![Page 59: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/59.jpg)
Corporate World
![Page 60: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/60.jpg)
AT&T, AT&T logo and all AT&T related marks are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies.
![Page 61: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/61.jpg)
High Productivity
![Page 62: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/62.jpg)
Employment as OSS Developer
![Page 63: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/63.jpg)
Expense Reporting
![Page 64: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/64.jpg)
Expense Report Infinite Loop
![Page 65: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/65.jpg)
ConcurPDF
![Page 66: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/66.jpg)
"5 pages sent to …"
![Page 67: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/67.jpg)
Concur
Fax
![Page 68: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/68.jpg)
High Productivity?
![Page 69: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/69.jpg)
I love my job.
![Page 70: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/70.jpg)
People Seek High Productivity
![Page 71: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/71.jpg)
Back to Future Predictions…
![Page 72: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/72.jpg)
![Page 73: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/73.jpg)
Future of Programming Languages
![Page 74: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/74.jpg)
Machine Code
[ op | rs | rt | rd |shamt| funct] 0 1 2 6 0 32 decimal 000000 00001 00010 00110 00000 100000 binary
![Page 75: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/75.jpg)
Assembly Language .arch msp430g2553 .cpu 430 .mpy none ! .section .init9,"ax",@progbits .p2align 1,0 .global main .type main,@function /*********************** * Function `main' ***********************/ main: mov.b #0, &__P1OUT mov.b &__CALBC1_1MHZ, &__BCSCTL1 mov.b &__CALDCO_1MHZ, &__DCOCTL bis.b #1, &__P1DIR bis.b #1, &__P1OUT mov #1, r15 .Lfe1: .size main,.Lfe1-main ;; End of function
![Page 76: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/76.jpg)
Freed us from binary
![Page 77: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/77.jpg)
Cvoid loop(void) { green(); dht * fridge = malloc(sizeof(dht)); read = dhtRead(fridge); ! if(DHT_OK == read) { WRITE_TEMP(fridge->rhIntegral, fridge->rhDecimal, fridge->tIntegral, fridge->tDecimal); } else { red(); WRITE_TEMP(99, 99, 99, 99); } delaySeconds(2); }
![Page 78: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/78.jpg)
Freed us from the instructions
![Page 79: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/79.jpg)
Javapublic IRubyObject start_document(ThreadContext context, IRubyObject version, IRubyObject tags, IRubyObject implicit) { boolean implicitBool = implicit.isTrue(); Map<String, String> tagsMap = null; ! RubyArray tagsAry = tags.convertToArray(); if (tagsAry.size() > 0) { tagsMap = new HashMap<String, String>(tagsAry.size()); for (int i = 0; i < tagsAry.size(); i++) { RubyArray tagsTuple = tagsAry.eltInternal(i).convertToArray(); if (tagsTuple.size() != 2) { throw context.runtime.newRuntimeError("tags tuple must be of length 2"); } IRubyObject key = tagsTuple.eltInternal(0); IRubyObject value = tagsTuple.eltInternal(1); tagsMap.put(key.asJavaString(), value.asJavaString()); } } ! return this; }
![Page 80: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/80.jpg)
Freed us from memory management.
![Page 81: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/81.jpg)
Rubydef start_document(context, version, tags, implicit) tagsMap = nil; ! tagsAry = Array(tags) if (tagsAry.size > 0) tagsMap = {} tagsAry.size.times do |i| tagsTuple = tagsAry.eltInternal(i) if (tagsTuple.size != 2) raise RuntimeError, "tags tuple must be of length 2" end key = tagsTuple.eltInternal(0); value = tagsTuple.eltInternal(1); tagsMap[key] = value end end end
![Page 82: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/82.jpg)
Freed us from Types
![Page 83: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/83.jpg)
We’ve eliminated
• Specific machine code • Particular CPU instructions • Memory management • Object Types
![Page 84: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/84.jpg)
What’s next?
![Page 85: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/85.jpg)
![Page 86: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/86.jpg)
Concurrency
![Page 87: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/87.jpg)
CPUs aren’t getting faster
![Page 88: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/88.jpg)
We’re getting more cores
![Page 89: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/89.jpg)
Today
lock.synchronize { # Manipulate some data }
![Page 90: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/90.jpg)
Today
pool = ThreadPool.new NUMBER_OF_CPU
![Page 91: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/91.jpg)
Thinking about this is a waste of time!
![Page 92: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/92.jpg)
Dealing with concurrency is CODE NOISE
![Page 93: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/93.jpg)
The computer should solve these problems FOR US!
![Page 94: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/94.jpg)
Distributed Systems
![Page 95: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/95.jpg)
Concurrency tomorrow will be like memory management today
![Page 96: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/96.jpg)
Future of Ruby
![Page 97: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/97.jpg)
Ruby will ADAPT.
![Page 98: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/98.jpg)
By STEALING
![Page 99: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/99.jpg)
Clojure, Haskell, Go
![Page 100: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/100.jpg)
GC was invented in 1959.
![Page 101: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/101.jpg)
GC was invented in 1959.
![Page 102: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/102.jpg)
1959!!!!!
![Page 103: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/103.jpg)
Java’s First Release: 1995
WTF?
![Page 104: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/104.jpg)
We can do better than 36 years!
![Page 105: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/105.jpg)
Ruby Will Adapt Ruby Will Change
![Page 106: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/106.jpg)
Future of Rails
![Page 107: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/107.jpg)
Freedom of Rails
![Page 108: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/108.jpg)
Where does a model go?
![Page 109: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/109.jpg)
How does it talk to the controller?
![Page 110: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/110.jpg)
What are our table names?
![Page 111: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/111.jpg)
What is the primary key name?
![Page 112: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/112.jpg)
![Page 113: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/113.jpg)
Convention over Configuration
![Page 114: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/114.jpg)
High Productivity
![Page 115: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/115.jpg)
The Web is Changing
![Page 116: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/116.jpg)
Computations are changing
![Page 117: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/117.jpg)
Ember.js / AngularJS
![Page 118: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/118.jpg)
btw, Ember.js is way better
![Page 119: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/119.jpg)
I have no idea what I’m talking about.
![Page 120: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/120.jpg)
The pendulum is done.
![Page 121: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/121.jpg)
Why is multi-core different than distributed computing?
![Page 122: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/122.jpg)
Why is distributed computing different than client/server?
![Page 123: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/123.jpg)
Practical Terms
![Page 124: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/124.jpg)
Better API support
![Page 125: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/125.jpg)
High Productivity
![Page 126: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/126.jpg)
Future of Web
![Page 127: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/127.jpg)
World’s Most Advanced Animated Gif Delivery System
![Page 128: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/128.jpg)
Future of the Web IS HERE!
![Page 129: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/129.jpg)
Future Favors High Productivity
![Page 130: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/130.jpg)
Higher Productivity for Languages
![Page 131: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/131.jpg)
Higher Productivity for Frameworks
![Page 132: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/132.jpg)
Higher Productivity for The Web
![Page 133: Future of Ruby on the Web](https://reader033.vdocuments.us/reader033/viewer/2022052822/554ba168b4c905ae618b4a8f/html5/thumbnails/133.jpg)
Thank You!!💛💙💜💚❤️💗💛💙💜💚❤️💗