Os Bowkett

1,132
-1

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,132
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Os Bowkett

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

×