Leveraging collective intelligence for software development (as described here) has huge potential to revolutionize the way how we interact and work with our IDEs today. Furthermore, leveraging the wisdom of the software engineering crowds can happen in many different ways. Hence, Code Recommenders is seeking for contributors in many different areas ranging from test engineers to Plug-in developers, JDT experts, up to usability experts providing feedback about issues that kill the code recommenders experience. Below you find a short description of contributions we highly appreciate.
How to Contribute
See Recommenders/Contributor Guide for details.
Please check out the Recommenders/ContributorTopics for a list of potential topics/areas.
Areas of Contribution
This list aims to give you a top-level overview where you can contribute and what techniques and tools are currently used in Code Recommenders.
Code Recommenders seamlessly integrates with Eclipse JDT by extending code completion, performing AST code analyses, using Java Search and many other functionalities provided by the JDT. However, sometimes we have to dig deeply into the internals of JDT to achieve our goals - and sometimes it's not clear whether our solutions are best in terms of simpleness and performance. Thus, to improve Code Recommenders in terms of performance and functionality we are seeking JDT experts - or those that want to become JDT experts - to improve its integration into the JDT.
Static Analysis Experts
This topic is probably the one with the smallest target audience :-) For our code analysis we use the IBM WALA byte code toolkit which is an excellent toolkit for analyzing code. It comes with a interprocedural control-flow graphs, abstract interpretation capabilities, fix point iteration etc. Code Recommenders aims to continuously improve its analysis in terms of precision and (especially) performance. If you are familiar with WALA - or want to learn about it - we welcome your contributions!
Aside code completion, Code Recommenders offers many more tools like example code search engine, smart bug/API misuse detection, extended javadoc, collaborative template stores any many things more. Checkout Recommenders/Proposal for a summary of the planned tools. All these tools are based on Eclipse RCP, i.e., they build on well-known concepts like views, editors, workbench listeners etc., meaning that supporting Code Recommenders does not necessarily require you to have a background on machine learning or static analysis. If you are familiar with Eclipse Plug-in development you can take responsibility on tasks like user customization etc. or even may take the lead on various components like the crowd-sourced usage data collector or any other tool we work on at Code Recommenders. There is a plenty of opportunities. Interested? Then join us on the forum and dev mailing list and let us know what interests you.
Code Recommenders aims to continuously deliver its software. This requires a high quality test suite. However, building great test suites needs excellent test engineers! If you are an experienced test engineer, and would like to support us in creating a continuous delivery platform for Code Recommenders contact us on the dev mailing list. We are currently building on Hudson and start out building automated test suites for Eclipse RCP plug-ins and analysis engines as well.
Actually, every user is a usability expert in its own right but only few of us take the time to provide usability feedbacks and to tell the development team what kills the user experience. Thus, Code Recommenders seeks users that aim to provide usability feedback and unsparing critiques of the tools. Without this feedback the development teams wastes time and efforts in directions that may turn out as complete mistakes in development. The earlier the team gets feedback and help in prioritizing things the better and faster Code Recommenders can grow. Thus, we need your support. A perfect forum for these kinds of contributions is the forum.
Granted, it looks like an escape when a development team is searching for documentation writers. However, one of the hardest challenges in writing documentation is matching your audience. Technical writers are trained for this and thus we would greatly appreciate your help on user and developer documentation. If you think documentation is unclear and needs refinement, please point out this issue and report them to the forum. Also, user and developer documentation is hosted in this wiki which allows to improve it quite easily. We encourage you to jump in and improve code recommenders' documentation.
The development team is open for any new ideas and suggestions how Code Recommenders may improve Eclipse IDE. Thus, if you like to share your thoughts or even want to contribute your own extensions to Code Recommenders simply contact us on the forum.
Something Left Over?
This list is neither exhaustive nor has any particular order. If anything is left open, contact us on the forum.