Say hello to Tabnine Chat!

Posted on June 28th, 2023

Today is a very exciting day at Tabnine: I’m thrilled to announce the launch of Tabnine Chat in Beta!

Tabnine Chat is an enterprise-grade, code-centric chat application that allows developers to interact with Tabnine’s AI models in a flexible free-form way, using natural language.

While ChatGPT and other tools are useful for generating “first draft” code, Tabnine Chat aims to support the workflows of professional developers working on big projects, especially in enterprises, via several key attributes:

  1. Tabnine Chat runs inside the IDE and is contextualized on whatever code you’re working on. This makes it useful not just for creating an app from scratch but also for incremental and highly contextual work, which is typically the nature of development in larger commercial projects.
  2. Tabnine Enterprise customers can connect their repositories to Tabnine Chat, allowing it to assist with coding and answer questions based on internal projects. This is especially useful when the organization has a substantial set of internal APIs, libraries, services, and best practices that are being used.
  3. Tabnine Chat is compatible with strict security and compliance requirements that many organizations have. Tabnine Enterprise also allows isolated environment deployment using virtual private cloud or on-premises deployment, ensuring total code privacy and security. In addition, Tabnine Chat was only trained on open source code with permissive licenses, guaranteeing that our models aren’t trained on GPL or other copyleft code.

What Tabnine Chat can do for developers

Our focus on developers was proven recently when Stack Overflow highlighted Tabnine as one of the two leading AI tools that developers are using

Tabnine Chat is a huge leap, expanding the applicability of Tabnine beyond code generation. Using Tabnine Chat is easy and intuitive, and at the same time flexible and powerful.

Here are some of the notable things developers can do with Tabnine Chat:

1. Explain a piece of code, which is especially useful when reading a new codebase.

2. Search your code repos using natural language, giving you the ability to “talk with your codebase.”

3. Generate new code based on natural language specs (e.g., “Create an app that reads the weather in London”).

4. Extend code with some capabilities (e.g., “Add logging to this code”).


5. Refactor code using human language (e.g., “Add type specification,” “Change convention,” etc.).

6. Generate documentation (docstrings) for specific sections of code.

7. Find issues in the code and fix them.

8. Generate unit tests.

This is just the tip of the iceberg! With some experimentation, I’m sure you’ll find creative and useful ways to really enhance your workflow with this exciting product. Learn more about Tabnine Chat’s use cases.

Enterprise benefits of Tabnine Chat

  • Understanding and explaining current code: Developers write code and build applications in context, and the ability to understand the capabilities and intentions behind complex code changes the velocity for teams and organizations that are constantly changing and adding new teammates. Tabnine Chat can help developers understand their code better by providing insights into the code’s structure, intent, and performance. This can help developers debug code more quickly, identify potential problems, and make better decisions about how to refactor their code.
  • Knowledge proliferation and accessibility: Large organizations can leverage Tabnine Chat to disseminate coding expertise, best practices, and lessons learned from the extensive codebase as well as data sources like Jira, Notion, documentation, etc. This makes knowledge more easily accessible to all developers and enables new team members to ramp up far more quickly. Tabnine Chat can also help to identify and share best practices across the organization, leading to improved code quality and productivity. In addition, code reuse results in fewer errors and increased consistency, reducing tech debt at later stages in the SDLC. 
  • Quality assurance and code consistency: Tabnine Chat can identify potential code issues, performance bottlenecks, or areas for improvement across the codebase. This allows organizations to proactively address issues and enhance the overall quality of the software produced. Tabnine Chat also helps ensure code consistency by providing recommendations for standardized coding practices. An added benefit is the reduced load during code reviews, which results in faster shipping of features and shortens the overall SDLC. 
  • Continuous improvement and innovation: Organizations can extract valuable insights to drive continuous improvement and innovation by identifying emerging coding patterns, suggesting optimizations, and highlighting areas for refactoring or performance enhancements. Tabnine Chat can also help organizations identify opportunities for improvement and implement those improvements quickly and efficiently. 
  • Standardization of coding practices: With Tabnine Chat’s personalized recommendations and understanding of the organization’s codebase, organizations can establish and enforce standardized coding practices across teams and projects. This can help to ensure consistency and maintainability of the codebase, which can lead to improved productivity and quality.

Want to try out Tabnine Chat? Click below to fill out the form and get an invite to the Beta, and let us know if there are any additional use cases you’d like to explore. We look forward to a quick Beta with our trusted testers and then rolling it out broadly to Tabnine Enterprise and Pro users in the coming months.

 

70% of developers embrace AI, StackOverflow survey reveals

Posted on June 20th, 2023

Exciting news from the Stack Overflow 2023 Developers Survey!

According to the latest survey results, software development is undergoing a remarkable shift. The survey highlights that AI is becoming an integral part of the developer’s workflow. This shift is revolutionizing the way that developers innovate and create.

Tabnine is the only independent AI tool for software development being used by developers. We’re deeply grateful to all the developers and enterprises who have supported us throughout our incredible journey.

At Tabnine, our commitment remains unwavering. We’re dedicated to providing developers with innovative, ethical, and secure AI coding assistants. By leveraging AI’s immense potential, we aim to help developers reach new heights of productivity and creativity.

Join us on this remarkable journey as we continue to fulfill our promises and shape the future of software development.

In case you’re an enterprise looking to incorporate AI into your software development life cycle, Tabnine is an exceptional option.

By utilizing Tabnine Enterprise, you’ll have the opportunity to benefit from contextual code suggestions that can boost your productivity by streamlining repetitive coding tasks and producing high-quality, industry-standard code. Tabnine code suggestions are based on large language models that are exclusively trained on credible open-source licenses with permissive licensing.

Tabnine AI coding assistant helps development teams of every size use AI to accelerate and simplify the software development process without sacrificing privacy, security, or compliance. Tabnine boosts engineering velocity, code quality, and developer happiness by automating the coding workflow through AI tools customized to your team. Tabnine supports more than one million developers across companies in every industry. 

Unlike generic coding assistants, Tabnine is the AI that you control:

 

It’s private. You choose where and how to deploy Tabnine (SaaS, VPC, or on-premises) to maximize control over your intellectual property. Rest easy knowing that Tabnine never stores or shares your company’s code.  


It’s personalized. Tabnine delivers an optimized experience for each development team. It’s context-aware and can be tuned to recommend based on your standards. You can also create a bespoke model trained on your codebases.


It’s protected. Tabnine is built with enterprise-grade security and compliance at its core. It’s trained exclusively on open source code with permissive licenses, ensuring that our customers are never exposed to legal liability.

Tips and tricks to best coding practices with Tabnine

Posted on June 14th, 2023

One of Tabnine’s best features is that it works out of the box with no configuration required.

Tabnine seamlessly offers real-time code completions as you type, so you can enjoy its basic functionality without having to do anything special besides coding as usual. Nevertheless, there are a few strategies one can employ to optimize the results.

Install Tabnine on your chosen IDE

Make sure you accept Tabnine’s invitation email, then follow the instructions as you go. You can also refer to Tabnine’s Getting Started page if you get stuck, or contact our support team at support@tabnine.com

How to get Tabnine’s code suggestions

As you type, Tabnine AI coding assistant suggests code completions based on the context. To accept a suggestion, press Tab or Enter.

Code completion adapts to your pace as you code

Just keep typing and Tabnine will suggest code as you type. Hit Tab to accept a suggestion.

Choose the type of completions that best suit your needs and enhance your coding experience

Tabnine offers several types of code completions: 

  • On the fly: Real-time suggestions as you code (hit Tab to accept)
  • Full function: Type Enter and Tabnine will generate your entire function without exiting your editor
  • Natural language to code: Type // and describe the function you’re looking for, then press Enter

Tabnine uses existing code and natural language for context

The more context you give Tabnine, the better the code completions. Using Tabnine on an empty file might lead to somewhat “noisy” results. This context could come from open and interacted files, installed libraries, and the code and comments you’ve authored. The richer the context, the more precise and refined the code completion results will be.

Use descriptive function names and variables

Tabnine uses all the information in your editor as context, including both code and normal text. Giving functions and variables clear, descriptive names can help Tabnine predict more accurately. For instance, writing out a function signature gives Tabnine a good clue. Once you’ve named a function, press Enter.

Use comments as they would appear in real code

Tabnine can generate code from a comment. Simply write a comment, hit Enter, and Tabnine will generate the code for you. For example, you can write something like: “// connect to the database”. 

We don’t recommend asking questions like: “// Q: How do I connect to Mongodb?” Instead, keep it simple and write a comment the same way you always would.

How to trigger a code completion 

Tabnine has a slight delay built in so that it doesn’t trigger too often as you type. To trigger a code completion, we recommend pausing your typing for a few milliseconds. 

If you don’t like a suggestion provided by Tabnine, you can keep on typing and the suggestion will be updated automatically. If you find the suggestion distracting and want it to go away, just hit Escape.

Documentation lookup

Tabnine can also provide documentation lookup for functions and libraries. By selecting a suggestion and pressing the assigned key combination, you can access relevant documentation right within your code editor.

Customization

Tabnine allows you to customize its behavior according to your preferences. You can adjust the number of suggestions shown, enable or disable specific features, and fine-tune the model’s behavior to suit your coding style.

Feedback and reporting of issues

If you encounter any issues or have suggestions for improving Tabnine, please share them here. Providing feedback helps the developers enhance the tool and address any problems. 

Final note

As demonstrated in the examples above, Tabnine is a powerful tool that significantly enhances your productivity in various aspects of your daily tasks (and we’re constantly discovering new ones!).

To provide an even better experience and generate more accurate results, Tabnine’s dedicated team is constantly striving to improve and learn from our users. Witnessing and experiencing the evolution of AI-powered programming tools is truly exciting.

Feel free to send us feedback or questions to support@tabnine.com.

 

GitHub Copilot for business: Benefits, concerns, and getting started

Posted on June 10th, 2023

What is GitHub Copilot for business? 

GitHub Copilot for Business is an advanced AI-powered code completion tool specifically designed for enterprise developers and organizations. It automatically generates code by leveraging machine learning models trained on vast amounts of public code repositories. By integrating seamlessly with popular IDEs and code editors, Copilot for Business streamlines the development process and reduces repetitive tasks. 

However, like the basic version of GitHub Copilot, GitHub Copilot Business creates the risk that some of the code it produces might not follow coding best practices, or might contain security vulnerabilities. Organizations should exercise caution and carefully review GitHub Copilot code before using it in software projects.

An image from a McKinsey report on developer productivity with generative AI, published in June 2023

Benefits of GitHub Copilot for organizations 

GitHub Copilot offers several benefits for businesses, helping to improve efficiency, productivity, and overall code quality. Some of these benefits include:

  • Faster development: Copilot can accelerate the development process by generating code snippets and offering suggestions, which can save developers time and effort when writing or modifying code.
  • Improved productivity: With AI coding assistant, developers can focus on more complex tasks and problem-solving, leading to increased overall productivity.
  • Onboarding and training: Copilot can be a valuable tool for new hires, helping them to quickly understand and adapt to a company’s coding practices and standards. It also serves as a useful learning tool for junior developers, allowing them to learn from the vast knowledge encoded within the AI model.
  • Knowledge sharing: Copilot draws from a diverse range of programming languages, libraries, and frameworks, which can help developers discover new techniques, best practices, and efficient solutions for various coding challenges.
  • Reduced cognitive load: Developers can use Copilot to handle repetitive or tedious tasks, such as boilerplate code generation, allowing them to focus on more critical aspects of the project.
  • Cost savings: With increased efficiency and productivity, businesses may be able to reduce development costs and shorten time-to-market for their products and services.

Challenges of implementing GitHub Copilot in organizations 

Similar to GitHub Copilot for individuals, GitHub Copilot functions by transmitting code snippets from your IDE to GitHub.

There is limited control over code security, and the GitHub Copilot may not provide comprehensive protection against intellectual property leaks.  GitHub Copilot’s model is based on open-source licenses, including some that are non-permissive, as well as GPL licenses with Copyleft clauses. GitHub Copilot’s training dataset includes a wide variety of public code, including licenses like GPL with non-permissive terms. This scenario could potentially expose companies to legal vulnerabilities.

Although GitHub Copilot brings numerous benefits to businesses, its implementation also poses certain challenges that require careful consideration. To successfully integrate the tool into existing workflows, organizations must thoroughly evaluate these challenges, strike a balance between the advantages of Copilot and the associated risks, and implement suitable measures to mitigate any potential issues.

  • Intellectual property and licensing: Copilot is trained on a vast dataset of public code repositories, which might raise concerns about potential intellectual property infringement or improper use of copyrighted or licensed code. Businesses need to ensure that the generated code does not violate any copyrights, licenses, or legal agreements.
  • Data privacy and confidentiality: Since Copilot is a cloud-based service, businesses should consider potential data privacy and confidentiality concerns when using the tool. It is essential to understand the data handling policies of GitHub and OpenAI to ensure that sensitive or proprietary code is not inadvertently exposed or shared.
  • Loss of coding style and conventions: While Copilot can help maintain code consistency, it may not always generate code that adheres to a specific company’s coding style or conventions. Developers will need to ensure that any AI-generated code is modified to meet their organization’s coding standards.
  • Integration and compatibility: While Copilot is currently integrated with Visual Studio Code, businesses using other development environments or IDEs may face challenges in integrating the tool into their existing workflows.
  • Training and adoption: Introducing GitHub Copilot into a business may require additional training and resources to ensure that developers understand how to use the tool effectively and safely. This could initially result in additional costs and time investments.
  • Code correctness and security: Copilot may sometimes generate incorrect, insecure, or vulnerable code, as the AI model is not perfect. It’s crucial for developers to thoroughly review the suggestions before incorporating them into their projects to avoid introducing bugs or security risks.

Enabling and setting up GitHub Copilot for business  

Copilot Business is only available for companies with GitHub Enterprise, which costs $210 per user per year for the entire organization, which can add up to 100s of users.

If you want to use GitHub Copilot for Business in your organization or enterprise, you must first establish a policy for the use of GitHub Copilot. Once GitHub Copilot is enabled at the enterprise-level, you can configure GitHub Copilot settings for each organization in your enterprise.

Tabnine Enterprise: A GitHub Copilot alternative for companies

Tabnine is the AI coding assistant that helps development teams of every size use AI to accelerate and simplify the software development process without sacrificing privacy, security, or compliance. Tabnine boosts engineering velocity, code quality, and developer happiness by automating the coding workflow through AI tools customized to your team. Tabnine supports more than one million developers across companies in every industry.

Unlike generic coding assistants, Tabnine is the AI that you control:

It’s private. You choose where and how to deploy Tabnine (SaaS, VPC, or on-premises) to maximize control over your intellectual property. Rest easy knowing that Tabnine never stores or shares your company’s code.

It’s personalized. Tabnine delivers an optimized experience for each development team. It’s context-aware and can be tuned to recommend based on your standards. You can also create a bespoke model trained on your codebases.

It’s protected. Tabnine is built with enterprise-grade security and compliance at its core. It’s trained exclusively on open source code with permissive licenses, ensuring that our customers are never exposed to legal liability.

 

Tabnine Chat

Tabnine Chat can help with every stage of development, right in your IDE:

  • Answering questions regarding your code
  • Generating new code from scratch
  • Explaining a piece of code
  • Searching your code repos for specific functions or pieces of code
  • Refactoring code
  • Generating documentation (docstrings)
  • Finding and fixing code issues
  • Generating unit tests and more