eclipse democamp zurich
DESCRIPTION
What's in Juno and what will be in Kepler?TRANSCRIPT
![Page 1: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/1.jpg)
Eclipse Code Recommenders
What’s in Juno and what will be in Kepler?tw: @MarcelBruchg+: +Marcel Bruch
Demo
Camp Zurich
Samstag, 23. Juni 2012
![Page 2: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/2.jpg)
Samstag, 23. Juni 2012
![Page 3: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/3.jpg)
Developers Who Called “new Text()” Also Called
What Do Developers Ultimately Override After Extending This Class?
setText()
89%
addListener()
53%
setLayout()
99%
setFont()
35%
100 % overwrotePreferencePage.createContents()
96 % overwrotePreferencePage.performOk()
5 % overwrotePreferencePage.performCancel()
CodeAll Frameworks
Eclipse Code Recommenders Code
Samstag, 23. Juni 2012
![Page 4: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/4.jpg)
INTELLIGENT CODE COMPLETION“Other developers frequently bought used the following methods…”
Samstag, 23. Juni 2012
![Page 5: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/5.jpg)
@Overrideprotected Control createDialogArea(final Composite parent) { Composite container = (Composite) super.createDialogArea(parent); swtTextWidget = new Text(container, SWT.BORDER); swtTextWidget.| return container;}
Code Comple6on…
What does a developer need, i.e., which methods should the code compleHon present to him?
Samstag, 23. Juni 2012
![Page 6: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/6.jpg)
Samstag, 23. Juni 2012
![Page 7: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/7.jpg)
All 164 Methods of Text ?
Samstag, 23. Juni 2012
![Page 8: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/8.jpg)
Intelligent Call Comple6on
... what the developer actually needed.
Samstag, 23. Juni 2012
![Page 9: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/9.jpg)
SUBWORDS COMPLETION“BecausePureCamelCaseMatching****s!”
Samstag, 23. Juni 2012
![Page 10: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/10.jpg)
Clean Code encourages you to use speaking method names. But some6mes....
Samstag, 23. Juni 2012
![Page 11: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/11.jpg)
10
Samstag, 23. Juni 2012
![Page 12: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/12.jpg)
WHAT’S PLANNED FOR KEPLER?“Rethinking your tool suite. Again.”
ABen6on: We are leaving “what’s there” now!
Samstag, 23. Juni 2012
![Page 13: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/13.jpg)
RETHINKING ARGUMENT GUESSING“Oh SWT -‐ your style bits...”
Samstag, 23. Juni 2012
![Page 14: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/14.jpg)
Oh SWT, your style bits...
13
@Overrideprotected Control createControl(final Composite parent) {
! ! textWidget = new Text(toolbar, SWT.BORDER);! ! textWidget.addListener(eventType, listener)
Which event type, i.e., which int constant defined somewhere, should he insert here? 0?
Samstag, 23. Juni 2012
![Page 15: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/15.jpg)
Samstag, 23. Juni 2012
![Page 16: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/16.jpg)
SWT.<^Space>? 454
Samstag, 23. Juni 2012
![Page 17: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/17.jpg)
SWT.<^Space>? 454 ± 3
Samstag, 23. Juni 2012
![Page 18: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/18.jpg)
What you’d like to see is...
15
Samstag, 23. Juni 2012
![Page 19: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/19.jpg)
e4 Annota6on Recommender
16
Samstag, 23. Juni 2012
![Page 20: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/20.jpg)
RETHINKING CODE SEARCH“Why is was Google Codesearch not ‘google for code search’? ”
Samstag, 23. Juni 2012
![Page 21: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/21.jpg)
What do you think?
18
Samstag, 23. Juni 2012
![Page 22: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/22.jpg)
How many request per minutes docode search engines have?
Samstag, 23. Juni 2012
![Page 23: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/23.jpg)
20
20Number for koders.com in 2009 according to “Analyzing and mining a code search engine usage log”
hBp://dx.doi.org/10.1007/s10664-‐010-‐9144-‐6
Samstag, 23. Juni 2012
![Page 24: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/24.jpg)
RETHINKING CODE SNIPPETS“Templates meet Social and Machine Learning!”
Samstag, 23. Juni 2012
![Page 25: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/25.jpg)
Eclipse Java Templates
42x Java Templates.35x SWT Templates.
Samstag, 23. Juni 2012
![Page 26: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/26.jpg)
The rise of code snippet repositories
and many more...
Samstag, 23. Juni 2012
![Page 27: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/27.jpg)
Snipmatch: Community provided,searchable templates...
Samstag, 23. Juni 2012
![Page 28: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/28.jpg)
RETHINKING STACKTRACE SEARCH“People who ‘bought’ this NullPointerException typically fixed this by...”
Samstag, 23. Juni 2012
![Page 29: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/29.jpg)
But what if you get this?
Samstag, 23. Juni 2012
![Page 30: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/30.jpg)
Debugging – the old way
Samstag, 23. Juni 2012
![Page 31: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/31.jpg)
Debugging – the old way
Samstag, 23. Juni 2012
![Page 32: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/32.jpg)
Debugging – the old way
Samstag, 23. Juni 2012
![Page 33: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/33.jpg)
But more oden we get…
Samstag, 23. Juni 2012
![Page 34: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/34.jpg)
org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.SWT.error(SWT.java:3770) at org.eclipse.swt.widgets.Widget.error(Widget.java:463) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355) at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317) at org.eclipselabs.cr.stacktraces.demo.ThreadDemo$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:619)
How can we fix that? Don’t stacktraces share some commonali6es?
Samstag, 23. Juni 2012
![Page 35: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/35.jpg)
org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.SWT.error(SWT.java:3770) at org.eclipse.swt.widgets.Widget.error(Widget.java:463) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355) at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317) at org.eclipselabs.cr.stacktraces.demo.ThreadDemo$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:619)
How can we fix that? Don’t stacktraces share some commonali6es?
Samstag, 23. Juni 2012
![Page 36: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/36.jpg)
How about “stacktrace recommenders”?
Samstag, 23. Juni 2012
![Page 37: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/37.jpg)
4 Tool Candidates for Eclipse Kepler
32
❶ Arguments & AnnotaHon Recommender
❸ Code Snippet Mining
❷ Code Search
❹ Stacktrace Search
❺ One of these!
Samstag, 23. Juni 2012
![Page 38: Eclipse Democamp Zurich](https://reader034.vdocuments.us/reader034/viewer/2022052505/5561f90ed8b42ae04e8b4ccb/html5/thumbnails/38.jpg)
hBp://eclipse.org/recommenders/Follow me on twiBer: @MarcelBruch
google+: +Marcel Bruch 33
Samstag, 23. Juni 2012