
Eclipse Code Recommenders - Detailed Review
Developer Tools

Eclipse Code Recommenders - Product Overview
Eclipse Code Recommenders
Eclipse Code Recommenders is an innovative tool within the Developer Tools category, particularly focusing on AI-driven code completion and API learning.
Primary Function
The primary function of Eclipse Code Recommenders is to improve the code completion experience for developers. It achieves this by analyzing how often developers use certain code snippets, methods, and APIs, and then prioritizing these in the autocompletion suggestions. This approach ensures that the most frequently used options are presented first, making the development process more efficient.
Target Audience
The target audience for Eclipse Code Recommenders includes Java developers and anyone using the Eclipse Integrated Development Environment (IDE) to develop software. It is particularly beneficial for developers who are learning new APIs or working with large application frameworks, as it helps in reducing the initial training costs associated with learning these frameworks.
Key Features
Intelligent Code Completion
Eclipse Code Recommenders provides code completion suggestions based on the frequency of use by the developer community. This means the most commonly used methods and classes are suggested first, rather than being listed alphabetically.
Subword Completion
The tool allows for subword completion, where developers can find methods even if they only know a part of the method name, not necessarily the beginning.
API Learning
It supports developers in learning new APIs by analyzing example code and integrating this knowledge back into the IDE through features like extended Javadocs.
Community Data
The recommendations are derived from data mined from open-source repositories like GitHub, as well as from community feedback (although the community feedback feature has been deactivated in recent versions due to privacy concerns).
Integration with Eclipse
It is fully integrated into the Eclipse IDE, starting from the Eclipse Mars release, and offers features like Snipmatch code snippet search engine, which allows easy searching and insertion of code snippets provided by the community.
Overall, Eclipse Code Recommenders aims to make the coding process more efficient and intuitive by leveraging collective developer knowledge and behavior.

Eclipse Code Recommenders - User Interface and Experience
The Eclipse Code Recommenders
The Eclipse Code Recommenders, a tool within the Eclipse IDE, is designed to enhance the coding experience through intelligent code completion and recommendations. Here’s a detailed look at its user interface, ease of use, and overall user experience:
User Interface
The user interface of Eclipse Code Recommenders is integrated seamlessly into the Eclipse IDE. When a developer triggers content assist (e.g., by pressing Ctrl Space), the tool provides recommendations based on the context of the code. For instance, when working with java.util.Collections
, the tool might suggest methods like emptyList
along with a percentage indicating how likely such a call is, based on historical data from other developers.
The interface is straightforward and does not introduce significant new elements that would disrupt the familiar Eclipse workflow. Recommendations are presented in the standard Eclipse content assist popup, making it easy for developers to adopt and use the feature without additional learning.
Ease of Use
Eclipse Code Recommenders is designed to be user-friendly and intuitive. Here are some key aspects that contribute to its ease of use:
- Automatic Integration: The tool is part of the Eclipse IDE for Java Developers and Eclipse IDE for Eclipse Committers EPP packages, so it is often enabled by default or can be easily activated through the preferences page.
- Context-Aware Suggestions: The suggestions provided are context-aware, meaning they are based on the specific code the developer is working on, making them more relevant and useful.
- Subword Completion: A notable feature is the subword completion, which allows developers to find methods even if they only know a part of the method name, not necessarily the beginning.
Overall User Experience
The overall user experience of Eclipse Code Recommenders is positive, particularly for developers looking to streamline their coding process:
- Improved Code Completion: By providing recommendations based on real-world usage data, the tool helps developers find the most commonly used methods and classes quickly, reducing the time spent searching through documentation or other sources.
- Minimal Configuration: Users do not need to configure much to start using the tool. It works out of the box, with optional features that can be enabled or disabled as needed.
- Feedback and Updates: The tool periodically checks for updates to its recommendation models and can download these updates in the background, ensuring that the recommendations remain relevant and up-to-date.
Additional Features
- Statics-Completion: This feature, introduced in version 2.5.0, provides recommendations for static methods and fields, further enhancing the coding experience.
- News Feed and Community Engagement: The tool includes an RSS news feed that informs users about new features and updates, and the project engages with users through various channels like the Eclipse Forum, Bugzilla, and social media platforms.
In summary, Eclipse Code Recommenders enhances the Eclipse IDE with intelligent code completion and recommendations, making it easier for developers to write code efficiently without a steep learning curve.

Eclipse Code Recommenders - Key Features and Functionality
The Eclipse Code Recommenders
The Eclipse Code Recommenders is a powerful plugin for the Eclipse Java Development Tools that leverages AI and collective developer knowledge to enhance the coding experience. Here are the main features and how they work:
Intelligent Code Completion
Eclipse Code Recommenders provides intelligent code completion by analyzing the usage patterns of large APIs. Instead of presenting a long list of possible completions, it prioritizes the most frequently used methods and classes based on data collected from various sources, including open-source repositories like GitHub.
Extended Documentation
The plugin offers an Extended Documentation view that shows information about how often certain methods are called or overridden. This feature is particularly useful for learning new APIs, as it provides insights into common usage patterns and best practices.
Call Recommendations and Call Chains
Code Recommenders can suggest method calls based on the context of your code. It also helps in identifying call chains, which is useful when dealing with deep method calls, such as getting the Active Window or Status Line Manager.
Subword Completion
This feature allows you to use partial method or class names to get completion suggestions. You don’t need to know the entire name, making it easier to find the right method even if you only remember a part of it.
Method Override Suggestions
When extending a class, Code Recommenders can suggest methods that are frequently overridden by other developers. This helps in adhering to common practices and reducing the time spent on figuring out which methods to override.
Template Organization
The plugin organizes common templates for working with specific objects. For example, it can show how SWT Buttons are often instantiated and used, making it easier to learn and use new APIs.
Bug Detection and Error Prevention
While not as prominently featured as other AI tools, Code Recommenders can help in reducing errors by suggesting methods and code snippets that are known to work correctly, thereby preventing common mistakes.
Data Source and Privacy
The plugin uses a database that contains information on how often developers choose certain completions. This data is sourced from open-source repositories and, in some versions, from user feedback (though the latter feature has been discontinued due to privacy concerns).
Configuration and Updates
Code Recommenders requires a knowledge base (Model Repository Reference) to be configured. It checks for updates to the recommendation models and can download them automatically, though this feature can be disabled for privacy reasons.
Benefits
- Faster Development: By providing intelligent code completion and suggestions, Code Recommenders saves developers time and reduces the effort needed to write code.
- Improved Learning: The plugin helps developers learn new APIs more efficiently by showing common usage patterns and best practices.
- Error Reduction: By suggesting proven code snippets, it helps in preventing common errors and bugs.
- Enhanced Productivity: Overall, it enhances the coding experience by making it more intuitive and efficient.
In summary, Eclipse Code Recommenders integrates AI by leveraging collective developer knowledge to provide smarter code completions, extended documentation, and method suggestions, all of which contribute to a more efficient and productive coding environment.

Eclipse Code Recommenders - Performance and Accuracy
Eclipse Code Recommenders Overview
Eclipse Code Recommenders is a tool designed to assist developers by providing intelligent code completion suggestions. Here’s an evaluation of its performance and accuracy:
Performance
Eclipse Code Recommenders 2.0 has undergone significant architectural redesigns to improve performance. Here are some key points:
- Stability and Resource Usage: The tool is stable and optimized for daily use on standard development machines, ensuring it runs without issues in terms of performance or memory consumption.
- Startup and Model Loading: Users might experience small initial startup delays when triggering code completion for the first time, but subsequent accesses to the model and computation of recommendations are quick, typically taking around 8ms on average.
- Headless Mode: The tool can run in a headless mode, allowing it to be used outside of the Eclipse IDE, which enhances its versatility and performance in different environments.
Accuracy
The accuracy of Eclipse Code Recommenders is enhanced through several features:
- Context-Aware Suggestions: The tool analyzes code frequency patterns and the current method context to suggest the most relevant methods. For example, it can pick the first word from the enclosing method context using lowerCamelCase to improve recommendation accuracy.
- Integration with JDT: Code Recommenders integrates with the Java Development Tools (JDT) to provide a unified completion engine that includes various completion engines like call, override, chain, subwords, and templates. This integration improves the overall accuracy of code completion suggestions.
- Crowd-Sourced Knowledge Base: The tool automatically downloads its knowledge base from Eclipse servers whenever a supported API is used, ensuring that the suggestions are based on a continuously updated and crowd-sourced corpus of knowledge.
Limitations and Areas for Improvement
While Eclipse Code Recommenders offers significant benefits, there are some limitations and areas that need attention:
- Compatibility Issues: There have been reported issues with compatibility, such as the incompatibility between Eclipse Code Recommenders and the Groovy Editor, which can cause content assist to stop working until a restart. These issues are being addressed, but they highlight the need for better integration with other Eclipse plugins.
- Subwords Feature: The subwords feature can trigger long-running indexing operations in JDT, which may occasionally fail due to timeout limits. This indicates a need for optimization in handling such operations.
- Dependency on DI Frameworks: Code Recommenders heavily uses Google Guice as a Dependency Injection (DI) framework, which can introduce versioning issues and conflicts with other Eclipse technologies. There is a consideration to move from Guice to Eclipse 4 DI in future releases, but this would require significant work.
Conclusion
Eclipse Code Recommenders is a powerful tool that enhances developer productivity through intelligent code completion. Its performance is generally good, with minimal delays and efficient resource usage. The accuracy of its suggestions is improved by its context-aware approach and integration with JDT. However, there are areas for improvement, particularly in terms of compatibility with other plugins and the management of dependencies. Addressing these limitations will further enhance the tool’s effectiveness and user experience.

Eclipse Code Recommenders - Pricing and Plans
The Pricing Structure of Eclipse Code Recommenders
The pricing structure for Eclipse Code Recommenders is straightforward and aligned with the open-source nature of the Eclipse project.
Key Points:
- Eclipse Code Recommenders is a part of the Eclipse ecosystem, which is free and open-source.
- There are no specific pricing tiers or plans for Eclipse Code Recommenders, as it is included as a feature within the Eclipse IDE.
Features and Availability:
- Eclipse Code Recommenders is available as a plugin for the Eclipse IDE and can be used without any additional cost. It provides features such as code completion, method recommendations, and context-sensitive code snippets based on the analysis of existing code samples.
- The plugin integrates with Eclipse JDT’s code completion and provides recommendations to help developers use new APIs more efficiently.
Free Option:
- Since Eclipse Code Recommenders is part of the open-source Eclipse project, it is entirely free to use. There are no subscription fees or premium plans associated with it.
Conclusion
In summary, Eclipse Code Recommenders does not have a pricing structure as it is a free, open-source component of the Eclipse IDE. It offers valuable features to enhance coding efficiency without any cost.

Eclipse Code Recommenders - Integration and Compatibility
Eclipse Code Recommenders Overview
Eclipse Code Recommenders is a sophisticated tool that integrates seamlessly with the Eclipse IDE and other development environments, enhancing the productivity and efficiency of Java developers.Integration with Eclipse IDE
Eclipse Code Recommenders is tightly integrated with the Eclipse Java Development Tools (JDT). It provides intelligent code completion, extended documentation, and smart bug detection, all designed to manage the complexity of large APIs.Key Features
- The tool uses a database of best practices built from analyzing how applications use specific Java APIs, offering smarter hints during code completion. This integration makes the code completion process more intelligent and user-friendly.
- It also includes features like subword completion, which allows developers to find method names even when they only know a part of the name, not necessarily the beginning.
Compatibility with Eclipse Versions
Code Recommenders is compatible with various versions of the Eclipse IDE:Version Requirements
- It requires Eclipse 4.5 (Mars) or newer versions, such as Eclipse 4.6 (Neon) and Eclipse 4.7 (Oxygen).
- For older versions, such as Eclipse 4.3.2 to 4.4.2 (Kepler SR2 to Luna SR2), users can install specific versions of Code Recommenders (e.g., 2.4.9 and 2.4.10) from the respective update sites.
Platform and Device Compatibility
Code Recommenders runs on all platforms supported by the compatible Eclipse versions:Java Runtime Requirements
- It requires Java Runtime Environment (JRE) 1.7 or newer, ensuring it can operate on a wide range of platforms where Eclipse is supported.
Headless API and External Integration
The tool is not limited to the Eclipse IDE; it also offers a headless API that allows extenders to build new tools outside of the Eclipse environment:Architecture Benefits
- This architecture enables the use of Code Recommenders’ technology in headless environments or within other applications. For example, the Livedoc project uses Code Recommenders for Javadoc creation.
Localization and Internationalization
Code Recommenders is fully internationalized, relying on the Eclipse Babel project for localization. This ensures that the tool can be used in various languages, although the progress of translation may vary from one language to another.Conclusion
In summary, Eclipse Code Recommenders integrates deeply with the Eclipse IDE, offering advanced features that enhance developer productivity. It is compatible with multiple versions of Eclipse and can run on various platforms, while also providing the flexibility to be used in headless environments or other applications.
Eclipse Code Recommenders - Customer Support and Resources
The Eclipse Code Recommenders Project
The Eclipse Code Recommenders project offers several customer support options and additional resources to help developers effectively use and benefit from the tool.
Intelligent Code Completion
One of the primary support features is the intelligent code completion. This feature adjusts and filters the set of proposals given when the code proposal key sequence is triggered, prioritizing methods or constructors based on their frequency of use in existing code samples. This helps developers learn new APIs more efficiently and prevents unnecessary mistakes.
Extended Documentation
The Extended Javadoc view is another valuable resource. It summarizes all recommendations in one place, showing information about how often certain methods are called or overridden. This view helps developers learn new APIs by providing context-sensitive information about the usage patterns of methods and classes.
Context-Sensitive Snippets
Code Recommenders provides context-sensitive snippets of code that can be constructed manually or inferred from existing code samples. These snippets help developers quickly implement common code patterns, such as instantiating and configuring SWT widgets.
Smart API-Misuse Detectors
The tool includes smart API-misuse detectors that help identify and prevent incorrect usage of APIs. This feature is integrated into the Eclipse IDE and provides feedback based on the analysis of large amounts of existing code.
Stacktrace Search Engine
Code Recommenders is working on a stacktrace search engine that leverages information from stacktraces to find relevant resources on the web that discuss and solve similar issues. This feature aims to save developers time by providing quick solutions to common problems.
Developer Kit and Commercial Services
For developers working with custom APIs, the Eclipse Code Recommenders team is developing a Recommenders Developer Kit. This kit will enable developers to build recommenders for their own APIs from their Eclipse workspace. Additionally, commercial services are planned to assist companies in making Code Recommenders work for their specific APIs.
Community and Documentation
The project has a dedicated homepage and is part of the Eclipse community, which provides extensive documentation, tutorials, and community support. Developers can also download the plugin as part of the Eclipse Juno packages or install it via the Eclipse Marketplace.
Future Developments
The project is continuously evolving, with plans to support other languages like C/C /C# and dynamic languages such as JavaScript. There are also ongoing efforts to integrate new features like method arguments guessers and mining code snippets from example code.
By leveraging these resources, developers can significantly improve their productivity and efficiency when working with new and unfamiliar APIs.

Eclipse Code Recommenders - Pros and Cons
Advantages
Learning New APIs
Eclipse Code Recommenders helps developers learn new APIs more efficiently by analyzing example code and identifying valuable API usage patterns. This knowledge is then integrated back into the IDE through features like intelligent code completion and extended Javadocs.
Improved Productivity
By providing tools that learn correct API usages, it reduces the initial training costs and time associated with learning new application frameworks, leading to higher quality and shorter time to market.
Enhanced Development Experience
The tool offers intelligent code completion, which can significantly speed up the coding process and reduce errors by suggesting relevant code snippets based on analyzed patterns.
Disadvantages
Integration Challenges
While the tool is beneficial, it may require some setup and integration effort to fully utilize its features within the Eclipse IDE. This could be a barrier for developers who are not familiar with the Eclipse ecosystem.
Dependence on Example Code
The effectiveness of Eclipse Code Recommenders depends on the quality and availability of example code for analysis. If the example code is limited or of poor quality, the recommendations may not be as accurate or helpful.
General Context of Eclipse IDE
While the specific page on Eclipse Code Recommenders does not detail broad Eclipse IDE issues, it’s worth noting some general pros and cons of the Eclipse IDE, as they can impact the overall experience of using Eclipse Code Recommenders:
High Memory Consumption
Eclipse IDE is known for high memory consumption, which can slow down the system and affect performance.
Complex Debugging
The debugging process in Eclipse IDE can be complicated and time-consuming, especially for beginners or those unfamiliar with the software.
Outdated User Interface
Some users find the user interface of Eclipse IDE to be outdated and in need of modernization, which can affect the overall user experience.
However, these are broader issues related to the Eclipse IDE rather than specific to the Eclipse Code Recommenders. If you are already comfortable with the Eclipse environment, the Code Recommenders can be a valuable addition to your development toolkit.

Eclipse Code Recommenders - Comparison with Competitors
Unique Features of Eclipse Code Recommenders
- Analytical Code Completion: Eclipse Code Recommenders uses a Bayesian Network library called Jayes to analyze how other developers have used specific Java APIs, providing smarter code completion suggestions based on this analytical knowledgebase.
- Community-Driven Recommendations: It leverages code samples from the Eclipse Marketplace to build recommendations for `java.*`, `javax.*`, and `org.eclipse.*` APIs. This community-driven approach helps in suggesting best practices based on real-world usage.
- Offline Capability: Unlike some other tools, Eclipse Code Recommenders can be downloaded and installed entirely offline, making it suitable for environments with limited or no internet connectivity.
Alternatives and Comparisons
Codota
- Cloud-Based: Codota requires an internet connection to communicate with its cloud service for suggestions, unlike Eclipse Code Recommenders which can operate offline.
- Multi-IDE Support: Codota supports IntelliJ IDEA, Android Studio, and Eclipse, similar to Eclipse Code Recommenders, but it focuses more on autocompletion for Java and Kotlin.
Codeium
- Multi-Language Support: Codeium provides AI-generated autocomplete in over 20 programming languages and integrates with various IDEs like VSCode, JetBrains, and Jupyter notebooks. It generates multiline code suggestions, which is more extensive than the single-method suggestions of Eclipse Code Recommenders.
- Boilerplate and Unit Tests: Codeium also helps with boilerplate code, unit tests, and other tasks, making it a more comprehensive tool compared to the focused API usage recommendations of Eclipse Code Recommenders.
Amazon CodeWhisperer
- Real-Time Personalized Recommendations: CodeWhisperer generates complete functions and logical blocks of code based on the developer’s comments and code in the IDE. It supports Java, Python, and JavaScript, and is integrated into the development environment to provide real-time suggestions.
- Machine Learning: CodeWhisperer is powered by machine learning, which allows it to generate more complex code snippets compared to the analytical but less ML-driven approach of Eclipse Code Recommenders.
Gemini Code Assist
- Enterprise Security and Customization: Gemini Code Assist offers enterprise-level security and privacy, allowing companies to customize the tool using their own codebases and knowledge bases. It supports multiple IDEs and programming languages, similar to Codeium and CodeWhisperer.
- Natural Language Interface: Gemini Code Assist includes a natural language interface for chatting with the AI assistant, which is not a feature of Eclipse Code Recommenders.
Conclusion
Eclipse Code Recommenders stands out for its community-driven, analytically-based code completion and its ability to function offline. However, for developers needing broader language support, more comprehensive code generation, or enterprise-level customization, alternatives like Codeium, Amazon CodeWhisperer, or Gemini Code Assist might be more suitable. Each tool has its unique strengths, and the choice depends on the specific needs and preferences of the developer.
Eclipse Code Recommenders - Frequently Asked Questions
Here are some frequently asked questions about Eclipse Code Recommenders, along with detailed responses to each:
What is Eclipse Code Recommenders?
Eclipse Code Recommenders is a plugin for the Eclipse Java Development Tools that aims to improve code completion by learning from the collective behavior of developers. It analyzes how developers use APIs and provides intelligent code completion suggestions based on common usage patterns.
How does Eclipse Code Recommenders gather its data?
Eclipse Code Recommenders gathers data from two main sources: open-source repositories like GitHub, and previously, from user interactions within the Eclipse IDE. However, due to privacy concerns, the feature to collect data from user interactions has been deactivated in recent versions.
What features does Eclipse Code Recommenders offer?
Eclipse Code Recommenders offers several features, including intelligent code completion, subword completion, and extended documentation. It can suggest methods based on common usage patterns, show frequently overridden methods when extending a class, and display call chains. It also includes a feature for organizing common templates when working with a single object.
How does the subword completion feature work?
The subword completion feature allows developers to find methods or classes even if they don’t know the entire name. It searches for matches within the method or class name, not just from the beginning, making it easier to find what you need quickly.
Is Eclipse Code Recommenders part of the standard Eclipse distribution?
Yes, Eclipse Code Recommenders has been included in standard Eclipse distributions since Eclipse Mars. It is active by default in these versions, providing improved code completion out of the box.
How does Eclipse Code Recommenders handle privacy concerns?
Earlier versions of Eclipse Code Recommenders had a feature to send user interaction data to the Codetrails server, which raised privacy concerns. In response, the Eclipse Foundation deactivated this feature in later versions, such as those shipped with Eclipse Mars, to address these concerns.
Can I extend or customize Eclipse Code Recommenders?
Yes, Eclipse Code Recommenders 2.0 provides a headless API that allows developers to build new tools on top of the Recommenders technology. This includes integrating existing completion engines and running Code Recommenders’ technology outside of the Eclipse IDE.
What is the architecture of Eclipse Code Recommenders?
Eclipse Code Recommenders follows a two-tier architecture: a lower, headless layer built on plain Java that can be used outside of an OSGi environment, and an upper, Eclipse-dependent layer that integrates fully into the Eclipse IDE. It uses Google Guice as a DI framework and mixes Eclipse 4 and Google Guice for accessing preferences.
Are there any community resources or support for Eclipse Code Recommenders?
Yes, Eclipse Code Recommenders has a developer mailing list, blog posts, and a Google Plus page. The project also uses Gerrit for code reviews and has a presence on the Eclipse Forum, although the forum is not as actively used anymore.
How does Eclipse Code Recommenders help in learning new APIs?
Eclipse Code Recommenders helps developers learn new APIs by providing intelligent code completion, extended documentation, and common usage patterns. It analyzes example code and reintegrates this knowledge back into the IDE, making it easier for developers to learn and use new APIs effectively.

Eclipse Code Recommenders - Conclusion and Recommendation
Final Assessment of Eclipse Code Recommenders
Eclipse Code Recommenders is a valuable tool in the Developer Tools AI-driven product category, particularly for developers working with large and complex APIs. Here’s a detailed assessment of its benefits and who would most benefit from using it.
Key Features and Benefits
- Intelligent Code Completion: Code Recommenders provides intelligent code completion suggestions based on actual usage patterns derived from large codebases. This feature helps in reducing the time spent on learning new APIs and improves the accuracy of code completion.
- Extended Documentation: The tool offers extended Javadoc views that show how often certain methods are called or overridden, which is extremely helpful for learning new APIs.
- API Usage Patterns: It analyzes example code to learn correct API usages and integrates this knowledge back into the IDE, making it easier for developers to use frameworks efficiently.
- Static Method Recommendations: The tool suggests static methods to call, along with the likelihood of such calls, enhancing the development experience.
- Subword Completion: Developers can use subword completion to find methods or classes without needing to know the entire name, which is a significant time-saver.
Who Would Benefit Most
- New Developers: Those new to a particular API or framework will greatly benefit from Code Recommenders. It helps in learning the correct usage patterns and common templates, reducing the initial training costs and time.
- Experienced Developers: Even experienced developers can benefit from the intelligent code completion and extended documentation features, which can improve their productivity and code quality.
- Teams Working on Large Projects: Teams dealing with complex and extensive codebases will find Code Recommenders particularly useful. It helps in maintaining consistency in code usage and reduces errors by suggesting the most appropriate methods and classes.
Engagement and Community
- Active Community: The project has an active community with regular blog posts, updates on Google and Twitter, and interactions through the Eclipse Forum and Stackoverflow. This ensures that users can get support and provide feedback effectively.
- Developer Mailing List: The project’s developer mailing list is a key channel for coordination among developers, indicating a collaborative and supportive environment.
Overall Recommendation
Eclipse Code Recommenders is a highly recommended tool for any developer working with Java and other languages supported by the Eclipse IDE. Its ability to learn from actual code usage and provide intelligent suggestions makes it an invaluable asset for both new and experienced developers. The tool’s stability, performance, and extensive documentation make it suitable for daily and frequent use.
Given its features and the active community support, Eclipse Code Recommenders is an excellent choice for anyone looking to improve their coding efficiency and accuracy, especially when dealing with complex APIs and frameworks.