Eclipse Democamp Zurich
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Eclipse Democamp Zurich

on

  • 1,047 views

What's in Juno and what will be in Kepler?

What's in Juno and what will be in Kepler?

Statistics

Views

Total Views
1,047
Views on SlideShare
1,044
Embed Views
3

Actions

Likes
0
Downloads
1
Comments
0

2 Embeds 3

https://si0.twimg.com 2
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Eclipse Democamp Zurich Presentation Transcript

  • 1. Eclipse Code Recommenders What’s  in  Juno  and   what  will  be  in  Kepler? tw:  @MarcelBruch h g+:  +Marcel  Bruch ric p  Zu m Ca mo DeSamstag, 23. Juni 2012
  • 2. Samstag, 23. Juni 2012
  • 3. Eclipse  Code  Recommenders             All Frameworks Code Code Developers Who Called “new Text()” Also Called setText() addListener() setLayout() setFont() 89% 53% 99% 35% What Do Developers Ultimately Override After Extending This Class? 100 % overwrote PreferencePage.createContents() 96 % overwrote PreferencePage.performOk() 5 % overwrote PreferencePage.performCancel()Samstag, 23. Juni 2012
  • 4. “Other  developers  frequently  bought  used  the  following  methods…” INTELLIGENT  CODE  COMPLETIONSamstag, 23. Juni 2012
  • 5. Code  Comple6on… @Override protected Control createDialogArea(final Composite parent) { Composite container = (Composite) super.createDialogArea(parent); swtTextWidget = new Text(container, SWT.BORDER); swtTextWidget.| return container; } What  does  a  developer  need,  i.e.,   which  methods  should  the  code  compleHon  present  to  him?Samstag, 23. Juni 2012
  • 6. Samstag, 23. Juni 2012
  • 7. All  164  Methods  of  Text  ?Samstag, 23. Juni 2012
  • 8. Intelligent  Call  Comple6on ...  what  the  developer  actually  needed.Samstag, 23. Juni 2012
  • 9. “BecausePureCamelCaseMatching****s!” SUBWORDS  COMPLETIONSamstag, 23. Juni 2012
  • 10. Clean  Code  encourages  you  to  use   speaking  method  names.  But  some6mes....Samstag, 23. Juni 2012
  • 11. 10Samstag, 23. Juni 2012
  • 12. ABen 6 on:    W e  are   leavin g   “what ’s  the re”  no w! “Rethinking  your  tool  suite.  Again.” WHAT’S  PLANNED  FOR  KEPLER?Samstag, 23. Juni 2012
  • 13. “Oh  SWT  -­‐  your  style  bits...” RETHINKING  ARGUMENT  GUESSINGSamstag, 23. Juni 2012
  • 14. Oh  SWT,  your  style  bits... @Override protected 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? 13Samstag, 23. Juni 2012
  • 15. Samstag, 23. Juni 2012
  • 16. SWT.<^Space>?    454Samstag, 23. Juni 2012
  • 17. SWT.<^Space>?    454 ±  3Samstag, 23. Juni 2012
  • 18. What  you’d  like  to  see  is... 15Samstag, 23. Juni 2012
  • 19. e4  Annota6on  Recommender 16Samstag, 23. Juni 2012
  • 20. “Why    is    was  Google  Codesearch  not  ‘google  for  code  search’?  ” RETHINKING  CODE  SEARCHSamstag, 23. Juni 2012
  • 21. What  do  you  think? 18Samstag, 23. Juni 2012
  • 22. How  many  request  per  minutes  do code  search  engines  have?Samstag, 23. Juni 2012
  • 23. 20 Number  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 20Samstag, 23. Juni 2012
  • 24. “Templates  meet  Social  and  Machine  Learning!” RETHINKING  CODE  SNIPPETSSamstag, 23. Juni 2012
  • 25. Eclipse  Java  Templates 42x  Java  Templates. 35x  SWT  Templates.Samstag, 23. Juni 2012
  • 26. The  rise  of  code  snippet  repositories and  many  more...Samstag, 23. Juni 2012
  • 27. Snipmatch:  Community  provided, searchable  templates...Samstag, 23. Juni 2012
  • 28. “People  who  ‘bought’  this  NullPointerException  typically  fixed  this  by...” RETHINKING  STACKTRACE  SEARCHSamstag, 23. Juni 2012
  • 29. But  what  if  you  get  this?Samstag, 23. Juni 2012
  • 30. Debugging  –  the  old  waySamstag, 23. Juni 2012
  • 31. Debugging  –  the  old  waySamstag, 23. Juni 2012
  • 32. Debugging  –  the  old  waySamstag, 23. Juni 2012
  • 33. But  more  oden  we  get…Samstag, 23. Juni 2012
  • 34. How  can  we  fix  that?   Don’t  stacktraces  share  some  commonali6es? 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)Samstag, 23. Juni 2012
  • 35. How  can  we  fix  that?   Don’t  stacktraces  share  some  commonali6es? 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)Samstag, 23. Juni 2012
  • 36. How  about  “stacktrace  recommenders”?Samstag, 23. Juni 2012
  • 37. 4  Tool  Candidates  for  Eclipse  Kepler ❶  Arguments  &  AnnotaHon   ❷  Code  Search Recommender ❺  One  of  these! ❸  Code  Snippet  Mining ❹  Stacktrace  Search 32Samstag, 23. Juni 2012
  • 38. hBp://eclipse.org/recommenders/ Follow  me  on  twiBer:  @MarcelBruch google+:  +Marcel  Bruch 33Samstag, 23. Juni 2012