smalltalk perspectives, by arden thomas

Upload: cincom-smalltalk

Post on 03-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    1/37

    Smalltalk PerspectivesArden Thomas

    Cincom Smalltalk Product manager

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    2/37

    Talks

    Arden Thomas: Perspectives on SmalltalkMonday @ 4:30 PM

    Arden Thomas: Cincom Smalltalk RoadmapWednesday @ 9:30 AM (Sachem East)

    Dirk Verleysen and Andreas Hiltner:Cincom ObjectStudio: New Native GUIImplementation PreviewA Technical OverviewWednesday @ 10:45 AM (Sachem East)

    Les Kooyman: Internationalization inCincom VisualWorks Wednesday @ 1:45 PM(Sachem East)

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    3/37

    Contents

    The Smalltalk of:

    Poly, MatriX and Green

    Smalltalk Performance

    Innovation

    Afternoon Projects

    Advocacy

    Learn Something New!

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    4/37

    The Smalltalk of

    What is a Smalltalk theme?

    Less is more

    Minimal needed, no fluff

    Most done with least

    Simple, robust and effective

    Underappreciated

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    5/37

    The Smalltalk of

    Knots?

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    6/37

    The Smalltalk of Knots

    The Zeppelin Knot(actually a bend) Best in class bend used to

    tie down airships

    Almost forgotten!

    Beautiful symmetrical

    Simple (basically twooverhand bends)

    Strong, secure,outstanding in use

    Rediscovered!

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    7/37

    The Smalltalk of

    Supercars

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    8/37

    The Smalltalk of Supercars

    McClarenF1 Buggati Veyron 4 turbos

    10 radiators

    1000 bhp

    7 spd DSG

    All wheel drive No turbos

    6 speed manual

    Rear wheel drive

    No ABS

    Center seating!

    1st carbon fiber

    Careful air handling

    Air brake

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    9/37

    Poly, MatriX, Green Threads

    Simple concurrency

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    10/37

    Poly Approach to Using Multi-Cores

    Coordinated Multiple

    Headless images

    Core 1 Core 2 Core 3 Core 4

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    11/37

    Example

    Coordinated Multiple Headless images

    loadNYSE

    loadAMEX loadNasdaq loadFunds

    loadETFs

    Core 1 Core 2 Core 3 Core 4

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    12/37

    MatriX

    Like Polycephaly but:

    Uses Xtreams (X)

    Uses sockets

    Allows a Grid in addition to multi-cores

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    13/37

    Green Threads

    Often thought as inferior to native threads

    Becoming more relevant

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    14/37

    Sequence bottleneck

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    15/37

    Bottleneck Revisited Overlap SolutionWork done overlapping the wait

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    16/37

    Smalltalk Performance

    Seven ideas to get more

    performance in your Smalltalk

    application

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    17/37

    Smalltalk Performance

    1.) See the forest through the trees.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    18/37

    Smalltalk Performance

    2.) C

    If there is a small time critical section, you

    can write it in C and call it from Smalltalk.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    19/37

    Smalltalk Performance

    3.) Use what you have

    . with Poly & MatriX

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    20/37

    Smalltalk Performance

    4.) 64 bits

    We have 64 bit VMs which let you utilize a

    very large object space.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    21/37

    Smalltalk Performance

    5.) Use what you have V2

    Use your GPU for parallel computation!

    Modern GPUs can give supercomputer likespeed to number crunching.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    22/37

    Smalltalk Performance

    6.) Base Product performance improvements

    VM

    Image algorithms

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    23/37

    Smalltalk Performance

    7.) Profile

    Because guesses are just inaccurate

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    24/37

    Innovation

    Smalltalk IS Innovation!

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    25/37

    Innovation

    Skins

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    26/37

    Innovation

    ValueInterface

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    27/37

    Innovation - ValueInterface

    Three things it makes easy:

    Connecting widgets to the domain

    Reacting to domain changes Connecting/Reusing Applications

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    28/37

    Innovation - ValueInterface

    it makes easy:

    Connecting/Reusing Applications

    initialize

    stockListApp := StockListApp new.

    stockDetailApp := StockDetailApp in: stockListApp.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    29/37

    name Wal-Mart

    symbol #WMT

    exchange NYSE

    ValueInterface

    Interface

    Domain

    Model

    Wal-Martname

    selectionHolder

    WMTsymbol

    NYSEexchangeNavteq

    CiscoBoeing

    Alcoa

    Wal-Mart

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    30/37

    Innovation

    WhateverWhatever provides an efficient shapeless Object, much like a self object. Youcan set any slots you want on each instance, give it custom behavior and eveninherit that behavior with new sub-instances. Consider this 'classless' objects.

    Whatever.Object new

    name: 'My name';

    age: 76;

    gender: #happy;

    lifeStory: (Whatever.Object new

    title: 'My epic tale of classlessness';

    content: 'It was a dark and stormy night...';

    yourself);

    methodAt: 'printString' put: '^self name, '', aged: '', self age printString';

    yourself

    This package implements these shapeless objects in one of the most efficient ways possible.

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    31/37

    Afternoon Projects

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    32/37

    Afternoon Projects

    Tetris

    Kmeans

    Progress Grid Pulse

    Stock Model

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    33/37

    Advocacy

    Pearls of Smalltalk

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    34/37

    Learn Something New!

    Challenge yourself

    Do something you do all the time

    differently

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    35/37

    Fastest Shoelace Knot

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    36/37

    Fastest Shoelace Knot

  • 7/28/2019 Smalltalk Perspectives, by Arden Thomas

    37/37

    Contact info

    Star Team(Smalltalk Strategic Task Action Resources)

    Arden Thomas ([email protected])

    Smalltalk Product Manager

    Suzanne Fortman ([email protected])

    Smalltalk Director

    http://www.cincomsmalltalk.com

    http://www.cincomsmalltalk.com/http://www.cincomsmalltalk.com/