230 likes | 633 Views
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
E N D
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 TileScript – Interactive JavaScript 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 • 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
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(); Smalltalk – Printer on. • C# - Box.height(10); 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 • VisualWorks – 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 “IndoEuropean 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 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’
Code Basics • Strings • ‘Hello world’ • Characters • $A • Arrays • #(1 2 3 4) • ByteArray • #[1 2 3 4]
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