Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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
  • (2024)How New Developers Approach Augmented Reality Development Using Simplified Creation Tools: An Observational StudyMultimodal Technologies and Interaction10.3390/mti80400358:4(35)Online publication date: 22-Apr-2024
  • (2024)Empowering IoT Developers with Privacy-Preserving End-User Development ToolsProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/36785888:3(1-47)Online publication date: 9-Sep-2024
  • (2024)Understanding Novice Users' Mental Models of Gesture Discoverability and Designing Effective OnboardingCompanion of the 2024 on ACM International Joint Conference on Pervasive and Ubiquitous Computing10.1145/3675094.3678370(290-295)Online publication date: 5-Oct-2024
  • Show More Cited By

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%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)96
    • Downloads (Last 6 weeks)33
    Reflects downloads up to 26 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)How New Developers Approach Augmented Reality Development Using Simplified Creation Tools: An Observational StudyMultimodal Technologies and Interaction10.3390/mti80400358:4(35)Online publication date: 22-Apr-2024
    • (2024)Empowering IoT Developers with Privacy-Preserving End-User Development ToolsProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/36785888:3(1-47)Online publication date: 9-Sep-2024
    • (2024)Understanding Novice Users' Mental Models of Gesture Discoverability and Designing Effective OnboardingCompanion of the 2024 on ACM International Joint Conference on Pervasive and Ubiquitous Computing10.1145/3675094.3678370(290-295)Online publication date: 5-Oct-2024
    • (2024)Feedback-Directed Partial ExecutionProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680320(781-793)Online publication date: 11-Sep-2024
    • (2024)Why and When LLM-Based Assistants Can Go Wrong: Investigating the Effectiveness of Prompt-Based Interactions for Software Help-SeekingProceedings of the 29th International Conference on Intelligent User Interfaces10.1145/3640543.3645200(288-303)Online publication date: 18-Mar-2024
    • (2024)Improving Selection of Analogical Inspirations through Chunking and RecombinationProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3656207(374-397)Online publication date: 23-Jun-2024
    • (2024)Do I Just Tap My Headset?Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/36314517:4(1-28)Online publication date: 12-Jan-2024
    • (2024)To Search or To Gen? Exploring the Synergy between Generative AI and Web Search in ProgrammingExtended Abstracts of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613905.3650867(1-8)Online publication date: 11-May-2024
    • (2024)Formulating or Fixating: Effects of Examples on Problem Solving Vary as a Function of Example Presentation Interface DesignProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642653(1-16)Online publication date: 11-May-2024
    • (2024)Using an LLM to Help With Code UnderstandingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639187(1-13)Online publication date: 20-May-2024
    • Show More Cited By

    View Options

    Get Access

    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