SlideShare a Scribd company logo
You Can’t Do That With Smalltalk! - Can You?
Lessons From The Past – Challenges For
             The Future

                  Dave Thomas

     Bedarra Corporation (Canada and Anguilla)
   Carleton University (Canada) and University Of
               Queensland (Australia)
                 dave@bedarra.com


                      © Bedarra Corp 2002
About The Talk


•  Brief History Of Commercial Smalltalk
•  Yes You Can! – The OTI Smalltalk
   Experience
•  Opportunities For Smalltalk
•  In Search of Sapphire –
   ScriptingSmallatalk
•  Summary
                 © Bedarra Corp 2002
Commercial Smalltalk The Early Years
            1984 - 1994
•  PPS Smalltalk Dynamic Translation – Peter
   Deutsch
•  Tektronix AI Workstation
•  Digitalk Methods and Smalltalk/V
•  Apple Lisa Smalltalk
•  Berkeley Smalltlak - Generation Scavenging
•  Gemstone
•  ST/VMac Digitalk and OTI
•  OTI Envy/Developer
•  Tektronix Oscilloscopes and OTI
   Embedded Smalltalk/V, CRC, RDD
                  © Bedarra Corp 2002
Commercial Smalltalk The Early years
            1984 - 1995
•  Instantiations TeamV, KSC mentoring,
   Object People - Toplink, Objectshare
   WindowBuilder
•  Digitalk VisualSmalltalk, PPS Visualworks,
   Envy Smalltalk, Smalltalk/X
•  ANSI ST, IBM VisualAge/Smalltalk and
   Mainframe Smalltalk
•  QKS Smalltalk Agents, Dolphin Smalltalk,
   MTS Smalltalk
•  Optimizations – Polymorphic Inline Cache
•  Namespaces and Packages
                   © Bedarra Corp 2002
Commercial Smalltalk Research and
      Development Post 1995
•  StrongTalk, OTI Uvm, Smalltalk/X
   Java Extensions, PPS Jigsaw (last
   major commercial R&D)
•  Circa 95/96 – Dolphin, Smalltalk MT,
   Squeak




                © Bedarra Corp 2002
Once Upon A Time A Long Long Time Ago
•  A small new CS department with 3 Professors wanted to use
   to understand OOP
•  We had 1 Sun 2 workstation and 3 Apple LISA and many PCs
   and Macs
•  We introduced Smalltalk into first year, and we performed
   world class research with few resources
•  We just set out to find the best tools for our work and
   focused on interesting industrial applications
•  We sought a long-term research agenda called Object
   Utopia
•  We liked the technology so much we started a company
•  We seeded OTI, Object People, Object Time as well as
   several other companies and participated in enabling an
   industry
                          © Bedarra Corp 2002
The Wall Street Journal - June 17,
                2000

"Today Utopia Inc.. announced the
long awaited OU/200000, the
world's first fully object-oriented
computer system. The development
language for OU/200000 system
software/ firmware as well as the                      Object Utopia
end user 5GL programming
language are dialects of Lavatalk.
The machine uses custom VLIW
technology to directly implement
the object management 5GL
architecture. “

                                 © Bedarra Corp 2002
How Can Virtual Machines Be Efficient
       for Real Applications?
·  Migrate Application “case tests” into
   message dispatch
·  Uniform Representation of Descriptions
   and Programs
·  Highly Optimized Application Oriented
   Instructions
·  Exploit On-Chip Resources - Memory or
   Registers
·  Exploit Software Locality - Cache
·  Efficient Memory Management - SGC
                 © Bedarra Corp 2002
OTI Virtual Machine Technology

·    Widest range of supported platforms:
      ·  iX86, 370, PowerPC, PA-RISC, SPARC, MIPS, Alpha,
         68K...
      ·  Windows, NT, MVS, OS/2, AIX, HP/UX, Solaris,
         Mac, OS/400..
      ·  RTOS such as VxWorks, OSOpen, OS/9, QNX...
·    VMs built with advanced Meta-VM generator
     technology
·    Designed for embedded - in low memory applications
     the RTOS is not required and can be eliminated (“bare
     metal”)
·    Designed to be Re-entrant (thread able for SMP, MPP)
     and Rumble
·    Extensive interfaces to other languages
      ·  Call-outs, Call-ins & Call-backs
·    Dynamically loadable “applets”
                        © Bedarra Corp 2002
Virtual Machine Development Process
   Generic VM                Processor
   Framework                 Description
                 Meta
                  VM
                 Builder




           Processor Specific VM
Scaling Up?   "But Can You Run It Under CICS?"


· Support for transaction based
  applications
· Mainframe
· Multi-processor SMP and MPP
· Distributed
· Security
                 © Bedarra Corp 2002
Scaling Up To Today's Legacy
                  Systems
        Urgent HTTP message from Jurassic Park
...locating host .... connect ... waiting ...
     “The Dinosaurs are back check the stock price!!!”



       · MVS CICS/DB2, IMS, Batch
       · AS/400 RISC
       · Mixed COBOL/PLI/RPG/C +
         VM
       · Terminals and Thin Clients
                      © Bedarra Corp 2002
JCL For Building CICS TP Image App




              © Bedarra Corp 2002
Scaling Up To Servers


· Support for heterogeneous
  transaction based applications
· Distributed and SMP
· Huge Memory and Massively Parallel




               © Bedarra Corp 2002
Conventional SMPs
              (4-64 Processors)


                                          Clients

                                          Servers
    Actors
Lightweight tasks                         Workers

                                          Couriers

                                          Notifiers
                    © Bedarra Corp 2002
Persistent Transaction Framework
                         (PTF)
   Application                                              Data Access
             (Use                ODMG
   Programmer                                               Programmer (IDL/SQL)
                Cases)
                 Transactors                                                    Data Store
Dialogs                        Object Model              Transaction Services
           launch                                                     access

          call-back
                                                         store
               access
                                                         retrieve
           launch                                                     access
          call-back


                                   © Bedarra Corp 2002
Actors - Active Objects
·  Anthropomorphic Programming - Clients,
   Servers, Agents, Managers, Secretaries,
   Couriers, Workers, Notifiers ...
·  First Class Active Components which
   encapsulates a set of state and behaviour
   together with a thread of control
·  Transactors = Active Transactions with
   atomic behaviour
·  Business Processes = Workflow + Rules +
   Control (e.g.. Taylor engines)
·  Agents = Actor where methods are rules
·  Avatar = Actor where method is script
   and displayOn: uses VRML
                  © Bedarra Corp 2002
Server VMs

·    Communications Middleware
·    Object Marshalling and Transmission
·    Async Call-in Callout
·    Integration with TP Monitors
·    Multi-tasking (threading) and Multi-processing ( e.g..
     SMP) shared memory, VM & GC
·    Concurrent Debug and Performance Tools
·    Concurrent Programming Model(s)
       ·  e.g.. Actra, Concurrent Smalltalk, Linda, Simula ...
·    Thread Safe Libraries
·    Large Memorys and Object/Relational Persistence


                            © Bedarra Corp 2002
Distributed VMs

·  Server plus ...
·  Distributed VM and GC support
·  Distributed Debug and Performance
   Tools
·  Distributed Programming Model(s)
    ·  communicating images (SCI, RMI or
       ORB)
    ·  proxies and transparent forwarders
    ·  distributed virtual memory with
       logical processes

                © Bedarra Corp 2002
Working in the MUD - Jupiter/
            Worlds

   Places and Spaces -
    Supporting Virtual
      Organizations



            © Bedarra Corp 2002
Working in the MUD
·  Large Memory Server (10GB -1000GB)
·  Variable Bandwidth Connections (3270 to
   VRML)
·  Complete Simulation of Business Processes
·  Simulation Model = Image
·  Multi-user Shared Image
·  Image is up to date and database is backup
·  Thread Safe and Persistent Libraries
·  Federated Business Objects
·  Business to Business Communication =
   Interacting MUDs
                   © Bedarra Corp 2002
Security - Trusted VM



·  Capability protection within the virtual
   machine

·  Garbage collector is security aware
·  Virtual machine (VM) is verified
·  Security policies are behaviors

                      © Bedarra Corp 2002
Fine Grained
     (4K-64K Processors)


·  visibleStars do: [:star |
   star twinkle]

      Applications
     +  Behaviour investigation (N-Body)
     +  Execution domain changes (ENVY/
        Expert)
     +  System design and construction
        (Vibes)
     +  Executable Business Models
            © Bedarra Corp 2002
CodA - ENVY/Expert Implementation

·  Implemented in Smalltalk on 512
   processor Fujitsu MPP
·  Integrated with full environment
·  Reuse entire Smalltalk class library
·  18 methods annotated
·  16 methods added
·  Only 34 of 1000 methods affected
·  Lazy and transparent
                © Bedarra Corp 2002
Applications Oriented “Thinking Machine”
 ·  high performance reliable fibre and serial
    buses
 ·  simple processors with private reliable flash
    or CMOS memory
 ·  distributed shared memory for some
    applications
 ·  fault tolerant distributed middleware
 ·  message and object oriented programming
 ·  one or more objects multiplexed to a
    processor/VM giving a processor per
    business object
 ·  computer system models system it simulates
                     © Bedarra Corp 2002
MPP Applications
       Every Object has a Processor
·  Every airplane has a processor and keeps track
   of it’s flights
·  Every customer has a processor which keeps
   track of their bank accounts
·  Every business process has a processor
·  Every airplane component has a processor and
   keeps track of it’s self
·  Every industrial process has a processor which
   monitors it’s progress
·  Every room has a processor which keeps track
   of the room       © Bedarra Corp 2002
NYC
        Components
        Everywhere!                                        Reusable
                                                          Component
                                                 Zurich                Tokyo




            Subscribe to a component

             Versions                                             Subsystem


              Publish identity, changes
Publisher
                                                     Subscriber
                           © Bedarra Corp 2002
Example Software                              = Subsystem

      Bill of Materials                            = Component
                                                     Library
                      O-O Hotels
                         Inc.




Round and Beautiful                            Lodging Inc. Hotel
Hotel Management                             Management Library
System                                          IBM Good Buddy
LOB Framework                                 LOB Library (Retail)
(Retail POS)

Communications                               hw/sw encapsulation
( RPC/RMI)                                       ( APPC, TCP/IP)

                       © Bedarra Corp 2002
Component Publishing
  Experience with ENVY/Packager, Swapper and App


·  component publisher must be able to select
  ·  granularity method, class, component, library
  ·  package format (.exe; shared library; rom; ocx, app,
     ssl)
  ·  visibility of source, object, interfaces, partial
  ·  binding time from shrink wrap to load on demand
  ·  package for multiple platform
  ·  package for multiple countries
  ·  package for specific customers
  ·  include/exclude associated materials such as
     initialized data, help, icons
                       © Bedarra Corp 2002
Scaling Down to Embedded Systems - NCC,
        PDA and Internet Appliance

   ·  Compact virtual machine
   ·  Interrupts
   ·  Minimal image
   ·  ROM, Flash, PCMCIA based
      applications
   ·  Separate development and target
      environments
                 © Bedarra Corp 2002
Tektronix TDS 500 Series
      Oscilloscope




        © Bedarra Corp 2002
Texas Instruments Integrated
      Wafer Fabrication Facility

•  Goal - reduce fabrication costs and cycle
   times by 10
•  High level factory management tasks -
   planning, scheduling, production tracking
•  Low level tasks - process control and
   diagnostics, performance monitoring, intra-
   machine scheduling, quality control
•  Smalltalk initially used to construct a
   simulation of the system architecture and
   the user interface
                   © Bedarra Corp 2002
Application Example
             Embedded PBX

·  8 line PBX/Voice Mail System w/- T1 interface
·  Based on Motorola 68360 micro controller
·  500 classes
·  < 2 Megabytes of ROM and 1 Megabyte of
   RAM
·  To field testing in 9 months
·  Ready to ship in 12 months

                    © Bedarra Corp 2002
Application Example Gas Analyzer
·  Based on Intel i386 processor
·  Embedded DOS with 32 bit
   extender
·  1 megabyte of ROM 1 megabyte of
   RAM
·  < 6 man months


               © Bedarra Corp 2002
PDA Framework




     DTO

            © Bedarra Corp 2002
VisualAge Embedded Tools

·  Development Workstations - WinTel; AIX,
   OS/2, HP-UX, Solaris, QNX
·  Target Processors - PowerPC, 68K , x86,
   MIPS, Alpha, ARM
·  RTOS - QNX, OS/9 ,OSOpen, VxWorks,
   JavaOS
·  Bare-metal - In many space demanding
   applications where the RTOS can be
   eliminated.
·  PowerPC 403GA - Uses the OS Open RTOS.
   Provides a basis for customer evaluation and
   early application development
                     © Bedarra Corp 2002
The Smalltalk Opportunity Today

•  Tools for research
•  Tools for reverse engineering
•  Grid and MPP Computing
•  Meta-modeling and Meta-
   Programming environments
•  Simulation Environments For
   eLearning
•  Searching For Sapphire?
                 © Bedarra Corp 2002
In Search of Sapphire - ScriptingSmalltalk
•  Perl, Javascript, PHP, Python, Ruby … needs
   competition – bad design, too complex, too
   slow
•  TTY Smalltalk with friendly Publication
   Language and ASCII Syntax
•  Java like class and package structure
•  Proper Modules, Namespaces and Components
•  Multiple IDE Support – Smalltalk-80, Eclipse,
   Visual Studio.Net
•  Proper lexical closures and continuations
•  Don’t Ignore Functional and Vector Languages
                     © Bedarra Corp 2002
In Search of Sapphire - ScriptingSmalltalk
•  Bindings to Windows and Linux platforms C
   APIs (internet programming)
•  Better support for strings, XML, threads
   (persistent CGI)
•  SapphireWeblog – Smalltalk's own vision of
   Zope which combines, Wiki, Web server
•  Improved Libraries – Simplified (VB) and better
   Algorithms
•  Image disappears and reappears as a cache
•  Smallscript.net and F-Script are exemplars, we
   need more
                     © Bedarra Corp 2002
Summary
 Respect The Best – Embrace The Future
•  The path to widespread use or commercial
   success is never clear – follow the customer
•  Customers keep you honest and should force you
   to simplify
•  Smalltalk is a much better language for modeling
   the world
•  Smalltalk is a much better language for modeling
   than UML
•  Smalltalk is a much better language for
   scripting than Python, Ruby, PHP etc. but needs
   to meet them on their own terms
                     © Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002
© Bedarra Corp 2002

More Related Content

PPTX
HYPERTENSION in dental management patient
PPTX
ORAL HYGIENE DAY (1).pptx
PPT
світова транспортна система
PDF
Australia
PDF
Pharo: Objects at your Fingertips
PDF
Pharo4: Plans and Dreams
PDF
Pharo Status Fosdem 2015
PDF
Arduinoで出来ること
HYPERTENSION in dental management patient
ORAL HYGIENE DAY (1).pptx
світова транспортна система
Australia
Pharo: Objects at your Fingertips
Pharo4: Plans and Dreams
Pharo Status Fosdem 2015
Arduinoで出来ること

Viewers also liked (12)

PDF
Reflection in Pharo: Beyond Smalltak
PDF
The Pharo Programming Language
PPTX
Squeak & Pharo @ NYC Smalltalk
PDF
Pharo: Objects at your Fingertips
PDF
2008 Sccc Smalltalk
PDF
Pharo devnology20150401
PDF
Pharo Hands-On: 02 syntax
PDF
Pharo tutorial at ECOOP 2013
PDF
Pharo Roadmap
PDF
Pharo Hands-on: 05 object model
PDF
Haskell vs. F# vs. Scala
PPT
Stoop 432-singleton
Reflection in Pharo: Beyond Smalltak
The Pharo Programming Language
Squeak & Pharo @ NYC Smalltalk
Pharo: Objects at your Fingertips
2008 Sccc Smalltalk
Pharo devnology20150401
Pharo Hands-On: 02 syntax
Pharo tutorial at ECOOP 2013
Pharo Roadmap
Pharo Hands-on: 05 object model
Haskell vs. F# vs. Scala
Stoop 432-singleton
Ad

Similar to You Can’t Do That With Smalltalk! (20)

PDF
Oracle Cloud Infrastructure
PPTX
Dcs cloud architecture-high-level-design
PDF
The Kubernetes WebLogic revival (part 1)
PDF
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
PDF
Automated Deployment and Management of Edge Clouds
PPTX
Simplify IT: Oracle SuperCluster
DOC
Senthilnadhan K_Resume
PDF
AppSphere 15 - Containers and Microservices Create New Performance Challenges
PPTX
Containers and microservices create new performance challenges kowall - app...
PPTX
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
PDF
Stay productive while slicing up the monolith
PDF
CV it infrastructure - shahnawaz ali
PDF
Stay productive while slicing up the monolith
PDF
ITCamp 2011 - Mihai Nadas - Windows Azure interop
PPTX
OpenStackを利用したEnterprise Cloudを支える技術 - OpenStack最新情報セミナー 2016年5月
PPTX
20191201 kubernetes managed weblogic revival - part 1
PDF
Rajnish_tyagi Profile
PDF
Resume_Achhar_Kalia
PDF
e6c952d11fcd811dac5d0dd086e23790_Dell technology.pdf
PPT
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Oracle Cloud Infrastructure
Dcs cloud architecture-high-level-design
The Kubernetes WebLogic revival (part 1)
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Automated Deployment and Management of Edge Clouds
Simplify IT: Oracle SuperCluster
Senthilnadhan K_Resume
AppSphere 15 - Containers and Microservices Create New Performance Challenges
Containers and microservices create new performance challenges kowall - app...
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
Stay productive while slicing up the monolith
CV it infrastructure - shahnawaz ali
Stay productive while slicing up the monolith
ITCamp 2011 - Mihai Nadas - Windows Azure interop
OpenStackを利用したEnterprise Cloudを支える技術 - OpenStack最新情報セミナー 2016年5月
20191201 kubernetes managed weblogic revival - part 1
Rajnish_tyagi Profile
Resume_Achhar_Kalia
e6c952d11fcd811dac5d0dd086e23790_Dell technology.pdf
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Spectroscopy.pptx food analysis technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
20250228 LYD VKU AI Blended-Learning.pptx
sap open course for s4hana steps from ECC to s4
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Reach Out and Touch Someone: Haptics and Empathic Computing
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Spectroscopy.pptx food analysis technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks

You Can’t Do That With Smalltalk!

  • 1. You Can’t Do That With Smalltalk! - Can You? Lessons From The Past – Challenges For The Future Dave Thomas Bedarra Corporation (Canada and Anguilla) Carleton University (Canada) and University Of Queensland (Australia) dave@bedarra.com © Bedarra Corp 2002
  • 2. About The Talk •  Brief History Of Commercial Smalltalk •  Yes You Can! – The OTI Smalltalk Experience •  Opportunities For Smalltalk •  In Search of Sapphire – ScriptingSmallatalk •  Summary © Bedarra Corp 2002
  • 3. Commercial Smalltalk The Early Years 1984 - 1994 •  PPS Smalltalk Dynamic Translation – Peter Deutsch •  Tektronix AI Workstation •  Digitalk Methods and Smalltalk/V •  Apple Lisa Smalltalk •  Berkeley Smalltlak - Generation Scavenging •  Gemstone •  ST/VMac Digitalk and OTI •  OTI Envy/Developer •  Tektronix Oscilloscopes and OTI Embedded Smalltalk/V, CRC, RDD © Bedarra Corp 2002
  • 4. Commercial Smalltalk The Early years 1984 - 1995 •  Instantiations TeamV, KSC mentoring, Object People - Toplink, Objectshare WindowBuilder •  Digitalk VisualSmalltalk, PPS Visualworks, Envy Smalltalk, Smalltalk/X •  ANSI ST, IBM VisualAge/Smalltalk and Mainframe Smalltalk •  QKS Smalltalk Agents, Dolphin Smalltalk, MTS Smalltalk •  Optimizations – Polymorphic Inline Cache •  Namespaces and Packages © Bedarra Corp 2002
  • 5. Commercial Smalltalk Research and Development Post 1995 •  StrongTalk, OTI Uvm, Smalltalk/X Java Extensions, PPS Jigsaw (last major commercial R&D) •  Circa 95/96 – Dolphin, Smalltalk MT, Squeak © Bedarra Corp 2002
  • 6. Once Upon A Time A Long Long Time Ago •  A small new CS department with 3 Professors wanted to use to understand OOP •  We had 1 Sun 2 workstation and 3 Apple LISA and many PCs and Macs •  We introduced Smalltalk into first year, and we performed world class research with few resources •  We just set out to find the best tools for our work and focused on interesting industrial applications •  We sought a long-term research agenda called Object Utopia •  We liked the technology so much we started a company •  We seeded OTI, Object People, Object Time as well as several other companies and participated in enabling an industry © Bedarra Corp 2002
  • 7. The Wall Street Journal - June 17, 2000 "Today Utopia Inc.. announced the long awaited OU/200000, the world's first fully object-oriented computer system. The development language for OU/200000 system software/ firmware as well as the Object Utopia end user 5GL programming language are dialects of Lavatalk. The machine uses custom VLIW technology to directly implement the object management 5GL architecture. “ © Bedarra Corp 2002
  • 8. How Can Virtual Machines Be Efficient for Real Applications? ·  Migrate Application “case tests” into message dispatch ·  Uniform Representation of Descriptions and Programs ·  Highly Optimized Application Oriented Instructions ·  Exploit On-Chip Resources - Memory or Registers ·  Exploit Software Locality - Cache ·  Efficient Memory Management - SGC © Bedarra Corp 2002
  • 9. OTI Virtual Machine Technology ·  Widest range of supported platforms: ·  iX86, 370, PowerPC, PA-RISC, SPARC, MIPS, Alpha, 68K... ·  Windows, NT, MVS, OS/2, AIX, HP/UX, Solaris, Mac, OS/400.. ·  RTOS such as VxWorks, OSOpen, OS/9, QNX... ·  VMs built with advanced Meta-VM generator technology ·  Designed for embedded - in low memory applications the RTOS is not required and can be eliminated (“bare metal”) ·  Designed to be Re-entrant (thread able for SMP, MPP) and Rumble ·  Extensive interfaces to other languages ·  Call-outs, Call-ins & Call-backs ·  Dynamically loadable “applets” © Bedarra Corp 2002
  • 10. Virtual Machine Development Process Generic VM Processor Framework Description Meta VM Builder Processor Specific VM
  • 11. Scaling Up? "But Can You Run It Under CICS?" · Support for transaction based applications · Mainframe · Multi-processor SMP and MPP · Distributed · Security © Bedarra Corp 2002
  • 12. Scaling Up To Today's Legacy Systems Urgent HTTP message from Jurassic Park ...locating host .... connect ... waiting ... “The Dinosaurs are back check the stock price!!!” · MVS CICS/DB2, IMS, Batch · AS/400 RISC · Mixed COBOL/PLI/RPG/C + VM · Terminals and Thin Clients © Bedarra Corp 2002
  • 13. JCL For Building CICS TP Image App © Bedarra Corp 2002
  • 14. Scaling Up To Servers · Support for heterogeneous transaction based applications · Distributed and SMP · Huge Memory and Massively Parallel © Bedarra Corp 2002
  • 15. Conventional SMPs (4-64 Processors) Clients Servers Actors Lightweight tasks Workers Couriers Notifiers © Bedarra Corp 2002
  • 16. Persistent Transaction Framework (PTF) Application Data Access (Use ODMG Programmer Programmer (IDL/SQL) Cases) Transactors Data Store Dialogs Object Model Transaction Services launch access call-back store access retrieve launch access call-back © Bedarra Corp 2002
  • 17. Actors - Active Objects ·  Anthropomorphic Programming - Clients, Servers, Agents, Managers, Secretaries, Couriers, Workers, Notifiers ... ·  First Class Active Components which encapsulates a set of state and behaviour together with a thread of control ·  Transactors = Active Transactions with atomic behaviour ·  Business Processes = Workflow + Rules + Control (e.g.. Taylor engines) ·  Agents = Actor where methods are rules ·  Avatar = Actor where method is script and displayOn: uses VRML © Bedarra Corp 2002
  • 18. Server VMs ·  Communications Middleware ·  Object Marshalling and Transmission ·  Async Call-in Callout ·  Integration with TP Monitors ·  Multi-tasking (threading) and Multi-processing ( e.g.. SMP) shared memory, VM & GC ·  Concurrent Debug and Performance Tools ·  Concurrent Programming Model(s) ·  e.g.. Actra, Concurrent Smalltalk, Linda, Simula ... ·  Thread Safe Libraries ·  Large Memorys and Object/Relational Persistence © Bedarra Corp 2002
  • 19. Distributed VMs ·  Server plus ... ·  Distributed VM and GC support ·  Distributed Debug and Performance Tools ·  Distributed Programming Model(s) ·  communicating images (SCI, RMI or ORB) ·  proxies and transparent forwarders ·  distributed virtual memory with logical processes © Bedarra Corp 2002
  • 20. Working in the MUD - Jupiter/ Worlds Places and Spaces - Supporting Virtual Organizations © Bedarra Corp 2002
  • 21. Working in the MUD ·  Large Memory Server (10GB -1000GB) ·  Variable Bandwidth Connections (3270 to VRML) ·  Complete Simulation of Business Processes ·  Simulation Model = Image ·  Multi-user Shared Image ·  Image is up to date and database is backup ·  Thread Safe and Persistent Libraries ·  Federated Business Objects ·  Business to Business Communication = Interacting MUDs © Bedarra Corp 2002
  • 22. Security - Trusted VM ·  Capability protection within the virtual machine ·  Garbage collector is security aware ·  Virtual machine (VM) is verified ·  Security policies are behaviors © Bedarra Corp 2002
  • 23. Fine Grained (4K-64K Processors) ·  visibleStars do: [:star | star twinkle] Applications +  Behaviour investigation (N-Body) +  Execution domain changes (ENVY/ Expert) +  System design and construction (Vibes) +  Executable Business Models © Bedarra Corp 2002
  • 24. CodA - ENVY/Expert Implementation ·  Implemented in Smalltalk on 512 processor Fujitsu MPP ·  Integrated with full environment ·  Reuse entire Smalltalk class library ·  18 methods annotated ·  16 methods added ·  Only 34 of 1000 methods affected ·  Lazy and transparent © Bedarra Corp 2002
  • 25. Applications Oriented “Thinking Machine” ·  high performance reliable fibre and serial buses ·  simple processors with private reliable flash or CMOS memory ·  distributed shared memory for some applications ·  fault tolerant distributed middleware ·  message and object oriented programming ·  one or more objects multiplexed to a processor/VM giving a processor per business object ·  computer system models system it simulates © Bedarra Corp 2002
  • 26. MPP Applications Every Object has a Processor ·  Every airplane has a processor and keeps track of it’s flights ·  Every customer has a processor which keeps track of their bank accounts ·  Every business process has a processor ·  Every airplane component has a processor and keeps track of it’s self ·  Every industrial process has a processor which monitors it’s progress ·  Every room has a processor which keeps track of the room © Bedarra Corp 2002
  • 27. NYC Components Everywhere! Reusable Component Zurich Tokyo Subscribe to a component Versions Subsystem Publish identity, changes Publisher Subscriber © Bedarra Corp 2002
  • 28. Example Software = Subsystem Bill of Materials = Component Library O-O Hotels Inc. Round and Beautiful Lodging Inc. Hotel Hotel Management Management Library System IBM Good Buddy LOB Framework LOB Library (Retail) (Retail POS) Communications hw/sw encapsulation ( RPC/RMI) ( APPC, TCP/IP) © Bedarra Corp 2002
  • 29. Component Publishing Experience with ENVY/Packager, Swapper and App ·  component publisher must be able to select ·  granularity method, class, component, library ·  package format (.exe; shared library; rom; ocx, app, ssl) ·  visibility of source, object, interfaces, partial ·  binding time from shrink wrap to load on demand ·  package for multiple platform ·  package for multiple countries ·  package for specific customers ·  include/exclude associated materials such as initialized data, help, icons © Bedarra Corp 2002
  • 30. Scaling Down to Embedded Systems - NCC, PDA and Internet Appliance ·  Compact virtual machine ·  Interrupts ·  Minimal image ·  ROM, Flash, PCMCIA based applications ·  Separate development and target environments © Bedarra Corp 2002
  • 31. Tektronix TDS 500 Series Oscilloscope © Bedarra Corp 2002
  • 32. Texas Instruments Integrated Wafer Fabrication Facility •  Goal - reduce fabrication costs and cycle times by 10 •  High level factory management tasks - planning, scheduling, production tracking •  Low level tasks - process control and diagnostics, performance monitoring, intra- machine scheduling, quality control •  Smalltalk initially used to construct a simulation of the system architecture and the user interface © Bedarra Corp 2002
  • 33. Application Example Embedded PBX ·  8 line PBX/Voice Mail System w/- T1 interface ·  Based on Motorola 68360 micro controller ·  500 classes ·  < 2 Megabytes of ROM and 1 Megabyte of RAM ·  To field testing in 9 months ·  Ready to ship in 12 months © Bedarra Corp 2002
  • 34. Application Example Gas Analyzer ·  Based on Intel i386 processor ·  Embedded DOS with 32 bit extender ·  1 megabyte of ROM 1 megabyte of RAM ·  < 6 man months © Bedarra Corp 2002
  • 35. PDA Framework DTO © Bedarra Corp 2002
  • 36. VisualAge Embedded Tools ·  Development Workstations - WinTel; AIX, OS/2, HP-UX, Solaris, QNX ·  Target Processors - PowerPC, 68K , x86, MIPS, Alpha, ARM ·  RTOS - QNX, OS/9 ,OSOpen, VxWorks, JavaOS ·  Bare-metal - In many space demanding applications where the RTOS can be eliminated. ·  PowerPC 403GA - Uses the OS Open RTOS. Provides a basis for customer evaluation and early application development © Bedarra Corp 2002
  • 37. The Smalltalk Opportunity Today •  Tools for research •  Tools for reverse engineering •  Grid and MPP Computing •  Meta-modeling and Meta- Programming environments •  Simulation Environments For eLearning •  Searching For Sapphire? © Bedarra Corp 2002
  • 38. In Search of Sapphire - ScriptingSmalltalk •  Perl, Javascript, PHP, Python, Ruby … needs competition – bad design, too complex, too slow •  TTY Smalltalk with friendly Publication Language and ASCII Syntax •  Java like class and package structure •  Proper Modules, Namespaces and Components •  Multiple IDE Support – Smalltalk-80, Eclipse, Visual Studio.Net •  Proper lexical closures and continuations •  Don’t Ignore Functional and Vector Languages © Bedarra Corp 2002
  • 39. In Search of Sapphire - ScriptingSmalltalk •  Bindings to Windows and Linux platforms C APIs (internet programming) •  Better support for strings, XML, threads (persistent CGI) •  SapphireWeblog – Smalltalk's own vision of Zope which combines, Wiki, Web server •  Improved Libraries – Simplified (VB) and better Algorithms •  Image disappears and reappears as a cache •  Smallscript.net and F-Script are exemplars, we need more © Bedarra Corp 2002
  • 40. Summary Respect The Best – Embrace The Future •  The path to widespread use or commercial success is never clear – follow the customer •  Customers keep you honest and should force you to simplify •  Smalltalk is a much better language for modeling the world •  Smalltalk is a much better language for modeling than UML •  Smalltalk is a much better language for scripting than Python, Ruby, PHP etc. but needs to meet them on their own terms © Bedarra Corp 2002