Open in TheBrain

Brandt, Joel Example-Centric Programming

<p>May 28, 2010 6:37 PM

&#160;

&#160;&#160;&#160;&#160;PhD &#160;student at Stfd... &#160;great idea. &#160;OPPORTUNISTIC Prog see way below...

Advisor introduced him, &#160;Scott Klemmer.

&#160;

He developed a program called BLUEPRINT in the Adobe FLEX coding environment to

help with web search to find examples of code for program development.

&#160;

This is a great idea, great talk. &#160;It reminds me of how much more productive

coders are now than in my day.

&#160;

See the video below. &#160;&#160;say u're trying to remember the HTML to take data in a form.

U can easily locate it on the web and then copy and paste/ modify.

&#160;

By 2012 &#160;13M people will do programming on their jobs, ob which only 3 M &#160;will be

prof coders &#160;(USA). &#160;impt to make it easy. &#160;Scientists, engrs, etc

&#160;

They first did a study to find out how people used the web to help in programming.

Observed 20 people writing code for a project &#160;? blding a chat room.

&#160;

20 S's &#160;had &#160;basic knowledge (not advanced) of &#160;PHP, &#160;JavaScript, and HTML.

They had only 2.5 hours to complete project &#160;and spent &#160;19% on the web.

LEARNING &#160;(eg &#160;reading tutorials) ... &#160;new skills

CLARIFYING &#160;prior knowledgge or transferring knowledge from other languages

REMINDING: &#160;using web as external memory.

&#160;

LEARNING: &#160;eg &#160;reading an AJAX &#160;tutorial or JS tutorial.

&#160;

only want to learn just enuf to do the TASK at hand....

just in time &#160;learning.

Clarification ... &#160;"language analogies" &#160;with other langs.

&#160;

Reminder... &#160;basically a web-enabled &#160;"auto-complete: &#160;to augment their memory.

&#160;

BLUEPRINT was their coding search environment....

it automatic. &#160;tells the web abt their program environment, language and situation...

provides CONTEXT automatically.

&#160;

queiries &#160;to the web &#160;can be

CODE only &#160;&#160;(eg &#160;if user is looking for &#160;API &#160;examples)

ENGLISH ONLY &#160;(eg &#160;with tutorials on langs)

or &#160;code + English

&#160;

programmers freq look for example code to clarify syntax.

&#160;

they tried this out in Adobe FLEX 3 &#160;environment... &#160;got lots of use;

users generate better code, faster. &#160;tried study for 12 months at Adobe Labs.

&#160;

&#160;

Opportunistic Programming is a method of software development that <b>emphasizes speed and ease of development</b> over code robustness and maintainability. Coding in this way allows individuals to explore many ideas quickly, which has an important place in the overall sofware engineering process. <b>Steps like prototyping, ideation and discovery </b>are often best accomplished by building a functional piece of software quickly and easily without the typical concerns of a broader-scale software engineering project. Through fieldwork and a laboratory study, we are focusing on five characteristics of opportunistic programming: building software from scratch using high-level tools, adding new functionality through copy-and-paste, atypically rapid iteration, considering code to be impermanent, and facing a unique set of debugging challenges. Using results from these two projects, we plan on developing tools aimed at <b>opportunistic programming that focus on debugging, code foraging and reuse, and documentation</b>.

&#160;</p>

Attachments