Alan Kay The Father of ObjectOriented Programming Chris

Alan Kay The Father of Object-Oriented Programming Chris Rees

Overview • The Turing Award • ACM • Alan Kay • • Background Goals Early Work Awards • Smalltalk

Turing Award • ACM’s most prestigious award • Who’s who of CS • Named after Alan Mathison Turing • Considered father of theoretical computer science and artificial intelligence • Award comes with $250, 000 as of 2007 • Funded by IBM and Google

Turing Award • Given out annually • Since 1966 • First recipient – Alan J. Perlis • Given to individuals who contribute greatly to the CS field • Groups working together also receive award • Highest distinction in computing • Nobel prize of computing

ACM • Association for Computing Machinery • Founded in 1947 • World’s first scientific and education computing society • HQ in NY • Over 92, 000 members • Publications available online

Alan Kay • May 17, 1940 • Known for: • • Dynabook OO Programming, Smalltalk Etoys GUI • “The best way to predict the future is to invent it”

About Alan • Worked for Xerox PARC • Pioneered many of the ideas at the root of contemporary object-oriented programming languages • Conceived Smalltalk • Led the team that programmed the langauge • Worked on the math behind the language • President of the Viewpoints Research Institute

Xerox PARC • Palo Alto Research Center • Founded 1970 • Known for: • • WYSIWYG GUI Ethernet Smalltalk • Three Turing Award recipients

Viewpoints Research Institute • Nonprofit benefit organization • Working to improve “powerful ideas education” to the world’s children • Working to advance the state of systems research and personal computing • Worked on Etoys – fully programmable graphical environment for teaching programming to children • Worked on Tile. Script – Interactive Java. Script programming environment • Worked on LYSP – tiny Lisp implementation

Goals • Make computing/programming simple • Make computing prominent in education • Bring computing to children in general

Early Life/Work • Bachelor’s in Mathematics and Molecular Biology • University of Colorado at Boulder • Master’s and Ph. D. • University of Utah College of Engineering • Worked with Ivan Sutherland • Created Sketchpad • Helped shape GUI • Learned Logo • Dialect of Lisp for Education

Awards • Ud. K 01 -Award for Pioneering GUI • Turing Award for work on Smalltalk • Led team that created Smalltalk • Smalltalk helped create standard GUI • Wrote math behind Smalltalk • Dan Ingalls wrote basics of Smalltalk and how it should work • Left lasting impression on Computer Science community

Main Work • Dynabook • Smalltalk • GUI • Etoys • Focus on education and children

Dynabook • Now a laptop, slate, tablet • Near-eternal battery life • Software for bringing digital media to children • Usable by all age groups but designed for kids • “A personal computer for children of all ages”

Etoys • Built on Smalltalk • Intended to teach children how to program • Object-oriented language • Developed at Disney • Squeak implementation of Smalltalk • Supports constructionist learning

Smalltalk Background • First object-oriented language • Development began 1969 • Major releases: 1971, 1972, 1976, 1980 • Version most often referred to is Smalltalk-80 • Simplistic language, few reserved words • Ex: • C# - Printer. on(); • C# - Box. height(10); Smalltalk – Printer on. Smalltalk – Box height: 10.

Smalltalk History • 1971 – Created as a bet • Dan Ingalls • Created because of a bet • 1972 – Used for research • Influenced development of the Actor model • 1976 – Included most now-familiar tools • Class library • Code browser/editor • 1980 – Metaclasses • First variant of Smalltalk available outside PARC

Smalltalk Basics • Dynamic typing • Like PHP, Lisp • Influenced by Lisp, Simula, Logo, Sketchpad • Influenced future languages • Objective-C, C++, Java, PHP, Python, Perl • Language designed for educational use • Made personal computing simpler/easier • Included visual programming environment • Revolutionary for its time

Smalltalk • Unified objects and messages • “Everything is an object” • Used to develop Etoys • Platform for teaching programming to children • Variants: • Squeak – Open source. Still very popular. Supported by large community/developers, mostly from original Smalltalk community • Visual. Works – Widely used. Bought and supported by Cincom. New versions each year since 1999

Smalltalk • Built to handle various programming styles • Designed to be clear and understandable for children • “Programming should be a matter of …” • “Children should program in …” • Named as a reaction against “Indo. European god theory” • Odin, Zeus, Thor. Not functional • “If Smalltalk ever did anything nice, people would be pleasantly surprised”

Code Basics • Transcript show: ‘Hello World’. • Prints string literal ‘Hello World’ to an open Transcript window • result : = a > b if. True: [ 'greater' ] if. False: [ 'less or equal' ] • Prints if the value a is greater or less than/equal to the value of b • Variable Declaration • Var : = val or Var : =‘val’

Code Basics • Strings • ‘Hello world’ • Characters • $A • Arrays • #(1 2 3 4) • Byte. Array • #[1 2 3 4]

Code Examples • 2 raised. To: 4 • a. Big. Number : = 42 factorial • Rectangle height: 100 width: 400 • | window : = Window new. window label: ‘Hello’. window open • ‘Hello world’ index. Of: $o starting. At: 6
- Slides: 23