seaside - on not getting bogged down

81

Upload: lukas-renggli

Post on 22-Apr-2015

1.551 views

Category:

Technology


2 download

DESCRIPTION

The Seaside web application framework is taken by storm. All major Smalltalk dialects have working ports of Seaside, contributing their particular strength to the mix. While Seaside itself tires to be dialect agnostic, vendors themselves are pushing in many different directions that are potentially incompatible. How does Seaside manage the compatibility among all these dialects? How does our dream Smalltalk vendor look like? How do we package the code in Seaside 2.9? And, most important, how does the future of Seaside look like?

TRANSCRIPT

Page 1: Seaside - On not getting bogged down
Page 2: Seaside - On not getting bogged down
Page 3: Seaside - On not getting bogged down

1Google Bug

Tracker

Page 4: Seaside - On not getting bogged down

5Average

Minutes on Site

Page 5: Seaside - On not getting bogged down

6Supported Smalltalk

Platforms

Page 6: Seaside - On not getting bogged down

80Subscribers to

seaside-dev List

Page 7: Seaside - On not getting bogged down

111Facebook Group

Members

Page 8: Seaside - On not getting bogged down

250Unique Visitors

per Day

Page 9: Seaside - On not getting bogged down

800Subscribers to

seaside List

Page 10: Seaside - On not getting bogged down

10KOne-Click Image

Downloads

Page 11: Seaside - On not getting bogged down

0

200

400

600

800

1000

1200

1400

1600

Visitors per Day

Aug 2007 –!Aug 2008

One-Click Image April 1st

2.8 2.8.1 2.8.2

Page 12: Seaside - On not getting bogged down

Platforms

Page 13: Seaside - On not getting bogged down

Squeak

Page 14: Seaside - On not getting bogged down

new

Page 15: Seaside - On not getting bogged down

GNU Smalltalk

new

Page 16: Seaside - On not getting bogged down

Smalltalk

Page 17: Seaside - On not getting bogged down

GemStone/S

Page 18: Seaside - On not getting bogged down

Dolphin Smalltalk

Page 19: Seaside - On not getting bogged down

VA Smalltalk

© Copyright 2007 Instantiations, Inc. VA Smalltalk, VA Assist, WidgetKit, and WindowBuilder are trademarks of Instantiations. All other trademarks mentioned are the property of their respective owners.

www.instantiations.com 1-800-808-3737Build Quality Software

Development ToolsA rich set of development tools includes a debugger, browsers, inspectors, application builders, and a performance monitor.Packager (Dev Tool) creates a runtime image including only necessary classes resulting in a smaller footprint.AsyncCallout, an extension of the platform function API, allows developers to make a platform function call in a separate virtual machine thread.Reports feature enables the creation of hardcopy and/or screen reports on any object that can be used in the VA Smalltalk environment, including parts provided in the Database and Communications features.

Custom Controls Popular WidgetKit technologyColumnar List boxes, table widgets and hierarchical listsCustomizable image buttons, toggles and value setsVertical, horizontal and circular gaugesData aware spin buttonsWindows 95/98/NT/2000 Notebook widgetSplitbar widget

!

!

!

!

!

!

!

Communications A set of parts supports communication with other computers using MQ series transactions.A set of parts supports communication with other computers using TCP/IP protocols.Socket Communications Interface is an API providing full support for TCP/IP protocols, as well as secure communications using SSL. The API uses OpenSSL, an implementation of SSL/TLS.

Database High-performance, robust support for DB2Support for Oracle through v10Support for any database which supports the ODBC interface.

Server SmalltalkServer Smalltalk (SST) provides a client/server framework flexible enough to accommodate various distributed architectures.Server Workbench is a cross-development envi-ronment used in developing distributed process-ing, web hosting, and other server applications. Target deployment environments include all VA Smalltalk platforms and z/OS using IBM’s VisualAge Smalltalk Server for OS/390 and z/OS.

Web ServicesA self-contained, modular framework, capable of creating, deploying and hosting web services.

External Interface SupportXML Support enables XML–Smalltalk object mapping, includes a server interface via XML request handlers and reading of remote resources via TCP sockets using HTTP requestsOLE Support enables an application to use OLE clients and custom control services.Domino Connection allows an application to retrieve and work with Domino documents as well as access Notes mail system.

!

!

!

100% VisualAge compatibleVA Smalltalk is a modern software development environment that is 100% VisualAge compatible. VA Smalltalk enables developers to quickly construct applications that are portable, highly scalable, simple to maintain, and fit easily into existing infrastructures.

Other Software RequirementsDatabase

DB2 Universal Database (Windows, AIX, Linux, Solaris)ORACLE 8i (8.1.6), 9i or 10

DominoLotus Notes (Windows only) [Not supported on Linux, AIX, Solaris]

VA Smalltalk’s HTML DocumentationTCP/IP protocolMicrosoft Internet Explorer 5.0 or later (Windows)Netscape 4.51 or later (Win, Linux, Solaris, AIX)Firefox 2.0 or later (Win, Linux)Opera 9.02 or later (Windows)

!

!

!

!

!

!

!

!

!

EMSRV 7.1a Library ManagerNetware 4.2 or 5.1OS/2 Warp 4.0 + FP11OS/2 Warp Server for e-BusinessWindows ME - EMADMIN onlyWindows 2000, 2000 Server, Advanced ServerWindows XP ProfessionalWindows Server 2003Windows Vista Business, Enterprise, or UltimateSun Solaris Version 8 or 9HP-UX Version 11.0 or 11iAIX Version 5.1, 5.2 or 5.3Red Hat Linux 9 and Advance Server 2.1SuSE Enterprise 10

!

!

!

!

!

!

!

!

!

!

!

!

!

Supported ConfigurationsOperating System Hardware PlatformWindows ME, 2000, XP, Server 2003, Vista . . . . . . . . . . . . . . . 300MHz PC, 256MB RAM, 400MB diskRedHat Linux 9, Enterprise AS 2.1, SuSE Linux . . . . . . . . . . . Pentium 300MHz PC, 128MB RAM, 400MB diskSun Solaris 8, 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPARC workstation or server, 64MB RAM, 200MB diskAIX 5.1, 5.2, 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RISC System/6000, POWERStation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . or POWERServer, 128MB RAM, 400MB disk

For detailed system requirements visit www.instantiations.com/VAST

Download a risk-free trial copy:www.instantiations.com/VAST/download

Award-winning VA Assist™ technologyUniversal Drag/DropPowerful change propagation toolsCustomizable ToolbarsColor Code Syntax (Windows only)Dynamic & Batch-Oriented Spell CheckingAuto-Spell CorrectionVersion RenamingClass History/FindVersion TemplatesString SearchApplication Filtering

!

!

!

!

!

!

!

!

!

!

!

!

Enhanced DebuggerEnhanced InspectorsCode SynchronizationLocate ApplicationsLocate DependentsRevision NotesRelease All LatestAbbreviation ExpansionPopup Sender/ImplementorsBrowse Changes Including Required MapsEmbedded mode for seamless integration with the Composition Editor

!

!

!

!

!

!

!

!

!

!

!

Ergonomic Enhancements

soon

Page 20: Seaside - On not getting bogged down

PorterThank You!

Page 21: Seaside - On not getting bogged down

Portability

Pho

to: A

lexia

´s, flic

kr.co

m

Page 22: Seaside - On not getting bogged down

Syntax

Pho

to: p

ipp

, sxc.h

u

Page 23: Seaside - On not getting bogged down

Underscore

Assagissements

a _ 1b ! 2

no

Page 24: Seaside - On not getting bogged down

Brace Arrays

{ 1. 2. 1 + 2 }

no

Page 25: Seaside - On not getting bogged down

Array Constructors

#[ ‘string’, 123, Object new ]

no

Page 26: Seaside - On not getting bogged down

Byte Arrays

#[ 1 2 3 ]

no

Page 27: Seaside - On not getting bogged down

Variable Bindings

{Smalltalk.Object}

no

Page 28: Seaside - On not getting bogged down

Selection Blocks

{:i | i.is.permanent}

no

Page 29: Seaside - On not getting bogged down

ifNotNil: [ :x | ... ]ifNotNilDo: [ :x | ... ]

no

Page 30: Seaside - On not getting bogged down

Pragma

<javascript: 1.5>

ok

Page 31: Seaside - On not getting bogged down

Collections

Pho

to: ijs

en

do

orn

,sxc.h

u

Page 32: Seaside - On not getting bogged down

Collection>>#=

no

Page 33: Seaside - On not getting bogged down

#withIndexDo:

no

Page 34: Seaside - On not getting bogged down

#keysAndValuesDo:

yes

Page 35: Seaside - On not getting bogged down

#pairsDo:

no

Page 36: Seaside - On not getting bogged down

1 to: aCollection size by: 2 do: [ :i | ... ]

yes

Page 37: Seaside - On not getting bogged down

Strings

Pho

to: Lyn

ne L

ancaste

r, s

xc.h

u

Page 38: Seaside - On not getting bogged down

Symbol is a String

no

Page 39: Seaside - On not getting bogged down

#match:

no

Page 40: Seaside - On not getting bogged down

#asString

no

Page 41: Seaside - On not getting bogged down

#displayString

no

Page 42: Seaside - On not getting bogged down

#toString

yes

Page 43: Seaside - On not getting bogged down

No IO

no

Page 44: Seaside - On not getting bogged down

SlimeLint Tests

for Seaside

Pho

to: A

Syed

, sxc.h

u

Page 45: Seaside - On not getting bogged down

6 Rules to detect

Portability Issues

Page 46: Seaside - On not getting bogged down

a _ 1.

b := { a + 2. 3 }.

c pairsDo: [ :a :b | a raisedTo: b ]

Page 47: Seaside - On not getting bogged down

6Rules to detect

Bugs

Page 48: Seaside - On not getting bogged down

html div

with: ‘Hello World’;

id: ‘message’.

html updater

id: ‘message’;

callback: [ :r | html text: ‘Bye’ ]

Page 49: Seaside - On not getting bogged down

4Rules to detect

Possible Bugs

Page 50: Seaside - On not getting bogged down

renderContentOn: html

a := self call: WACounter new

Page 51: Seaside - On not getting bogged down

4Rules to detect

Miscellaneous

Problems

Page 52: Seaside - On not getting bogged down

html div with: ‘Hi’.

html div: [ html text: ‘Hi’ ].

html anchor

callback: [ self a. self b. self c ];

with: ‘It’’s Complicated’

Page 53: Seaside - On not getting bogged down

0

50

100

150

200

250

300

350

400

Seaside 2.5 Seaside 2.6 Seaside 2.7 Seaside 2.8 Seaside 2.9

131

4444

20

Unit Tests

Page 54: Seaside - On not getting bogged down

0

100

200

300

400

Seaside 2.5 Seaside 2.6 Seaside 2.7 Seaside 2.8 Seaside 2.9

Unit Tests

" 3

" 3

Page 55: Seaside - On not getting bogged down

Source

Format

Pho

to: C

aro

lyn H

an, sxc.h

u

Page 56: Seaside - On not getting bogged down

Interchange

Formats

no

Page 57: Seaside - On not getting bogged down

Monticello

yes

Page 58: Seaside - On not getting bogged down

Squeak Cincom GemStone GST Dolphin

Squeak

Cincom

GemStone

GST

Dolphin

yes yep yes yep yep

no yes ? no no

yes ? yes no no

no no no yes no

no no no no yes

Target System

So

urc

e S

yste

m

Page 59: Seaside - On not getting bogged down

Monticello 2

yes

Page 60: Seaside - On not getting bogged down

Platform

Support

Page 61: Seaside - On not getting bogged down

SPORT

no

Page 62: Seaside - On not getting bogged down

SeasidePlatformSupport

yes

Page 63: Seaside - On not getting bogged down

Small and Lean

Page 64: Seaside - On not getting bogged down

WASeaside Namespace

Page 66: Seaside - On not getting bogged down

Dream Vendor

Pho

to: L

isa C

hristine T

am

, sxc.h

u

Page 67: Seaside - On not getting bogged down

Continuous

Integration

Page 68: Seaside - On not getting bogged down

Use a public

bug tracker

Page 69: Seaside - On not getting bogged down

Implement

Monticello 2

Page 70: Seaside - On not getting bogged down

Provide a full

stack solution

Page 71: Seaside - On not getting bogged down

Support

Multi CPU

Page 72: Seaside - On not getting bogged down

I18N

海!

Page 73: Seaside - On not getting bogged down

Provide a

better GUI

Page 74: Seaside - On not getting bogged down

Seaside Sprint

Pho

to: S

teve W

oo

ds, sxc.h

u

Page 75: Seaside - On not getting bogged down

When?

Friday, August 29, 2008 at 14:00

Sunday, August 31, 2008

Page 76: Seaside - On not getting bogged down

Who?

Core, Library Developer

Porter and Vendors

Page 77: Seaside - On not getting bogged down

What?

Towards Seaside 2.9

Page 78: Seaside - On not getting bogged down

Where?

Page 79: Seaside - On not getting bogged down

Pier Smalltalk

Page 80: Seaside - On not getting bogged down

source.lukas-renggli.ch/isea