Why Smalltalk James Robertson Independent Consultant Smalltalk Evangelist

Why Smalltalk James Robertson Independent Consultant Smalltalk Evangelist

Why Smalltalk James Robertson Independent Consultant Smalltalk Evangelist http://www.jarober.com Friday, December 9, 2011 Origins • Xerox PARC • Where all the other good stuff came from • Designed to be easy to learn Friday, December 9, 2011 Origins • Message Passing: You tell objects what to do • Easy to read syntax: More like human language • Complexity in the library, not in the language Friday, December 9, 2011 What’s Cool About It? Friday, December 9, 2011 Maturity • Smalltalk has been in widespread use since the mid ‘80s • Multiple implementations • Commercial • Open Source • It’s influence is felt beyond the Smalltalk community Friday, December 9, 2011 Influences • Sun almost picked Smalltalk • ParcPlace was too greedy for license fees • Instead, Oak became Java, with major influences from Smalltalk Friday, December 9, 2011 Influences • Java • Class Based • Single Inheritance • VM/byte code system • Portability Friday, December 9, 2011 Influences • Erlang • Joe Armstrong originally wanted to use Smalltalk • At the time, it was not ready for what he needed, and the vendors were slow to respond • Developed the concurrency model for Erlang around message passing • Erlang itself has gone on to influence concurrency models in language design Friday, December 9, 2011 Influences • Dart • Developed by Gilad Bracha and Lars Bok • Both have delivered Smalltalk derived systems (Newspeak, OOVM) Friday, December 9, 2011 Influences • Dart • Class Based • Single Inheritance • Optional Typing (Dynamic) • Supports Named Parameters (readability) • Built to Support Better Tooling Friday, December 9, 2011 Dart Example Dart Smalltalk aMap. aMap at: 'one', at: ‘one’ ifAbsent: ()=> ifAbsent: [someException raise] throw SomeException; Friday, December 9, 2011 Influences • Unit Testing/XP/Test Driven Development • Originated in Smalltalk (C3 Project) • SUnit (father of all unit testing frameworks) • Now industry standard Friday, December 9, 2011 Influences • Test First has been an implicit part of Smalltalk • Explore in a workspace • Then commit to code • SUnit formalized the process • Now seen as a best practice Friday, December 9, 2011 A Small Example Friday, December 9, 2011 A Small Example • BottomFeeder RSS Aggregator • Developed in Smalltalk • Happened by accident • I needed a way to verify the RSS feed for my blog (also in Smalltalk) • .... Started in a Workspace Friday, December 9, 2011 Influences • The Web • It’s all about message passing • Send a message to a system • Get a response • Loosely typed • Respond in some way to all requests • Don’t just fail Friday, December 9, 2011 So Why Smalltalk Now? Friday, December 9, 2011 Exploration • Nothing Supports Exploratory Programming Better • Quite Often, you don’t understand the problem fully • You want to try multiple approaches • You don’t want to feel locked in Friday, December 9, 2011 Exploration Ad Hoc Coding Explore without Committing Friday, December 9, 2011 Exploration • This is how Most Smalltalk Developers Work • Write Some code to flesh out an idea • Tw i d d l e • Rinse/Repeat • Commit to a design when it seems promising Friday, December 9, 2011 Exploration Managing State in Your Head is Hard Smalltalk Doesn’t Require That The Debugger is a Browser ... That lets you debug code Friday, December 9, 2011 Replacement • No System Lasts Forever • Every Large System Evolves • Smalltalk makes it easy to rip out a subsystem • Dynamic typing makes it easier to support interfaces Friday, December 9, 2011 Options • There are a wide variety of Implementations • Commercial • Open Source • Easy to download and check out Friday, December 9, 2011 Commercial Options • Cincom Smalltalk • http://www.cincomsmalltalk.com • VisualWorks • ObjectStudio Friday, December 9, 2011 Commercial Options • Instantiations • http://www.instantiations.com/ • VA Smalltalk Friday, December 9, 2011 Commercial Options • VMWare (Gemstone) • http://www.gemstone.com/products/ gemstone • Gemstone/S • GLASS Friday, December 9, 2011 Commercial Options • Object-Arts • http://www.object-arts.com/ • Dolphin Smalltalk Friday, December 9, 2011 Commercial Options • eXept • http://www.exept.de/en/products/smalltalk- x/stx-overview • Smalltalk/X Friday, December 9, 2011 Open Source Options • Squeak • First OSS Smalltalk, derived from the original ST 80 • http://squeak.org Friday, December 9, 2011 Open Source Options • Pharo • Fork of the Squeak Project • Oriented at Professionals • http://www.pharo-project.org/home Friday, December 9, 2011 Open Source Options • Amber • Smalltalk running on Javascript • http://www.amber-lang.net Friday, December 9, 2011 Open Source Options • Redline Smalltalk • Smalltalk on the JVM • http://www.redline.st Friday, December 9, 2011 Other Resources • Smalltalk Industry Council • http://stic.st • Annual Conference, next one in March 2011 • ESUG • http://esug.org • Annual Conference, next one in Fall 2012 Friday, December 9, 2011 Other Resources • My Blog • http://www.jarober.com • Largely Smalltalk Focused Friday, December 9, 2011 Other Resources • Independent Misinterpretations • Weekly Podcast • Smalltalk/Dynamic Language Focused • http://www.jarober.com/blog/im.ssp • Look for it on iTunes Friday, December 9, 2011 Other Resources • Smalltalk 4 U • Screencasts 3 times a week • http://www.jarober.com/blog/st4u.ssp • Look for it in iTunes and Facebook Friday, December 9, 2011 Questions? • James Robertson • Website: http://www.jarober.com • Email: [email protected] • Twitter: @jarober • Facebook: http://www.facebook.com/jarober • YouTube: http://www.youtube.com/jarober • Phone: 410 952-0471 Friday, December 9, 2011.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    37 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us