Your SlideShare is downloading. ×
0
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Os Bowkett
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Os Bowkett

1,083

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,083
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. (thanx xkcd.com)
  • 2. SEASIDE Smalltalk Enterprise Application Server/IDE
  • 3. SEASIDE Squeak Enterprise Aubergines Server/IDE
  • 4. >
  • 5. 2007 goto?
  • 6. href considered harmful?
  • 7. href == goto?
  • 8. Seaside • Web app framework in Smalltalk • Web app IDE in Smalltalk • No hard-coded HTML links • No pretty URLs
  • 9. w hy s m a l l t a l k ?
  • 10. f un
  • 11. Power
  • 12. powerful continuations
  • 13. Turtles all the way down
  • 14. e di t smal l t al k i n smal l t al k
  • 15. con t i nuat i on se r ve r
  • 16. continuations?
  • 17. continuations? preserve all state ! go somewhere else ! do something else ! all the state is there when you get back !
  • 18. Time Machine
  • 19. State Handling In Web Apps
  • 20. Normal Method • Store state in the session • Store state in the database • Store state with flat files • Obtain state from cookies • Obtain state from CGI params
  • 21. Seaside Method • Application stores state in memory • URLs have unique identifiers • Implemented with continuations
  • 22. How is it different for the programmer?
  • 23. Normal Method • Access database • Open flat files • Read CGI params • Read cookies
  • 24. Seaside Method
  • 25. Don’t think about state at all
  • 26. Just think about your program
  • 27. It kicks ass
  • 28. To t a l l y d u d e
  • 29. Rails makes Java and PHP look like training wheels
  • 30. Seaside makes Rails look as if it has a speed limit
  • 31. tedious
  • 32. Seaside: ide = IDE Debug your Web app in your Web app
  • 33. explicit HREF statements
  • 34. discouraged in Rails
  • 35. impossible in Seaside
  • 36. impossible in Seaside (nearly)
  • 37. href is goto
  • 38. too much work
  • 39. what does goto do?
  • 40. s e n d yo u t o c o d e
  • 41. what does href do?
  • 42. s e n d yo u t o c o d e
  • 43. why is goto considered harmful?
  • 44. p r i m i t i ve f l o w c o n t ro l
  • 45. why is href considered harmful?
  • 46. p r i m i t i ve f l o w c o n t ro l
  • 47. don’t be primitive
  • 48. be advanced
  • 49. impossible
  • 50. Desktop app developers don’t have to track state
  • 51. Their frameworks do it for them
  • 52. Their languages do it for them
  • 53. Ours should too
  • 54. Seaside does
  • 55. Seaside has an answer
  • 56. Not the answer
  • 57. Rails has an answer too
  • 58. Replace goto with method dispatch
  • 59. Replace href with active resources
  • 60. REST
  • 61. supports
  • 62. obsessed
  • 63. REST
  • 64. REST
  • 65. ?
  • 66. ...
  • 67. Smalltalk: Old School
  • 68. Better Late Than Never
  • 69. useless
  • 70. funky
  • 71. out there
  • 72. weird
  • 73. mind expanding
  • 74. nearly the same language
  • 75. very similar syntax
  • 76. ver y different contexts
  • 77. Smalltalk Ruby Unix Virtual Machine Windows
  • 78. Turtles all the way down
  • 79. e di t smal l t al k i n smal l t al k
  • 80. “Postmodern language”
  • 81. “Postmodern language” (glue language)
  • 82. connect it to anything
  • 83. have your cake and eat it
  • 84. ru b in iu s . . .
  • 85. Still just one of many possible futures
  • 86. Ruby vir tual machine
  • 87. Turtles all the way down
  • 88. e di t ru by i n ruby
  • 89. Seaside ported to Ruby...?
  • 90. ...
  • 91. REST
  • 92. Heavy Light CORBA JSON SOAP REST
  • 93. Light always wins.
  • 94. people get involved
  • 95. quot;Every developer working with the Web needs to read this book.quot; - David Heinemeier Hansson, creator of the Rails framework
  • 96. REST
  • 97. REST architectural style
  • 98. REST
  • 99. REST Addressability Statelessness Connectedness Uniform Interface
  • 100. REST Small, simple URLs
  • 101. what if the Web was one gigantic virtual machine?
  • 102. <a href=“railsapp.com/controller/action”></a>
  • 103. <a href=“railsapp.com/controller/action”></a> monkeys.com/monkeys/feed monkeys.com/monkeys/wash monkeys.com/monkeys/elect
  • 104. <a href=“railsapp.com/controller/action”></a>
  • 105. <goto=“location/resource/action”></goto>
  • 106. <invoke=“location/object/method”></invoke>
  • 107. auto-generated goto statements
  • 108. the Web is a virtual machine
  • 109. Rails is a component compiler
  • 110. (almost)
  • 111. Seaside:
  • 112. Seaside: no almost about it
  • 113. Seaside: Web apps with state
  • 114. Seaside: no http gotos at all
  • 115. ?
  • 116. Giles Bowkett gilesbowkett.blogspot.com giles.tumblr.com

×