Fwd: [Pharo-project] Slides for a talk on "Why I Still Use Smalltalk" for comments

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: [Pharo-project] Slides for a talk on "Why I Still Use Smalltalk" for comments

Hannes Hirzel
Hello

FYI,


The following presentation was sent to the Pharo list this month and I
think it is interesting for Cuis as well as it is a distribution
linked to Squeak. The presentation  has a lot of screen shots taken
from Squeak and Pharo.

Stephen, I'd like to know more about what you are using Smalltalk
these days, any links?

Regards

Hannes

P.S.
Please include
   [hidden email]
in your replies as he is probably not on this list and he invited comments.


---------- Forwarded message ----------
From: Stephen Travis Pope <[hidden email]>
Date: Sat, 5 Jan 2013 17:21:44 -0800
Subject: [Pharo-project] Slides for a talk on "Why I Still Use
Smalltalk" for comments
To: vwnc <[hidden email]>, [hidden email]


Hello all,

I've put together a set of slides for a 90-minute lecture/demo on "Why
I Still Use Smalltalk" to be given to a colloquium of graduate media
arts and technology students at UCSB (where I taught from 1996-2010).
I up-loaded the slides for your comments; there's a 19-page PDF file
(6 slides per page) at,

        http://HeavenEverywhere.com/STP_ST80_Talk_Slides.pdf

Your comments/questions are welcome...

(The demo at the start will be using VisualWorks to build the
canonical up/down counter.)

(Slide 12 is me and the head of the composition department at UCSB,
both in 1984, for context.)

stp


--

  Stephen Travis Pope   Santa Barbara, California, USA
http://HeavenEverywhere.com



Begin forwarded message:

> From: Stephen Travis Pope <[hidden email]>
> Date: October 26, 2012 12:47:55 PM PDT
> To: vwnc <[hidden email]>
> Cc: Stephen Travis Pope <[hidden email]>
> Subject: Outline of a talk on "Why I Still Use Smalltalk" for comments
>
>
> Hello all,
>
> I'm planning to give a colloquium called "Why I Still Use Smalltalk" for the graduate students at UCSB, and wanted to solicit your comments on the outline.
>
> stp
>
> --------------------
>
> Why I Still Use Smalltalk
>
> Graduate Colloquium
> UCSB Graduate Program in Media Arts and Technology
> November, 2012
> Stephen Travis Pope, [hidden email]
>
> --------------------
>
> Proposal
>
> Title: Why I Still Use Smalltalk
>
> Abstract
>
> The Smalltalk-80 programming system is celebrating its 30th birthday this year (Smalltalk-80 version 2 was released and documented in a series of books in 1982). The system was the first popular software development tool that incorporated a number of features we take for granted today, including an object-oriented programming language, a comprehensive open-source class library, an integrated window-based development environment, and a cross-platform virtual-machine-based delivery system. Nevertheless, Smalltalk has nowhere near the installed base or the mindshare of lesser peers such as C++ or Java, or more modern descendants such as Python or Ruby. This talk will introduce the Smalltalk system's language, libraries and tools, outline its history, and discuss the reasons why it is not more widely used. Several aspects of the Smalltalk system make it especially good for developing multimedia applications, and these will be introduced with examples from the last 30 years. The presenter was among the very first to use Smalltalk for real-world applications, and worked on the Smalltalk team at Xerox PARC and their spin-off ParcPlace Systems from 1986-94. He still uses Smalltalk (now available in both commercial and free versions) for his day-to-day work.
>
> Presenter
>
> Stephen Travis Pope is a software engineer and composer based in Santa Barbara. He taught at UCSB (in the departments of Music and Computer Science, and the Graduate Program in Media Arts and Technology) from 1996-2010, and is now known as FASTLabInc.com (for multimedia software) and HeavenEverywhere.com (for music and film).
>
> ----------------------------
>
> Outline
> Introduction
> Demo
> What Is Smalltalk?
> The Language
> The Libraries
> The Environment
> A Brief History
> Smalltalk Leaves PARC
> C++, ObjectiveC and Java
> Smalltalk Today
> Why I Still Use Smalltalk
>
> Introduction
> Overview
> My background in 1981
>
> Demo
> Counter Example with GUI
>
> What Is Smalltalk?
> Language
> Libraries
> Tools, IDE
> Methodology
> Note: "OO is not Enough!"
>
> The Language
> Terse, expressive, readable
> Everything is an Object (really, everything)
> All activity is message-passing
> Trivial syntax, no reserved words
> true, false, nil, self, super, thisContext
> Control structures written in Smalltalk
> Messages to Booleans, Blocks, etc.
> Means they're extensible (!)
> aCollection do: [ :item | Transcript show: item printString]
> Keyword syntax - messages with > 1 argument alternate keyword/argument…
> anArray at: 1  (getter)
> anArray at: 1 put: 'hello'  (setter)
> r := Rectangle top: 1 left: 1 width: 10 height: 10
> Fully Reflective
> (isKindOf:, understands:, …)
> Compiles to a virtual machine language (normally)
>
> The Libraries
> Everything is an Object
> Polymorphism (heavily used)
> E.g., many implementations of at:put: or +
> OO Design Patterns
> Composite, Adaptor, Singleton, MVC, Visitor, …
> Magnitudes, Collections and Streams
> Graphics and Windows
> All classes are extensible (!)
> Example: aString asPath: sepChar
> Try this in C++ or ObjC...
>
> The Methodology
> OO A/D Methods (OBA)
> OO Design Patterns
> Domain-specific Languages
>
> The Tools
> Window-based GUI and Tools
> Multi-desktop (Projects)
> Browsers, Inspectors and Editors
> Rules of Reuse (Programmer as Reader project)
> Pluggable look-and-feel
> Code-sharing tools: change-lists, Envy
> Open-source Tools (!!)
>
> Tool Demo
> Browsers
> Code in DB package, class, category, method
> Compile 1 method at a time
> "Programmer as Reader" facilities
> Senders, implementors, class/variable references
> Flavors of browsers: protocol, hierarchy, namespace, etc.
> Debugger
> Just like the browser(!!!)
> Fix and continue
> CASE Tools
> Change lists, packages, projects
>
> The Environment
> VI/VM Architecture
> VI like APL workspaces, LISP core files
> Snapshot/restart (relation to BOSS files)
> VM - "cheat but don't get caught"
> Thinks it's an operating system
> "The OS is only there for all the things you forgot to put in the language"
> Scheduler, file system, network drivers, etc. in Smalltalk
> Light-weight processes and scheduler in Smalltalk
> Simple VM: Byte-code interpreter
> High-performance VM: JIT Optimizing
> Native code caches
> Polymorphic inline caches
>
> Other Novel Aspects
> Other languages in Smalltalk (Lisp, Prolog, etc.)
> Compiler frameworks
> Smalltalk-as-OS (running on naked hardware)
> OOP and AI
> Frames/objects, rules, logic, etc.
> Early "block diagram compilers"
>
> Smalltalk and Multimedia
> Early Computer Graphics
> BitBLT pixel graphics
> SPIM and graphics contexts
> Music with Smalltalk
> Real-time FM on the Alto
> Real-time scheduling for MIDI
> Music notations in Smalltalk
>
> Early (1980s) Applications
> ThingLab
> ThinkerToy
> Graphical programming
> Analyst
> AI, Multimedia, Graphical Programming
> Chinese Temple Design ToolKit
> Models of process
> MOBY, DoubleTalk
> Petri Nets
> ObjectWorks/C++
> ST-like IDE for C++
>
> Early (1980s) Music Applications
> HyperScore ToolKit/MODE
> Music composition and notations
> SoundKit
> Music signal processing
> Kyma
> Cross-compilation for a DSP
> Harmonic Analysis Tool
> Chord/Harmony analysis expert system
> Smoke
> Flexible music representation language
>
> The Risks
> Breaking the system (really easy)
> Also easy to recover
> VI Bloat
> Strippers, Whittlers
> Incompatible changes
> Tools for merging packages
>
> A Brief History
> Flex and Smalltalk-72
> Simula, Sketchpad, Augment and other precursors
> PARC Learning Research Group
> Smalltalk-76 and the Xerox Alto
> Mostly ASCII
> Personal Dynamic Media Paper in "Computer" 3/1977
> Smalltalk-78
> Browser, NoteTaker project
> Smalltalk-80 V1
> 3rd complete rewrite before they had an installed user base
> LRG now Systems Concepts Lab
> 1981 Byte Magazine Special Issue
> Context: Xerox Alto, MIT LISP Machines
> Smalltalk-80 V2
> Incorporated feedback from first-round users
> MVC used for all GUIs
> Late-80s changes
> Exceptions and I/O
> Host window system interface
> DLLCC
> Compiler Framework
> Namespaces, Packages
> ANSI Smalltalk (1993-98)
>
> Smalltalk Leaves PARC
> Getting Smalltalk to Users
> (Porting to non-Xerox hardware)
> Early licensees: Apple, H-P, Tektronix
> Tex 44404 demo - http://www.youtube.com/watch?v=8yxCJfayW-8
> Berkeley SOAR and SPARC design
> XSIS and the Analyst
> ParcPlace Systems (spun off in 1988)
> Digitalk's Smalltalk/V on early PCs (1984)
> These merge in 1995
> GNU Smalltalk (free)
>
> C++, ObjectiveC and Java
> C with Classes - hybrid language; class is like a struct
> ObjectiveC - C + Smalltalk in 1 program
> Java ("what a shame they didn't copy everything.")
>
> Why it failed (in the 1990s)
> Price (relative to what?)
> Perception of compute demands (requires graphics and mouse, lots of RAM, …)
> Performance Issues
> VM performance and optimization
> GC overhead and generation scavenging
> Performance much better on Xerox machines
> VM in microcode
> Tagged architecture
> Not upward compatible with anything
> "Everything you know is wrong"
> C hybrids appeared to get you most of the way there…
>
> Smalltalk Implementations
> Cincom Smalltalk (commercial)
> ObjectStudio (commercial)
> Squeak (free, based on Apple V1)
> Pharo (stripped Squeak)
>
> Coral (for scripting)
> Amber (runs on JavaScript VM)
> Bistro (runs on JavaScript VM)
> S# (runs with .NET)
>
> Smalltalk/X
> VisualAge
> Dolphin
>
> Smalltalk Today
> DLLCC and Slang
> Seaside (for web apps)
> Gemstone (scalable OODB)
>
> STIC/ESUG
> Smalltalk.org
> Squeak community
>
> Relatives/Derivatives
> ObjectiveC
> Self (no classes, VM advances)
> Lively (JavaScript libraries and tools)
> F-Script
> Strongtalk
> SuperCollider
>
> Reasons Why I Still Use Smalltalk
> 3 top reasons: Productivity, productivity and productivity
> Language features
> Simplicity, scalability, stability
> Keyword syntax (!!)
> Library features
> Comprehensive, consistent, stable, extensible (!!)
> All source close at hand
> Pluggable L&F
> Development Environment
> Open tools (!!!)
> Integrated, cross-platform
> Fix/restart in debugger (!!!)
> VI/VM architecture
> Code lives in DB, easy change management, publication, crash recovery, etc. (!)
>
> Why I complain about other languages
> "Object-Oriented is not Enough" (Goldberg & Pope 1989 article)
> “The Computer Revolution Hasn’t Happened Yet“ (A Kay quote)
> Issues center on libraries and tools rather than the languages themselves
> Lively for JavaScript
> ?? for Python
>
> What I do use (other than Smalltalk)
> C++
> Standard, fast
> XCode
> Python
> Hybrid language
> Good libraries (inconsistent, non-OO)
> Poor tools
> Good integration with C/C++ via ctypes
> Curse of version 3
> Octave/MATLAB
> Terse, good matrix support
> Extensive code base
>
> --
>
>   Stephen Travis Pope   Santa Barbara, California, USA    http://HeavenEverywhere.com
>
>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org

pastedGraphic.tiff (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Slides for a talk on "Why I Still Use Smalltalk" for comments

Stephen Pope

Hi there Hannes (Grüss Gott!),


I just updated the PDF file on-line with the final version of the slides.

        http://HeavenEverywhere.com/STP_ST80_Talk_Slides.pdf

There'll be a video of the presentation in a few days.


My recent work has been using the Siren framework for building music databases for search engines and similarity matching.

Here's the software

        http://FASTLabInc.com/Siren

Here's a recent picture of a music analysis and feature vector manager

        http://FASTLabInc.com/Siren/SirenMAK.jpg

Here's a brand-new picture of an iTunes database clean-up expert system

        http://FASTLabInc.com/Siren/Siren_iTunes.jpg

Here's the trailer of my recent film,

        http://HeavenEverywhere.com/Secrets

and a sampler of older pieces made with Smalltalk,

        http://HeavenEverywhere.com/RitualAndMemory/Tour

       
stp

--

Stephen Travis Pope   Santa Barbara, California, USA    http://HeavenEverywhere.com



-

On Jan 17, 2013, at 2:21 AM, H. Hirzel wrote:

> Hello
>
> FYI,
>
> The following presentation was sent to the Pharo list this month and I
> think it is interesting for Cuis as well as it is a distribution
> linked to Squeak. The presentation  has a lot of screen shots taken
> from Squeak and Pharo.
>
> Stephen, I'd like to know more about what you are using Smalltalk
> these days, any links?
>
> Regards
>
> Hannes
>
> P.S.
> Please include
> [hidden email]
> in your replies as he is probably not on this list and he invited comments.
>
>
> ---------- Forwarded message ----------
> From: Stephen Travis Pope <[hidden email]>
> Date: Sat, 5 Jan 2013 17:21:44 -0800
> Subject: [Pharo-project] Slides for a talk on "Why I Still Use
> Smalltalk" for comments
> To: vwnc <[hidden email]>, [hidden email]
>
>
> Hello all,
>
> I've put together a set of slides for a 90-minute lecture/demo on "Why
> I Still Use Smalltalk" to be given to a colloquium of graduate media
> arts and technology students at UCSB (where I taught from 1996-2010).
> I up-loaded the slides for your comments; there's a 19-page PDF file
> (6 slides per page) at,
>
> http://HeavenEverywhere.com/STP_ST80_Talk_Slides.pdf
>
> Your comments/questions are welcome...
>
> (The demo at the start will be using VisualWorks to build the
> canonical up/down counter.)
>
> (Slide 12 is me and the head of the composition department at UCSB,
> both in 1984, for context.)
>
> stp
>
> --
>
> Stephen Travis Pope   Santa Barbara, California, USA
> http://HeavenEverywhere.com
>
> Begin forwarded message:
>
>> From: Stephen Travis Pope <[hidden email]>
>> Date: October 26, 2012 12:47:55 PM PDT
>> To: vwnc <[hidden email]>
>> Cc: Stephen Travis Pope <[hidden email]>
>> Subject: Outline of a talk on "Why I Still Use Smalltalk" for comments
>>
>>
>> Hello all,
>>
>> I'm planning to give a colloquium called "Why I Still Use Smalltalk" for the graduate students at UCSB, and wanted to solicit your comments on the outline.
>>
>> stp
>>
>> --------------------
>>
>> Why I Still Use Smalltalk
>>
>> Graduate Colloquium
>> UCSB Graduate Program in Media Arts and Technology
>> November, 2012
>> Stephen Travis Pope, [hidden email]
>>
>> --------------------
>>
>> Proposal
>>
>> Title: Why I Still Use Smalltalk
>>
>> Abstract
>>
>> The Smalltalk-80 programming system is celebrating its 30th birthday this year (Smalltalk-80 version 2 was released and documented in a series of books in 1982). The system was the first popular software development tool that incorporated a number of features we take for granted today, including an object-oriented programming language, a comprehensive open-source class library, an integrated window-based development environment, and a cross-platform virtual-machine-based delivery system. Nevertheless, Smalltalk has nowhere near the installed base or the mindshare of lesser peers such as C++ or Java, or more modern descendants such as Python or Ruby. This talk will introduce the Smalltalk system's language, libraries and tools, outline its history, and discuss the reasons why it is not more widely used. Several aspects of the Smalltalk system make it especially good for developing multimedia applications, and these will be introduced with examples from the last 30 years. The presenter was among the very first to use Smalltalk for real-world applications, and worked on the Smalltalk team at Xerox PARC and their spin-off ParcPlace Systems from 1986-94. He still uses Smalltalk (now available in both commercial and free versions) for his day-to-day work.
>>
>> Presenter
>>
>> Stephen Travis Pope is a software engineer and composer based in Santa Barbara. He taught at UCSB (in the departments of Music and Computer Science, and the Graduate Program in Media Arts and Technology) from 1996-2010, and is now known as FASTLabInc.com (for multimedia software) and HeavenEverywhere.com (for music and film).
>>
>> Stephen Travis Pope   Santa Barbara, California, USA    http://HeavenEverywhere.com
>>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org

pastedGraphic.tiff (3K) Download Attachment