The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.01 - Jan.-Feb. (2013 vol.30)
pp: 74-80
O. Callau , Univ. of Chile, Santiago, Chile
E. Tanter , Univ. of Chile, Santiago, Chile
ABSTRACT
Best practices in programming typically imply incremental coding with classes and interfaces that are either not yet defined or only partially defined. Yet integrated development environments (IDEs) don't support incremental coding well, and recent enhancements and third-party plug-ins fail to provide a seamless experience. We propose to reify undefined entities as ghosts, properly supported by the IDE. A Ghost View provides an integrated, modular view of each ghost, reflecting the current set of assumptions about a given undefined entity. This view is built unobtrusively and on the fly, without interrupting the programming workflow, and it supports program understanding tasks such as navigating from ghosts to the places where they're used. Ghosts and their usages are type-checked automatically as soon as they're defined. Busting a ghost generates a complete skeleton, in the background. Ghosts are a simple and useful metaphor to better support incremental development.
INDEX TERMS
software tools, data flow analysis, program understanding tasks, programming practices, incremental coding, integrated development environments, IDE, third-party plug-ins, Ghost View, programming workflow, Programming, Software development, Context awareness, Visualization, Java, User interfaces, Search engines, IDEs, Programming, Software development, Context awareness, Visualization, Java, User interfaces, Search engines, ghosts, programming tools, programming environments, integrated development environments
CITATION
O. Callau, E. Tanter, "Programming with Ghosts", IEEE Software, vol.30, no. 1, pp. 74-80, Jan.-Feb. 2013, doi:10.1109/MS.2012.49
REFERENCES
1. K. Beck, Test - Driven Development: By Example, Addison-Wesley, 2002.
2. S.W. Ambler, “How Agile Are You? 2010 Survey Results,” Scott W Ambler & Assoc., 2010; www.ambysoft.com/surveyshowAgileAreYou2010.html .
3. C. Larman, , Agile and Iterative Development: A Manager's Guide, Addison-Wesley Professional, 2003.
4. G. Goth, “Beware the March of this IDE: Eclipse Is Overshadowing Other Tool Technologies,” IEEE Software, vol. 22, no. 4, 2005, pp. 108–111.
5. DevExpress, “CodeRush—Consume-First Development,” tech. note, 2012; http://devexpress.com/Products/Visual_Studio_Add-in/ Coding_Assistanceconsume_first_development.xml .
6. O. Callaú and É. Tanter, “Ghosts,” project website, 2012; http://pleiad.clghosts.
7. Microsoft Developer Network, “Generate from Usage,” tech. note, 2012; http://msdn.microsoft.com/en-us/librarydd409796.aspx .
8. Microsoft Developer Network, “Walkthrough: Test-First Support with the Generate From Usage Feature,” tech. note, 2012; http://msdn.microsoft.com/en-us/librarydd998313.aspx .
9. J. Bloch, Effective Java, 2nd ed., Addison-Wesley, 2008.
10. B.C. Pierce, Types and Programming Languages, MIT Press, 2002.
11. W. Miao and J. Siek, “Incremental Type-Checking for Type-Reflective Metaprograms,” Proc. 9th ACM SIGPLAN Int'l Conf. Generative Programming and Component Eng. (GPCE 2010), ACM, 2010, pp. 167–176.
35 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool