Your SlideShare is downloading. ×
(thanx xkcd.com)
SEASIDE
Smalltalk Enterprise Application Server/IDE
SEASIDE
Squeak Enterprise Aubergines Server/IDE
>
2007 goto?
href considered harmful?
href == goto?
Seaside
• Web app framework in Smalltalk
• Web app IDE in Smalltalk
• No hard-coded HTML links
• No pretty URLs
w hy s m a l l t a l k ?
f un
Power
powerful
continuations
Turtles all the way down
e di t smal l t al k
  i n smal l t al k
con t i nuat i on
   se r ve r
continuations?
continuations?

    preserve all state
!

    go somewhere else
!

    do something else
!

    all the state is there whe...
Time Machine
State Handling In Web Apps
Normal Method

• Store state in the session
• Store state in the database
• Store state with flat files
• Obtain state from ...
Seaside Method


• Application stores state in memory
• URLs have unique identifiers
• Implemented with continuations
How is it different
for the programmer?
Normal Method

• Access database
• Open flat files
• Read CGI params
• Read cookies
Seaside Method
Don’t think about
  state at all
Just think about
 your program
It kicks ass
To t a l l y d u d e
Rails makes Java and PHP
look like training wheels
Seaside makes Rails look
 as if it has a speed limit
tedious
Seaside: ide = IDE
Debug your Web app in your Web app
explicit HREF statements
discouraged in Rails
impossible in Seaside
impossible in Seaside
         (nearly)
href is goto
too much work
what does goto do?
s e n d yo u t o c o d e
what does href do?
s e n d yo u t o c o d e
why is goto
considered harmful?
p r i m i t i ve f l o w
      c o n t ro l
why is href
considered harmful?
p r i m i t i ve f l o w
      c o n t ro l
don’t be primitive
be advanced
impossible
Desktop app
 developers
don’t have to
 track state
Their frameworks do it for them
Their languages do it for them
Ours should too
Seaside does
Seaside has an answer
Not the answer
Rails has an answer too
Replace goto
with method dispatch
Replace href
with active resources
REST
supports
obsessed
REST
REST
?
...
Smalltalk:
Old School
Better Late Than Never
useless
funky
out there
weird
mind
expanding
nearly the same language
very similar syntax
ver y different contexts
Smalltalk        Ruby




                   Unix
Virtual Machine
                  Windows
Turtles all the way down
e di t smal l t al k
  i n smal l t al k
“Postmodern language”
“Postmodern language”
       (glue language)
connect it to anything
have your cake
   and eat it
ru b in iu s . . .
Still
just
one
of
many
possible
futures
Ruby vir tual machine
Turtles all the way down
e di t ru by
 i n ruby
Seaside ported to Ruby...?
...
REST
Heavy   Light




CORBA   JSON
SOAP    REST
Light always wins.
people get involved
quot;Every developer working with the Web needs to read this book.quot;
- David Heinemeier Hansson, creator of the Rails f...
REST
REST


architectural style
REST
REST
Addressability

Statelessness

Connectedness

Uniform Interface
REST

Small, simple URLs
what if the Web was one
gigantic virtual machine?
<a href=“railsapp.com/controller/action”></a>
<a href=“railsapp.com/controller/action”></a>

        monkeys.com/monkeys/feed
        monkeys.com/monkeys/wash
        m...
<a href=“railsapp.com/controller/action”></a>
<goto=“location/resource/action”></goto>
<invoke=“location/object/method”></invoke>
auto-generated goto statements
the Web is a virtual machine
Rails is a component compiler
(almost)
Seaside:
Seaside:


       no almost about it
Seaside:



   Web apps with state
Seaside:
no http gotos at all
?
Giles Bowkett
gilesbowkett.blogspot.com
      giles.tumblr.com
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
×

Os Bowkett

1,089

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

Transcript of "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

×