STEPS 2012 Progress and Final NSF Report
Total Page:16
File Type:pdf, Size:1020Kb
STEPS Toward the Reinvention of Programming, 2012 Final Report Submitted to the National Science Foundation (NSF) October 2012 (In random order) Yoshiki Ohshima, Dan Amelang, Ted Kaehler, Bert Freudenberg, Aran Lunzer, Alan Kay, Ian Piumarta, Takashi Yamamiya, Alan Borning, Hesam Samimi, Bret Victor, Kim Rose VPRI Technical Report TR-2012-001 Viewpoints Research Institute, 1025 Westwood Blvd 2nd flr, Los Angeles, CA 90024 t: (310) 208-0524 ! 2012 REPORT ! STEPS Toward Expressive Programming Systems ! !"#$%&'(%'#)*+',&-'(./# ! 01# 23(#,4(56-#6,5',7#869:&;&#<:9:&-4=#>4(#"-'?4(@=#A'5#B4':?',=#C',.#D,'E5'(0',@=# ",4(#FE(G',=#"?4(#B41=#34(#H&E-4,.4=#A4;49:T-4-&14=#"?4(#C6,(&(@=#I'94-# $4-&-&=#C,'.#J&%.6,=#B&-#K69'L# J3)MH<3NA$#K)$)"KOI#3N$A3APA)# # # LA:'9'#4,'#.:'#$A)H$#,'9'4,%:',9#Q6,#.:'#1'4,#RSTRU#D6,#4#%6-+?'.'#?&9.&(@# 6Q#.:'#+4,.&%&+4(.9#6V',#.:'#?'(@.:#6Q#.:'#+,6W'%.#9''#.:'#9'%.&6(#6(#.:'# N$D#9&.'#X:&%:#%6(.4&(9#.:&9#,'+6,.U# TABLE OF CONTENTS — The STEPS Project for the General Public Summary of the STEPS project ! Origin ! STEPS aims at personal computing ! What does STEPS look like? ! STEPS is a “science project” ! General approach ! “T-shirt programming” ! Overall map of STEPS ! General STEPS results ! Making “runnable maths” ! Assessing STEPS Summary of STEPS research in 2012 ! Inventing & building a language for STEPS “UI and applications”, and rewriting Frank in it ! Producing a workable “chain of meaning” that extends from the screen all the way to the CPU ! Inventing methods that create automatic visualizers for languages created from metalanguages ! Continuing the start of “What vs How” programming via “Cooperating Languages and Solvers” Reflections on the STEPS Project to Date References Outreach Activities for final year of NSF part of the STEPS project Publications for the NSF part of the STEPS project Appendix I: KScript and KSWorld Appendix II: Making Applications in KSWorld ——— ! VPRI Techincal Report TR-2012-001 1 !"#$%!&'%$'()*#+,$-)($!"#$.#/#(01$'2314+$ 3Q#%6-+E.&(@#&9#&-+6,.4(.YQ6,#54&?1#?&Q'=#?'4,(&(@=#0E9&('99=#(4.&6(4?#5'Q'(9'=#W609=#4(5# -6,'Y.:'(#"#$%&'$'&()%*!$+($,-&,.!-/01#'&,.#&9#'*.,'-'?1#&-+6,.4(.U#D6,#'*4-+?'=#-4(1# 96Q.X4,'#919.'-9#.6541#4,'#-45'#Q,6-#-&??&6(9#.6#:E(5,'59#6Q#-&??&6(9#6Q#?&('9#6Q#+,6Z @,4-#%65'#.:4.#&9#.66#?4,@'=#%6-+?'*#4(5#Q,4@&?'#.6#0'#&-+,6V'5=#Q&*'5=#6,#&(.'@,4.'5U# 2<('#:E(5,'5#-&??&6(#?&('9#6Q#%65'#4.#[S#?&('9#+',#+4@'#&9#[SSS#066;9#6Q#\SS#+4@'9#'4%:]# A:&9#&9#0'16(5#:E-4(#9%4?'U7# M:4.# &Q# .:&9# %6E?5# 0'# -45'# ?&.',4??1# TSSS# .&-'9# 9-4??',Y6,# -6,'^# "(5# -45'#-6,'# +6X',QE?=#%?'4,=#9&-+?'=#4(5#,60E9.^#A:&9#X6E?5#0,&(@#6('#6Q#.:'#-69.#&-+6,.4(.#.'%:Z (6?6@&'9#6Q#6E,#.&-'#Q,6-#4#9.4.'#.:4.#&9#4?-69.#6E.#6Q#:E-4(#,'4%:Y4(5#54(@',6E9?1# %?69'#.6#0'&(@#6E.#6Q#%6(.,6?Y04%;#&(.6#:E-4(#9%4?'U# "(# 4(4?6@1# Q,6-# 54&?1# ?&Q'# &9# .6# %6-+4,'# .:'# @,'4.# +1,4-&5# 6Q# _&G4=# X:&%:# &9# -69.?1# 96?&5#0,&%;9#+&?'5#6(#.6+#6Q#'4%:#6.:',#X&.:#V',1#?&..?'#E940?'#9+4%'#&(9&5'=#.6#4#9.,E%.E,'# 6Q#9&-&?4,#9&G'#-45'#Q,6-#.:'#94-'#-4.',&4?9=#0E.#E9&(@#.:'#?4.',#&(V'(.&6(#6Q#.:'#4,%:U# A:'# ,'9E?.# X6E?5# 0'# -69.?1# E940?'# 9+4%'# 4(5# ,'`E&,'# ,6E@:?1# TaTSSS#.:'#(E-0',#6Q# 0,&%;9U#3(#6.:',#X6,59=#$2!2&3)!$,+!-/01%)4&'*!&,-5)$2)6!$5-7&')-'#5$%!+)2&.,!+/0&,$')2!0$')5&8 $%29# A:'# !$A)H$# A6X4,5# )*+,'99&V'# H,6@,4--&(@# $19.'-9/# +,6W'%.# &9# .4;&(@# .:'# Q4-&?&4,# X6,?5#6Q#+',96(4?#%6-+E.&(@#E9'5#01#-6,'#.:4(#4#0&??&6(#+'6+?'#'V',1#541Y%E,,'(.?1# ,'`E&,&(@#:E(5,'59#6Q#-&??&6(9#6Q#?&('9#6Q#%65'#.6#-4;'#4(5#9E9.4&(Y4(5#9E09.4(.&4??1# ,'%,'4.&(@# &.# E9&(@# ('X# +,6@,4--&(@# .'%:(&`E'9# 4(5# !4,%:&.'%.E,'9/# &(# 5,4-4.&%4??1# 9-4??',# 4-6E(.9#6Q#+,6@,4-#%65'U#A:&9#&9#-45'#+699&0?'#01#('X#45V4(%'9#&(#5'9&@(=# +,6@,4--&(@=#+,6@,4--&(@#?4(@E4@'9=#919.'-9#6,@4(&G4.&6(=#4(5#.:'#E9'#6Q#9%&'(%'#.6# 4(4?1G'#4(5#%,'4.'#-65'?9#6Q#96Q.X4,'#4,.&Q4%.9U## ! ! ! VPRI Techincal Report TR-2012-001 2 %2550(6$)7$,"#$%!&'%$'()*#+,$ Origin—! .:'#$A)H$#,'9'4,%:#+,6W'%.#4,69'#Q,6-#49;&(@#'-04,,499&(@#`E'9.&6(9#406E.#-4(1#919.'-9#2&(Z %?E5&(@#6E,#6X(7#9E%:#49b#!>6'9#.:&9#919.'-#:4V'#-E%:#.66#-E%:#%65'#4(5#&9#&.#-'99&',#.:4(#6E,#&(.E&Z .&6(#X:&9+',9^/#"?-69.#4?X419#.:'#4(9X',#X49#!1'9]/#M'#X4(.'5#.6#X,&.'#-E%:#9-4??',#%65'=#:4V'#&.#0'# -6,'#E(5',9.4(540?'#4(5#,'4540?'=#4(5#&Q#+699&0?'=#.6#:4V'#&.#0'#!+,'..1/=#'V'(#!0'4E.&QE?/U## STEPS Aims At “Personal Computing”—$A)H$#.4;'9#49#&.9#+,&-'#Q6%E9#.:'#51(4-&%#-65'?&(@#6Q#!+',Z 96(4?#%6-+E.&(@/#49#-69.#+'6+?'#.:&(;#6Q#&.=#?&-&.&(@#&.9'?Q#.6#.:'#;&(59#6Q#E9',#&(.',4%.&6(9#4(5#@'(',4?# 4++?&%4.&6(9#.:4.#4,'#%6(9&5','5#!9.4(54,5/Y.:&9#%:6&%'#&9#+4,.?1#.6#Q4%&?&.4.'#@,699#%6-+4,&96(9#0'.X''(# .4,@'.9#4(5#-65'?9U#$6b#4#_P3#6Q#!RU[>/#V&'X9#6Q#@,4+:&%4?#60W'%.9=#X&.:#40&?&.&'9#.6#-4;'#4(5#9%,&+.#4(5# ,'45#4(5#9'(5#4(5#,'%'&V'#.1+&%4?#56%E-'(.9=#'-4&?9#4(5#X'0#+4@'9#-45'#Q,6-#.'*.=#+&%.E,'9=#@,4+:&%4?# 60W'%.9=#9+,'459:''.#%'??9=#96E(59=#'.%U=#+?E9#4??#.:'#5'V'?6+-'(.#919.'-9#4(5#E(5',?1&(@#-4%:&(',1b# • H,6@,4-9#4(5#"++?&%4.&6(9#c#X6,5#+,6%'996,=#9+,'459:''.=#3(.',('.#0,6X9',=#6.:',#+,65E%.&V&.1#$M# • P9',#3(.',Q4%'#4(5#O6--4(5#F&9.'(',9#c#X&(56X9=#-'(E9=#4?',.9=#9%,6??#04,9#4(5#6.:',#%6(.,6?9=#'.%U# • _,4+:&%9#d#$6E(5#)(@&('#c#+:19&%4?#5&9+?41=#9+,&.'9=#Q6(.9=#%6-+69&.&(@=#,'(5',&(@=#94-+?&(@=#+?41&(@## • $19.'-9#$',V&%'9#c#5'V'?6+-'(.#919.'-=#54.4049'#`E',1#?4(@E4@'9=#'.%U# • $19.'-9#P.&?&.&'9#c#Q&?'#%6+1=#5'9;#4%%'996,&'9=#%6(.,6?#+4('?9=#'.%U# • F6@&%4?#F'V'?#6Q#<$#c#'U@U#Q&?'#-4(4@'-'(.=#3(.',('.#4(5#('.X6,;&(@#Q4%&?&.&'9=#'.%U# • I4,5X4,'#F'V'?#6Q#<$#c#'U@U#-'-6,1#-4(4@',=#+,6%'99#-4(4@',=#5'V&%'#5,&V',9=#'.%U# What Does STEPS Look Like?—3.#?66;9#4(5#4%.9#?&;'#Q4-&?Z &4,Y0E.# -6,'# &(.'@,4.'5Y+',96(4?# %6-+E.&(@]# 3.# :49# !E(&V',94?# 56%E-'(.9/# .:4.# %4(# -65'?# 4??# 56%E-'(.# Q6,-9=#4#E9',#&(.',Q4%'#4E.:6,&(@#4++,64%:#.:4.#&9#?&;'#4(# '*.'(5'5# Q6,-# 6Q# +,'9'(.4.&6(# 4E.:6,&(@=# 4(5# 4(# &(5'Z +'(5'(.# ,'+',.6&,'# 6Q# X419# .6# Q&(5=# Q'.%:=# 9'(5=# 94V'=# 0,645%49.=#'.%U=#.:'#56%E-'(.9U#A:&9#9E09E-'9#.:'#(6,-4?# 9%4..','5#!+,65E%.&V&.1#9E&.'/#&(.,4%.40?'#9.6V'+&+'9#6Q.'(# +,6V&5'5#&(9.'45#6Q#4#.,E?1#&(.'@,4.'5#919.'-#29''#0'?6X7U! ! “Ribbon-style” GUI with “bubbles” and “spill areas” Presentation at Turing Centenary done in STEPS ! Slide out panel for holding scripts, etc. scripts, holding for panel out Slide ! ! ! Collapsible Panels for all Collapsible panel for showing thumb- Area for making all constructions external resources such as nails of all kinds of documents ! files, email, Internet, etc. ! ! ! ! The STEPS “Cute Frank” General Authoring and Document Interface ! VPRI Techincal Report TR-2012-001 3 STEPS Is A “Science Project”—$A)H$#&9#(6.#4&-'5#4.#+,65E%&(@#4#('X#+,4%.&%4?#4?.',(4.&V'#.6#'*&9.&(@# HO#6+',4.&(@#919.'-9#4(5#4++?&%4.&6(9U#M'#56#X4(.#.6#%,'4.'#4#0/+)%#.:4.#&9#-E%:#-6,'#%6-+4%.=#E(5',Z 9.4(540?'=#'*+?4(4.6,1#4(5#'491#.6#X6,;#X&.:#.:4(#,'(5',&(@9#&(#(6,-4?#%65'U#3(#455&.&6(#X'e5#?&;'#.6# :4V'#.:'#-65'?#V4?&54.'5#01#0'&(@#40?'#.6#,E(#Q49.#'(6E@:#.6#0'#&(.',4%.'5#X&.:#49#4#,'4?#+',96(4?#%6-Z +E.&(@#919.'-U#3(#6.:',#X6,59=#X'#4,'#-69.#&(.','9.'5#&(#X:4.#&.#.4;'9#.6#Q&(5#4(5#,'+,'9'(.#.:'#0)$,&,.# 6Q#4#?4,@'#,E((40?'#919.'-U#A:E9#.:'#$A)H$#+,6W'%.#&9#4#;&(5#6Q#!9%&'(%'#'*+',&-'(./#,4.:',#.:4(#4(#'(@&Z ('',&(@#+,6W'%.#2X:&%:#9.&??#,'`E&,'5#4#%6(9&5',40?'#4-6E(.#6Q#%4,'QE?#96Q.X4,'#'(@&('',&(@#.6#+E??#6QQ7U# D6,#5'.4&?9=#X'#9E@@'9.#?66;&(@#4.#.:'#6,&@&(4?#+,6+694?#fN$Dg#4(5#.:'#1'4,?1#,'+6,.9#f$A)H$#K'+6,.9gU# A:'#6,&@&(4?#+?4(#Q6,#?&('9#6Q#%65'#%6E(.&(@#X49#6(?1#.6#%6E(.#!-'4(&(@Z?45'(/#%65'=#(6.#6+.&-&G4.&6(9U# <E,# 4&-# :','# X49# .6# 9''# X:4.# %6E?5# 0'# 56('# X&.:# 406E.# RS=SSS# ?&('9# 6Q# -'4(&(@Z%65'# Q6,# 'V',1.:&(@# !56X(#.6#.:'#-'.4?/U#A:&9#X6E?5#0'#9?6X#6(#4#%6(V'(.&6(4?#%6-+E.',#0E.#%6E?5#0'#.'9.'5#&(#,'4?Z.&-'# E9&(@#4#9E+',%6-+E.',=#6,#01#455&(@#6+.&-&G4.&6(#%65'#20E.#(6#('X#-'4(&(@97#!6(#.:'#9&5'/U## I6X'V',=#6('#6Q#.:'#'4,?1#-4W6,#+4,.9#6Q#.:'#919.'-#X'#X,6.'#,4(#Q49.',#.:4(#4(.&%&+4.'5=#4(5#.:&9#@6.#E9# .:&(;&(@#406E.#-4;&(@#&.#,E(#,'496(40?1#6(#4#%6(V'(.&6(4?#?4+.6+U#A:&9#X6E?5#,'`E&,'#96-'#6+.&-&G4Z .&6(9=#0E.#X'#.:6E@:.#X'#%6E?5#Q&(5#X419#.6#56#.:&9#X&.:6E.#455&(@#4(#'(6,-6E9#4-6E(.#6Q#%65'U#A:&9#&9# :6X#.:'#?49.#Q'X#V',9&6(9#6Q#$A)H$#X','#0E&?.=#4(5#X'#:4V'#0''(#%6E(.&(@#.:'#6+.&-&G4.&6(#%65'#.:4.# X'eV'#:45#.6#455U# A:&9#!9&,'(e9#96(@/#2.:4.#&9#96#X'??#;(6X(#.6#%6-+E.',&9.97#:49#%,'4.'5#4#+,6W'%.#.:4.#&9#4#0&.#5&QQ','(.#.:4(# .:'#6,&@&(4?#+,6+694?=#4(5#96-'#6Q#.:'#5&QQ','(%'9#4(5#.,45'6QQ9#4,'#5'.4&?'5#4:'45U# General Approach—F66;#Q6,#,))+2#4(5#&5'(.&Q1#:)5,)%2#.:4.#4,'#%?69'#.6#,))+2=#.:'(#-5)$')!%$,.#$.)2#.6#&-Z +?'-'(.# .:'# ;',('?9U# D&(5&(@# ;',('?9# &9# :'4V&?1# 5'9&@(# &(.'(9&V'U# O,'4.&(@# ?4(@E4@'9#%?'4(?1#4(5#,'?4Z .&V'?1#'49&?1#&9#6('#6Q#.:'#%'(.,4?#,))+2=#4(5#96#9'V',4?#6Q#6E,#;',('?9#4,'#4&-'5#4.#'49&?1#%,'4.&(@#('X#?4(Z @E4@'9U# !H6X',QE?# +,&(%&+?'/# :'E,&9.&%9# 4,'# E9'5# .6# 4&5# .:'# 5'9&@(# +,6%'99U# )U@U# 247# !h4.:# M&(9]/=# 207# 0E&?5#.:,6X4X419#.6#!Q&(5#.:'#4,%:'9/=#2%7#!+4,.&%?'9#4(5#Q&'?59/=#4(5#257#!$&-E?4.&(@#'&0)/U#"(5#96#Q6,.:U# “T-Shirt Programming”—<('#+4,.#6Q#.:'#!h4.:#M&(9]/#+,&(%&+?'#&9#5,4X(#Q,6-#.:'#4'9.:'.&%#5'?&@:.#6Q# h4*X'??e9# '`E4.&6(9# 6(# 4# .Z9:&,.Y.:'# 049&%# &5'4# .:4.# &.# &9# 6Q.'(# +699&0?'# .6# Q&(5a&(V'(.# -4.:'-4.&%9# .6# ,'+,'9'(.#4#-65'?#X:&%:#0,&(@9#4??#.:'#&-+6,.4(.#,'?4.&6(9:&+9#&(.6#6('#%69-&%#'1'QE?=#.Z9:&,.#9&G'U#A:&9# 0,&(@9#Q6,.:#Q4(%&QE?#4(5#-6.&V4.&6(4?#`E'9.&6(9#406E.#56-4&(#4,'49=#9E%:#49#!I6X#-4(1#.Z9:&,.9#56'9#&.# 29:6E?5#&.7#.4;'#.6#-65'?#.:&9#9&.E4.&6(^/#3(#.:'#$A)H$#+,6W'%.=#X'#49;#.:4.#`E'9.&6(#406E.#.:'#X:6?'#'(Z .',+,&9'=#4(5#406E.#.:'#+4,.9#6Q#.:'#919.'-=#Q6,#'*4-+?'#!I6X#-4(1#.Z9:&,.9#X&??#0'#,'`E&,'5#.6#5'Q&('#