Como utilizar IA para aumentar sua produtividade em programação
Tags: produtividade, programacao
Published: 2020-06-09 10:38:09

---
title: "Como utilizar IA para aumentar sua produtividade em programação"
published: true
description: "Conhecendo o TabNine, uma ferramenta que melhora significativamente as sugestões de code complete do seu editor"
tags: [ 'produtividade', 'programacao' ]
cover_image:  https://jonhnnyweslley.net/pt-br/blog/como-utilizar-ia-para-aumentar-sua-produtividade-em-programacao/charles-deluvio-pjAH2Ax4uWk-unsplash.jpg
---

Nos últimos anos percebemos cada vez mais a utilização de inteligência artificial (IA) em nosso dia-a-dia. Porém, ainda temos poucas iniciativas visando utilizar IA para facilitar as atividades dos desenvolvedores. Como diz o velho ditado: "Casa de ferreiro, espeto de pau".

Mas, aos poucos estas [ferramentas][codota] [vão][kite] [aparecendo][TabNine]. Recentemente descobri o [TabNine][] e comecei a usa-lo. Gostei tanto que resolvi escrever este post para compartilhar este achado.

Basicamente, o TabNine é uma ferramenta de *code complete* que utiliza rede neural para sugerir opções de código com base no contexto, algo semelhante às sugestões do Gmail.

![Code complete de código Python. Fonte: TabNine blog](https://jonhnnyweslley.net/pt-br/blog/como-utilizar-ia-para-aumentar-sua-produtividade-em-programacao/tabnine_python_demo.gif)

Observe que as sugestões não se limitam apenas a palavras já digitadas ou métodos de um objeto, como geralmente é fornecido pela maioria dos editores. Isso porque o modelo de sugestão do TabNine foi treinado com aproxidamente [2 milhões de arquivos][tabdeep] do GitHub com o objetivo de prever as [próximas palavras][gpt2] com base nas [palavras anteriores][langmodels]. Como resultado, temos sugestões de trechos de códigos baseadas nas práticas mais comuns de projetos opensource utilizando o contexto do seu projeto.


## Em quais editores posso utilizar?

Utilizo TabNine com [Vim (Coc)][vimcoc], mas ele também está disponivel para VS Code, IntelliJ Platform (IntelliJ IDEA, PyCharm, Android Studio, and others), Sublime Text, Vim, Vim (Deoplete), Emacs, Atom e Jupyter Notebook.

Visite a [documentação oficial][tabinstall] para seguir as instruções de instalação para o seu editor preferido.

Se o seu editor já fornece code complete utilizando [Language Server Protocol][lsp], o TabNine pode [integrar-se a ele][tabsemantic] para fazer as sugestões. O melhor de dois mundos. =)


## Quais linguagens são suportadas?

TabNine tem suporte a Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS, and Bash.

Se você utiliza React, TabNine também é para você. Ele já reconhece os padrões mais comuns da biblioteca.

![Como me sinto utilizando TabNine. Fonte: Ghost In The Sell](https://jonhnnyweslley.net/pt-br/blog/como-utilizar-ia-para-aumentar-sua-produtividade-em-programacao/ghost_in_the_shell_programming.gif)


Postado originalmente em [Jonhnny Weslley](https://jonhnnyweslley.net/pt-br/blog/como-utilizar-ia-para-aumentar-sua-produtividade-em-programacao/).

[TabNine]: https://www.tabnine.com "TabNine uses deep learning to help you write code faster."
[tabdeep]: https://www.tabnine.com/blog/deep
[tabinstall]: https://www.tabnine.com/install
[tabsemantic]: https://www.tabnine.com/semantic
[langmodels]: https://openai.com/blog/better-language-models/
[gpt2]: https://github.com/openai/gpt-2
[codota]: https://www.codota.com "Get AI Code Completions for your IDE"
[kite]: https://www.kite.com "Kite is the AI assistant giving developers superpowers."
[vimcoc]: https://github.com/jweslley/dotfiles/blob/b739dfbc9848b583757a53574bf3cba19bf3b8ce/.vimrc#L471
[lsp]: https://langserver.org/