skip to main content
10.1145/1753326.1753402acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
research-article

Example-centric programming: integrating web search into the development environment

Published: 10 April 2010 Publication History

Abstract

The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the development environment can significantly reduce the cost of finding information and thus enable programmers to write better code more easily. This paper describes the design, implementation, and evaluation of Blueprint, a Web search interface integrated into the Adobe Flex Builder development environment that helps users locate example code. Blueprint automatically augments queries with code context, presents a code-centric view of search results, embeds the search experience into the editor, and retains a link between copied code and its source. A comparative laboratory study found that Blueprint enables participants to write significantly better code and find example code significantly faster than with a standard Web browser. Analysis of three months of usage logs with 2,024 users suggests that task-specific search interfaces can significantly change how and when people search the Web.

References

[1]
Google Code Search. http://code.google.com
[2]
Krugle. http://www.krugle.com
[3]
Adar, E., M. Dontcheva, J. Fogarty, and D.S. Weld. Zoetrope: Interacting with the Ephemeral Web. In Proceedings of UIST: ACM Symposium on User Interface Software and Technology. pp. 239--48, 2008.
[4]
Bajracharya, S., T. Ngo, et al. Sourcerer: A Search Engine for Open Source Code Supporting Structure-Based Search. In Companion to OOPSLA: ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications. pp. 681--82, 2006.
[5]
Brandt, J., P.J. Guo, J. Lewenstein, M. Dontcheva, and S.R. Klemmer. Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover, IEEE Software, vol. 26(5): pp. 18--24, 2009.
[6]
Brandt, J., P.J. Guo, J. Lewenstein, M. Dontcheva, and S.R. Klemmer. Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code. In Proceedings of CHI: ACM Conference on Human Factors in Computing Systems. pp. 1589--98, 2009.
[7]
Brooks, F.P., The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley. 1995.
[8]
Clarke, S. What is an End-User Software Engineer? In End-User Software Engineering Dagstuhl Seminar, 2007.
[9]
deHaan, P., Flex Examples. http://blog.flexexamples.com/
[10]
Dontcheva, M., S.M. Drucker, D. Salesin, and M.F. Cohen. Relations, Cards, and Search Templates: User-Guided Web Data Integration and Layout. In Proceedings of UIST: ACM Symposium on User Interface Software and Technology. pp. 61--70, 2007.
[11]
Dontcheva, M., S.M. Drucker, G. Wade, D. Salesin, and M.F. Cohen. Summarizing Personal Web Browsing Sessions. In Proceedings of UIST: ACM Symposium on User Interface Software and Technology. pp. 115--24, 2006.
[12]
Goldman, M. and R.C. Miller. Codetrail: Connecting Source Code and Web Resources. In Proceedings of VL/HCC: IEEE Symposium on Visual Languages and Human-Centric Computing. pp. 65--72, 2008.
[13]
Gray, W.D. and D.A. Boehm-Davis. Milliseconds Matter: An Introduction to Microstrategies and to Their Use in Describing and Predicting Interactive Behavior. Journal of Experimental Psychology: Applied 6(4). pp. 322--35, 2000.
[14]
Grimes, C., D. Tang, and D.M. Russell. Query Logs Alone are Not Enough. In Workshop on Query Log Analysis at WWW 2007: International World Wide Web Conference, 2007.
[15]
Hartmann, B., S. Doorley, and S.R. Klemmer. Hacking, Mashing, Gluing: Understanding Opportunistic Design, IEEE Pervasive Computing, vol. 7(3): pp. 46--54, 2008.
[16]
Hartmann, B., D. MacDougall, J. Brandt, and S.R. Klemmer. What Would Other Programmers Do? Suggesting Solutions to Error Messages. In Proceedings of CHI: ACM Conference on Human Factors in Computing Systems, 2010.
[17]
Hartmann, B., L. Wu, K. Collins, and S.R. Klemmer. Programming by a Sample: Rapidly Creating Web Applications with d.mix. In Proceedings of UIST: ACM Symposium on User Interface Software and Technology. pp. 241--50, 2007.
[18]
Hearst, M.A., Search User Interfaces. Cambridge University Press. 2009.
[19]
Hoffmann, R., J. Fogarty, and D.S. Weld. Assieme: Finding and Leveraging Implicit References in a Web Search Interface for Programmers. In Proceedings of UIST: ACM Symposium on User Interface Software and Technology. pp. 13--22, 2007.
[20]
Hutchins, E.L., J.D. Hollan, and D.A. Norman. Direct Manipulation Interfaces. Human--Computer Interaction 1(4). pp. 311--38, 1985.
[21]
Mandelin, D., L. Xu, R. Bodík, and D. Kimelman. Jungloid Mining: Helping to Navigate the API Jungle. In Proceedings of PLDI: ACM SIGPLAN Conference on Programming Language Design and Implementation. pp. 48--61, 2005.
[22]
Medynskiy, Y., M. Dontcheva, and S.M. Drucker. Exploring Websites through Contextual Facets. In Proceedings of CHI: ACM Conference on Human Factors in Computing Systems. pp. 2013--22, 2009.
[23]
Pirolli, P.L.T., Information Foraging Theory. Oxford University Press. 2007.
[24]
Richardson, L., Beautiful Soup. http://www.crummy.com/software/BeautifulSoup
[25]
Sahavechaphan, N. and K. Claypool. XSnippet: Mining for Sample Code. In Proceedings of OOPSLA: ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications. pp. 413--30, 2006.
[26]
Stylos, J. and B.A. Myers. Mica: A Web-Search Tool for Finding API Components and Examples. In Proceedings of VL/HCC: IEEE Symposium on Visual Languages and Human-Centric Computing. pp. 195--202, 2006.
[27]
Teevan, J., E. Cutrell, et al. Visual Snippets: Summarizing Web Pages for Search and Revisitation. In Proceedings of CHI: ACM Conference on Human Factors in Computing Systems. pp. 2023--32, 2009.
[28]
Thummalapenta, S. and T. Xie. PARSEweb: A Programmer Assistant for Reusing Open Source Code on the Web. In Proceedings of ASE: IEEE/ACM International Conference on Automated Software Engineering. pp. 204--13, 2007.
[29]
Woodruff, A., A. Faulring, R. Rosenholtz, J. Morrsion, and P. Pirolli. Using Thumbnails to Search the Web. In Proceedings of CHI: ACM Conference on Human Factors in Computing Systems. pp. 198--205, 2001.

Cited By

View all

Index Terms

  1. Example-centric programming: integrating web search into the development environment

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    CHI '10: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
    April 2010
    2690 pages
    ISBN:9781605589299
    DOI:10.1145/1753326
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 April 2010

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tag

    1. example-centric development

    Qualifiers

    • Research-article

    Conference

    CHI '10
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 6,199 of 26,314 submissions, 24%

    Upcoming Conference

    CHI 2025
    ACM CHI Conference on Human Factors in Computing Systems
    April 26 - May 1, 2025
    Yokohama , Japan

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)99
    • Downloads (Last 6 weeks)17
    Reflects downloads up to 21 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media