Seaside - The Revenge of Smalltalk

2,844 views

Published on

Seaside is a web application framework that is written in Smalltalk. Smalltalk has been hugely influential on the development of computer languages but realistically how many people have ever used it? Seaside is a practical application of Smalltalk to the web sphere.

Published in: Technology, Education
1 Comment
3 Likes
Statistics
Notes
  • brilliant presentation - it looks like it has been done by a marketing guy, not a programmer...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,844
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
57
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Seaside - The Revenge of Smalltalk

  1. 1. The Revenge of Smalltalk London Geek Nights July 6, 2009
  2. 2. Lukas Renggli Academics PhD Student, University of Bern Open-Source Core-developer of Seaside Author of Magritte and Pier Industry Independent Software Consultant
  3. 3. Agenda Flow Continuations Components Objects Security Closures Applications Debugger
  4. 4. Natural Flow Source: stock.xchng, Asif Akbar
  5. 5. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form>
  6. 6. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="text" name="value2"> <input type="submit" value="OK"> </form>
  7. 7. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  8. 8. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  9. 9. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  10. 10. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  11. 11. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="hidden" name="value1" value="<% value1 %>"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  12. 12. <form action="second.html"> <input type="text" name="value1"> <input type="submit" value="OK"> </form> <form action="result.html"> <input type="hidden" name="value1" value="<% value1 %>"> <input type="text" name="value2"> <input type="submit" value="OK"> </form> <p> <% value1 + value2 %> </p>
  13. 13. is different
  14. 14. 3 user interactions
  15. 15. 3 lines of code
  16. 16. value1 := self request: ‘First Number’.
  17. 17. value1 := self request: ‘First Number’. value2 := self request: ‘Second Number’.
  18. 18. value1 := self request: ‘First Number’. value2 := self request: ‘Second Number’. self inform: value1 + value2.
  19. 19. D SL value1 := self request: ‘First Number’. I t’sa value2 := self request: ‘Second Number’. self inform: value1 + value2.
  20. 20. It’s j u st value1 := self request: ‘First Number’. S m a l lt a l k value2 := self request: ‘Second Number’. self inform: value1 + value2.
  21. 21. No request parsing
  22. 22. No string fiddling
  23. 23. No state machines
  24. 24. Demo
  25. 25. Reusable Components Source: stock.xchng, Lynne Lancaster
  26. 26. Reuseable
  27. 27. Persistent
  28. 28. Model View Controller Model, View, Controller
  29. 29. Valid Source: stock.xchng, Al Nakib
  30. 30. CSS Designer
  31. 31. XHTML Developer & Seaside
  32. 32. DRY
  33. 33. DRY It ’s a D S L
  34. 34. It’s j u st DRY S m a l lt a l k
  35. 35. Demo
  36. 36. 3 Source: stock.xchng, Colin Brough Default Secure by
  37. 37. Cross Site Scripting Source: stock.xchng, Afonso Lima
  38. 38. Output is encoded by default
  39. 39. Replay Attacks Source: stock.xchng, Afonso Lima
  40. 40. Session _s=Ru8ZKgqjy0uDX3kf 96-bit
  41. 41. Page _k=K5EQyqKE 48-bit
  42. 42. Parameter Tampering Source: stock.xchng, Afonso Lima
  43. 43. Names are generated automatically
  44. 44. Names are bound to functions
  45. 45. No manual request parsing
  46. 46. html submitButton ! callback: [ self inform: ‘Hey’ ]; ! with: ‘Click Here’
  47. 47. html submitButton a D S L It ’s ! callback: [ self inform: ‘Hey’ ]; ! with: ‘Click Here’
  48. 48. It’s j u st html submitButton S m a l lt a l k ! callback: [ self inform: ‘Hey’ ]; ! with: ‘Click Here’
  49. 49. Web 2.0 Source: Flickr, Benjamin Jackson
  50. 50. Source: Flickr, psrman's
  51. 51. Comet Source: Flickr, psrman's
  52. 52. a D S L It ’s
  53. 53. It’s j u st S m a l lt a l k
  54. 54. Demo
  55. 55. 5 Applications Source: stock.xchng, Steve Woods
  56. 56. In productive use since 2002
  57. 57. Seaside
  58. 58. MIT License
  59. 59. External Interface Support XML Support enables XML–Smalltalk object Platform 256MB RAM, 400MB disk mapping, includes a server interface via XML 0MHz PC, 128MB RAM, 400MB disk request handlers and reading of remote resources station or server, 64MB RAM, 200MB disk via TCP sockets using HTTP requests m/6000, POWERStation OLE Support enables an application to use OLE erver, 128MB RAM, 400MB disk clients and custom control services. 1a Library Manager Domino Connection allows an application to 4.2 or 5.1 retrieve and work with Domino documents as well p 4.0 + FP11 as access Notes mail system. p Server for e-Business ME - EMADMIN only 2000, 2000 Server, d Server XP Professional Server 2003 Download a risk-free trial copy: Vista Business, Enterprise, www.instantiations.com/VAST/download te is Version 8 or 9 rsion 11.0 or 11i on 5.1, 5.2 or 5.3 inux 9 and Advance Server 2.1 erprise 10 visit www.instantiations.com/VAST Build Quality Software WindowBuilder are trademarks of Instantiations. All other trademarks mentioned are the property of their respective owners.
  60. 60. www.seaside.st
  61. 61. www.seaside.st
  62. 62. www.swa.hpi.uni-potsdam.de/seaside/tutorial/
  63. 63. www.seaside.st www.lukas-renggli.ch

×