alan kay

23
Alan Kay The Father of Object-Oriented Programming Chris Rees

Upload: iria

Post on 22-Feb-2016

63 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Alan Kay

Alan KayThe Father of Object-Oriented Programming

Chris Rees

Page 2: Alan Kay

Overview

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

• Smalltalk

Page 3: Alan Kay

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

Page 4: Alan Kay

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

Page 5: Alan Kay

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

Page 6: Alan Kay

Alan Kay

• May 17, 1940• Known for:• Dynabook• OO Programming, Smalltalk• Etoys• GUI

• “The best way to predict the future is to invent it”

Page 7: Alan Kay

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

Page 8: Alan Kay

Xerox PARC

• Palo Alto Research Center• Founded 1970• Known for:• WYSIWYG• GUI• Ethernet• Smalltalk

• Three Turing Award recipients

Page 9: Alan Kay

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 TileScript – Interactive JavaScript

programming environment• Worked on LYSP – tiny Lisp implementation

Page 10: Alan Kay

Goals

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

Page 11: Alan Kay

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

Page 12: Alan Kay

Awards

• UdK 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

Page 13: Alan Kay

Main Work

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

Page 14: Alan Kay

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”

Page 15: Alan Kay

Etoys

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

• Supports constructionist learning

Page 16: Alan Kay

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(); Smalltalk – Printer on.• C# - Box.height(10); Smalltalk – Box height: 10.

Page 17: Alan Kay

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

Page 18: Alan Kay

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

Page 19: Alan Kay

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• VisualWorks – Widely used. Bought and supported by

Cincom. New versions each year since 1999

Page 20: Alan Kay

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 “IndoEuropean god

theory”• Odin, Zeus, Thor. Not functional

• “If Smalltalk ever did anything nice, people would be pleasantly surprised”

Page 21: Alan Kay

Code Basics

• Transcript show: ‘Hello World’.• Prints string literal ‘Hello World’ to an open Transcript

window• result := a > b

ifTrue:[ 'greater' ] ifFalse:[ 'less or equal' ]

• Prints if the value a is greater or less than/equal to the the value of b

• Variable Declaration• Var := val or Var :=‘val’

Page 22: Alan Kay

Code Basics

• Strings• ‘Hello world’

• Characters• $A

• Arrays• #(1 2 3 4)

• ByteArray• #[1 2 3 4]

Page 23: Alan Kay

Code Examples

• 2 raisedTo: 4• aBigNumber := 42 factorial• Rectangle height: 100 width: 400• | window |

window := Window new.window label: ‘Hello’.window open

• ‘Hello world’ indexOf: $o startingAt: 6