Your SlideShare is downloading. ×
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,062
views

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,062
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