
Show HN: TabNine, an autocompleter for all languages - jacob-jackson
https://tabnine.com/
======
krat0sprakhar
Quoting the author from r/rust[0]

> Its paid features are always enabled when completing Rust code, in
> acknowledgment of the fact that TabNine could not exist without the Rust
> ecosystem.

Thanks for this, Jacob!

[0] -
[https://www.reddit.com/r/rust/comments/9uhc1x/tabnine_an_aut...](https://www.reddit.com/r/rust/comments/9uhc1x/tabnine_an_autocompleter_for_all_languages_built/)

~~~
fiatjaf
That's odd, because it could indeed exist without the Rust ecosystem. The
author just opted to write it in Rust.

~~~
geoelectric
Think of it like "I couldn't have done it without you" when people accept
awards. Sure they could have, it's just an expression of appreciation.

He might also not have chased the project if he weren't working in an
ecosystem he particularly liked, so who knows, maybe it wouldn't have happened
without Rust.

~~~
soneca
I disagree. I believe most people accepting awards really wouldn't have done
it without other people.

Actors do not win Oscars doing great performances in bad movies.

Scientists do not win Nobel prizes working alone or in bad work conditions.

I always take these appreciations at face value.

~~~
geoelectric
Sure, makes sense. The original argument was that an ecosystem like Python's
could have been a possible substitution for Rust, as an example, and therefore
it was a baseless statement. Think the analogy with yours would be an equally
good screenwriter or scientific collaborator. You need one, but technically
maybe not exactly the one you had.

That said, not trying to undercut anyone's appreciative statements, especially
the one from OP in his repo towards Rust! Obviously people (and programming
languages, for that matter) aren't simple drop-in replacements for each other
in real life. You have to be inspired and empowered by them.

That personal motivation or rapport component is probably what was being
missed in the post to which I replied.

------
itdaniher
> your software will automatically update to the full released version at no
> additional charge.

So, give your proprietary software both network access and access to all my
source code?

I have very few complaints about the Jedi autocomplete library, which is
neither proprietary nor requires network access.

I welcome innovation in dev tools, but I wish you had found a monetization
strategy that didn't require us to trust you so completely.

~~~
jacob-jackson
Your concerns are understandable. It is about as risky as installing an editor
plugin which updates automatically.

The private keys used to sign releases are kept offline and would not be
available to an attacker even if they compromised my online accounts.

Finally, TabNine will work correctly if you deny it network access (say, by
blacklisting update.tabnine.com).

~~~
itdaniher
...as risky as installing a proprietary editor plugin which updates
automatically, yes.

Also, AFAIK most understandings of MIT, BSD, and Apache 2.0 licenses require
you to acknowledge the copyright holders of the source code you compile into
your binary, even if the licenses permit binary distribution. I can't find
your "Copyright (c) 2018 Tokio Contributors" or "Copyright (c) 2014 The Rust
Project Developers" that I'd expect based on `strings TabNine | grep github`.
Maybe you've got a lawyer that suggests otherwise? Your plea of "trust me, I
have good hygiene" carries less weight when I have to `strings` your stuff to
know what shoulders of which giants you're standing on.

~~~
JimDabell
> ...as risky as installing a proprietary editor plugin which updates
> automatically, yes.

Can't you make the same complaint about any auto-update functionality in any
software? Even if it's BSD licensed, you're still counting on whomever has
authority to push an update to not push malicious code.

This doesn't seem to have anything to do with the fact that his code is
proprietary nor his monetisation strategy, so why are you singling him out for
those?

~~~
itdaniher
Proprietary - Can't patch out the autoupdate, which I might be tempted to do
if something else in my toolchain did things at someone else's leisure.

DRM/monetisation - the product as of my comment didn't seem to acknowledge the
open source works compiled into the binary, and I didn't think that was a good
look for someone with the authority to push out malicious code.

------
imh
I wish someone would figure out the right UX for partial autocompletion. e.g.
I type "wo" and my phone suggests ("would", "work", "wonder"), there should be
an easy way to say I'm trying to type "working" rather than clicking the
"work" autocomplete then backspace, then "ing".

I'd imaging TabNine has this problem in spades, since it does such long
autocompletes. It could suggest "unsigned long long" when I've typed "unsi"
and I really want "unsigned long int". Seems like a tough UX problem.
¯\\_(ツ)_/¯

~~~
eridius
Xcode has handled this for years. In Xcode, when autocompletion is presented,
hitting Tab will complete the longest unique prefixed subword for the
currently-selected tab item. If this results in only having one completion
option left, then it completes the whole thing (e.g. adding method arguments
and whatnot). Similarly, hitting Return will just complete the whole entry
instead of the longest unique prefixed subword.

By that I mean if you have 2 autocompletion options `addDefaultFoo()` and
`addDefaultBar()`, and you type `add` to get those options, hitting Tab will
fill in `addDefault`, and then hitting Tab again will fill in the rest of the
selection.

~~~
mfoy_
*nix shells typically do something very similar, where hitting tab auto-completes up to the first forking character

~~~
function_seven
After recently binge-watching The Good Place, this comment rattled me :)

~~~
ddalex
Lol, I wasn't the only one!

Which is The Good Place of computer languages?

~~~
suvelx
Lisp? Up front appears to be written with one thing in mind: Infuriate you
with brackets.

Then, once you've worked out how to deal with the brackets, it's pretty
forking sweet.

~~~
ZeikJT
Never seen The Good Place so I'm just trying to figure out what the frak you
all are taking about.

------
ajhofmann
I've been using TabNine for a few weeks, and it's really cool how well it
works. My first "woah" moment with it was writing a function where the first
thing I wanted to do was take the length of the array, and once I started
typing

def foo(bar):

    
    
        n
    

it suggested the entire completion of "= len(bar)". It has a really cool way
of picking up your coding style that makes it stand out to me.

Full disclosure that I know the author.

~~~
Buttons840
I agree that is worthy of a "woah".

Thinking about it more, I wonder how useful that type of autocompletion is for
those who can type fast. I wonder how much time it takes my brain to context
switch away from "code authoring and typing mode" to recognize the " =
len(bar)" in the autocomplete options list. It seems like it would be faster
to just type out the " = len(bar)" for those who type a solid 60+ words a
minute?

------
modernerd
“If TabNine does not work as soon as you install it, this is a bug and you
should file an issue.”

Just wonderful. All dev tools should be like this.

I got great results for a PHP/JS project straight away — an instant upgrade
for me just to support continued development.

------
nojvek
Played with free for a bit, 200KB is quite a bit low, didn't get any
completions. Purchased the premium licence. Gotta say stripe integration is
very smooth.

Overall after a couple of hours of playing with this. My mind is quite blown
away. This is absolutely amazing.

Hopefully Microsoft or someone acquires this technology for a fat sum and open
sources it.

I've thought about code completion smarts for a long time. You actually
executed and delivered a product. Kudos! Take my money!

~~~
tom_mellior
I don't get the jump from "didn't get any completions" to buying the premium
license. Can you explain?

~~~
Insanity
I suppose because it's worth trying and the price is not unreasonably high.
But the 15MB indexed limit to me seems strange on premium, as others have
mentioned.

------
mpartel
I'm trying this with VSCode and C#. It's quite neat, though no doubt it'd be
even better with a dynamic language.

My main issue is when I type a '.', the C# extension gives me an accurate list
of members, but TabNine intersperses its own guesses, which are often wrong.

Possible fixes or mitigations (VSCode API permitting):

\- After a '.', discard the TabNine completions whose prefix doesn't match one
of the C# completions.

\- After a '.', discard all one-word TabNine completions.

\- Give all TabNine completions a different icon and maybe sort them all at
the top or bottom.

------
sidcool
>TabNine is 11,000 lines of Rust. In recognition of the fact that TabNine
could not exist without the Rust ecosystem, TabNine's paid features are always
enabled when completing Rust code.

This makes me very happy as a new Rust learner.

------
nickdandakis
First impression is that this is insanely fast and is actually giving
recommendations based on context, without setting up additional files. So,
it's doing exactly as advertised.

I'm using this in Vim and would like to know if there's a way to configure it
such that the dropdown does not show up until I hit <C-n> or <C-p>? I realize
that this is supposed to be a zero-config tool, and I'm asking for a
configuration!

Great job with pricing as well. Going to use this for a week before I commit
to the license but $29 is a no-brainer for how much use I'll get out of this
autocomplete.

~~~
tbodt
I've written a vim plugin for people who use deoplete and YCM would conflict:
[https://github.com/tbodt/deoplete-tabnine](https://github.com/tbodt/deoplete-
tabnine)

~~~
sundayedition
Thank you for this. The deoplete defaults are much more sane than ycm. I've
started using your plugin. I'm glad to see the author of tabnine has asked to
feature it on his site.

------
amasad
I've prototyped something like this in the past using n-grams and it was
surprisingly effective. When I think it gets really interesting is if you
marry ML/NLP tactics with traditional static code analysis.

So you can imagine the ML engine generating the suggestions with the static
analyzer ranking the suggestions intelligently.

It's kind of similar to the original AlphaGo where you have the model generate
the potential moves that are then ranked by the Monte Carlo Tree Search
algorithm.

~~~
pavelbr
I believe the Visual Studio team is working on something like this to provide
better autocomplete for specifically C#.

------
anschwa
This is extremely cool. Emacs has a similar, though less intelligent, language
agnostic auto-complete function called hippie-expand[0], which has generally
been good enough for my needs.

[0]
[https://www.gnu.org/software/emacs/manual/html_node/autotype...](https://www.gnu.org/software/emacs/manual/html_node/autotype/Hippie-
Expand.html)

------
woolvalley
Why is the paid index limit 15MB? Why does the paid version have a limit?

~~~
jacob-jackson
TabNine will still work on projects of 15MB or more, it will index the 15MB of
files that are most relevant to the files you are editing (determined by
distance in the directory tree).

The limit exists because otherwise latency or RAM usage might be too high.

~~~
fallenhitokiri
A configuration option would indeed be nice. I have more than enough memory
for tools providing a high value for my daily work. Kudos for setting same
defaults!

------
phiresky
Nice. I had the same idea a while ago [1], but I didn't make it very far. Good
to see that the concept of applying ML to intellisense can actually be useful.

[1]: [https://github.com/phiresky/deep-
intellisense](https://github.com/phiresky/deep-intellisense) Video
[https://www.reddit.com/r/programmerhumor/comments/8xrwr5/_/](https://www.reddit.com/r/programmerhumor/comments/8xrwr5/_/)

------
joshstrange
Can't wait to see this for Intellij, looks really cool but I am fully bought
in on IDEA and while I have used Atom/VS/Sublime/etc this isn't enough to give
up everything else I get in IDEA.

~~~
dzek69
+1 for intellij, I'm usually not into extensions, but this one seems worthy

------
ivan4th
Cool technology. Yet, no Emacs support yet... oops :(

~~~
jacob-jackson
Sorry :( Emacs support is coming within a couple months. You can sign up at
[https://tabnine.com/install](https://tabnine.com/install) to be notified when
it's released.

~~~
pimeys
I'll buy your tool immediately when the emacs support lands. Subscribed
already to the email list.

------
kasbah
Looks neat, will give it a go. I think you may be in violation of the GPL for
your vim plugin since you are creating a combined work but are not releasing
the TabNine source code under GPLv3.

[https://github.com/zxqfl/tabnine-
vim/blob/master/COPYING.txt](https://github.com/zxqfl/tabnine-
vim/blob/master/COPYING.txt)

~~~
tzs
It looks like it is probably OK. The vim plugin it is based on seems to have
already been designed to run using a client/server architecture. The plugin is
the client, and it gets its completions from a server.

He just changed it so that it uses TabNine as that server.

~~~
tmerr
Not cool in my book regardless of legality. Rebranding it to tabnine-vim alone
is confusing, since none of the legwork for vim support belongs to TabNine. At
the very least the original copyright notice should be left intact in the
README (iiuc this is required by GPLv3).

~~~
tzs
It includes a copy of GPL. The README tells you what it applies to, and what
it does not. It tells you where to find the original project it was forked
from. And all the files that the TabNine guy did not write contain their
original copyright notices from the YouCompleteMe authors.

------
mdip
Let me be not the first to say ... nice! You've ticked a lot of boxes for me,
Rust to boot. And the price is reasonable. I echo some of the privacy
concerns, but I am not a purist who will not use proprietary development tools
-- many of which are from small shops. I had questions that I'm sure I'll get
answered after I install the trial extension:

I noticed in some of the examples that the autocompletions were multi-word
(for the language involved). This makes sense and I have no real problem with
that it limited cases. What I wonder is have you found any issues with
autocompletions resulting in less DRY code?

\- and -

Since it's not parsing, is it possible to tell it to not show autocompletions
based on a pattern? This is no deal breaker, it just annoys me when code
comments accidentally invoke the drop-down and I'd imagine that a similar
problem could happen with strings.

------
asdkhadsj
This is really, really cool and I thank you for this!

I'm seriously hyped, I just hope it works as well as it claims.

 _edit_ : Can you provide some help/FAQ on using it from the CLI? I'd like to
add support for my own editor, but I'm not yet sure if that's possible.

Thanks!

~~~
jacob-jackson
Thanks for the kind words! I'll write a guide within the next couple of days
on how to write a client.

~~~
ashwinaj
Awesome plugin Jacob. I have a question about the full version, is it per
editor? Eg., I use Sublime Text most of the time, but occassionally vim, do I
need to buy 2 licenses? Also are these licenses transferrable between machines
(work vs home)?

~~~
danprime
It's per user/email. I just purchased and installed it on my VS Code, and two
separate vim installations/instances and they all worked.

~~~
ashwinaj
Thanks for the information!

------
stdcall83
Why is there 15MB limit. I would love to use it on Linux kernel development.
The tree is huge. Can it handle that?

~~~
jacob-jackson
It should be able to handle it.

I just added a 30-day money back guarantee.

------
frou_dh
Do you have to give up existing specific-language-aware completions to use
this?

Or are the editor plugins implemented in such a way that it gets mixed in to
what you already have?

------
trishume
I've been using TabNine for a couple months now and it's been really great. It
"just works" and I don't ever have to worry about it even when opening large
projects. It's always fast and high-quality. It really feels like it's just
part of Sublime Text in a way that's very rare for a plugin.

------
danShumway
> TabNine builds an index of your project, reading your .gitignore so that
> only source files are included.

Heads up, it's not necessarily uncommon for JS developers to include
node_modules in their git repos. If you're developing something like an
Electron project or a website instead of a library, it's even sometimes
advised to do so -- there's a line of thought that your static dependencies
should be tracked as part of your source control.

It might not be a terrible idea to have an alternate config for this that
allows excluding other directories. Even if a developer doesn't include their
dependencies, they might have old code that they don't want integrated into
their suggestions if they're in the middle of a refactor or something.

~~~
pitaj
> it's not necessarily uncommon for JS developers to include node_modules in
> their git repos

It's highly uncommon, and I've never seen an active, maintained, or popular
project with it.

~~~
nojvek
to handle a static state of dependencies, usually a package-lock or a
yarn.lock file is committed to the repo. That is the usual way to freeze the
dependency tree.

~~~
danShumway
Freezing a dependency tree isn't the point. The point is to avoid making a
network request and to know that your dependencies will still be there 5 years
from now.

Remember that one of the benefits of Git is that it's distributed. Even if you
are hosting your own npm mirror, relying on it gets rid of that distributed
advantage. It doesn't help you to be able to clone from the person next to you
if you can't build without making a network request.

I'm not saying that this should be the norm for everyone. It obviously
shouldn't be the norm for libraries. But it's not inherently a crazy or
harmful idea.

------
cjohansson
Sounds like a great tool, I got two feature requests:

* make .gitignore logic optional, we always have the system we’re working with ignored and only include our extension but we really need autocompletion from the whole project

* Emacs plugin

------
wasd
How does TabNine work for all languages? Curious about implementation details
and use with dynamic languages. I would HAPPILY pay $29 if it works well for
Ruby.

~~~
ajhofmann
I've been using it for Python mainly but I find it's really helpful. It can
often infer arguments for functions or functions to use based on the variable
names. I've used Ruby lots in the past and I think it would work just as well
based on my experience. I would give the free version a try and see what you
think.

------
oedmarap
> Why is it called TabNine?

> When using the Sublime Text client for TabNine, the keyboard shortcut to
> select the ninth suggestion is Tab+9.

Before reading that I thought it was loosely named after the old T9 (Text on 9
keys) predictve system for mobile phones with numeric keypads only.

That being said, while I'm still passively learning to code and may not need a
full license yet, it's a well-priced gift idea for friends who are full-time
developers.

~~~
wingerlang
> .. predictve system for mobile phones with numeric keypads only

I'm curious if this explanation is needed on HN

------
dkarbayev
I just installed it in Sublime Text 3, TabNine seems to expand the first
autocompletion only if the character to the left of cursor is not a
whitespace, i.e. if I'm typing "let v = |" (where | is a cursor) and TabNine
shows me a list of autocompletions, I press Tab key and then \t is inputted
instead of first suggestion.

------
smortaz
Congrats! Out of curiosity, is this fundamentally different/better than the
one in vscode? Nice to see it's multi-lingual.

[https://marketplace.visualstudio.com/items?itemName=VisualSt...](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)

------
tobr
Just installed the Sublime Text version.

It seems to work as promised. Would be great if it could support unsaved files
too.

------
superasn
I was hoping there was a version that worked with Webstorm or Phpstorm. I
can't wait to try this out.

------
jniedrauer
Any thoughts on how this performs vs deoplete? I've really enjoyed deoplete.
It makes my coding quite a bit faster. However I've recently become pretty
frustrated with all the gocode forks and go module interaction, so there's
definitely room for improvement.

~~~
nims11
Tabnine and something like deoplete are not directly comparable in my opinion.
Deoplete is a completion framework (with dictionary based language specific
systems) and tabnine is an intelligent language-agnostic completion system.
You could theoretically have Tabnine support deoplete (it is currently YCM
based). As the author mentioned in an other reply, dictionary based completion
systems are good for api exploration, while tabnine is for more contextual
completion.

~~~
tbodt
I wrote a Deoplete source for TabNine: [https://github.com/tbodt/deoplete-
tabnine](https://github.com/tbodt/deoplete-tabnine)

------
simias
I must say that I never found a "clever" autocomplete that really suited me, I
just ended up using a rather dumb "hippie-expand" in Emacs that basically
tries to complete the word under the cursor using anything it finds in the
current file or, failing that, any other open file. It's very dumb but it
works regardless of language (including completing plain text in emails for
instance) and it's predictable.

I'm pretty interested in your project, the way it seems to be able to learn
from the way you type matches my workflow better than the usual "clever" auto-
expander. I also have no issues paying for good tools (and $29 is really
negligible as far as I'm concerned when it's for productivity tools, my
keyboard alone costs an order of magnitude more).

However, and I know I'm probably in the minority here, I won't even consider
using your program if I can't get the source. I'm not even asking for a FLOSS
license or anything, even if it just came with a tarball that I can't
redistribute I would consider it. But as it stands I would be completely
relying on you maintaining the code and porting it to whatever platform I may
want to use later. As it stands for instance it seems that you don't provide
binaries for the BSDs: [https://github.com/zxqfl/tabnine-
vim/tree/master/binaries/0....](https://github.com/zxqfl/tabnine-
vim/tree/master/binaries/0.6.0) . I'm sure I could get it to work with Linux
binary compatibily on FreeBSD but why even bother? What if Apple releases an
ARM-based desktop a few years from now and you've stopped maintaining your
project? Then I have to replace it with something else if I have to code on a
Mac. The price is a non-issue but having to work around the closed source
nature of the software is not something I want to bother with.

Again, I know that I'm probably in the minority and that many people on HN
have no issues using mostly closed source development stacks but I genuinely
wonder if you'd have much to lose if you kept the same business model but
provided the source. I mean, if people want to pirate your program I'm sure
they'll find a way even if it's just the binary, so I doubt you gain much from
that. Then the risk is people stealing your code but is there really that much
secret sauce in an autocomplete program? If people really care won't they just
reverse-engineer it anyway? Aren't they even _more_ likely to try and reverse-
engineer it if it's the only way to get an open source version that they
control?

Maybe I'm overthinking this.

Anyway, I hope I don't appear too negative, that's just my opinion. I'm happy
to see people working on improving our code editing experience in any way or
form, sometimes it feels like we're still in the stone age with our dumb ASCII
files and relatively primitive tooling.

~~~
demircancelebi
As long as there is demand, he'd most probably maintain the project but it's
not a disaster if he decides not to.

If there won't be any demand for this tool in a few years this could mean 2
things: Either people think it's not worth it (in this case, you don't lose
anything by not using it) or there are better/cheaper alternatives (and you
can use them)

~~~
luxcem
> As long as there is demand, he'd most probably maintain the project but it's
> not a disaster if he decides not to.

There is a lot of reason for someone to stop maintaining a project event if
there is demand, they get bored, they change job and don't have time anymore,
they get a new hobby…

------
pandeykartikey
Apparently I see two drop downs for auto completion, Since I installed TabNine
:/.

~~~
spectrum1234
Disable your text editors default?

------
lynxaegon
Really nice. Good job!

I tested it in Sublime Text, and it's a bit odd that i can tab after i first
pressed the tab button and the autocomplete window disappeared, but i think i
can work with that :)

------
hartator
Awesome. Excellent work.

It seems to work with a small Ruby app, but not with a big Ruby on Rails
application. Is it because it's too large? How can I check for errors or index
status?

Using it with Sublime Text.

~~~
Mic92
I suppose you are running into the index size limitation that is mentioned
here: [https://tabnine.com/buy](https://tabnine.com/buy)

~~~
hartator
I suppose it's that. I wonder why I don't see any error messages tough. I
don't want to buy it if it won't work for my project. It's more than 200kb
_and_ 15mb but the .rb are way less.

[edit] Ok, it just took a bit before showing the tab competitions and the
license message. Will be useful to know where the index process is at.

[edit2] Just bought a license. Keep up the good work!

~~~
luislezcair
I'm also interested in using it for a Rails application. Does it work well
with the payed version?

------
nyxtom
I've had better luck with TernJS and deoplete in vim. I really like that this
is much more responsive but it lacks the completion support that I have to
expect with ternjs.

------
usaphp
I like the license registration process, so intuitive and simple.

------
carlmr
I'm trying it out for a bit now, I'm really intrigued. If I buy it, can I use
it at work and at home?

Also how do you enter in VSCode that you purchased the pro extension?

~~~
imhoguy
Looks like you can: _License keys may be used on multiple computers and
operating systems, provided the license key holder is the primary user._
[https://tabnine.com/eula](https://tabnine.com/eula)

~~~
carlmr
Perfect, thank you!

------
usaphp
I wonder how can I disable it for certain file types, for example in SCSS I
don't want those, because I already have a good auto suggester that I am used
to.

------
peterhajas
How does licensing work? Does this give me a file I put on my machine? I have
my dotfiles checked into git, so I'd rather not commit the license publicly.

~~~
mpartel
You get a license code that you paste into an editor with TabNine installed.
The autocompletion engine sees it and completes the registration. Not sure
where it gets saved ultimately.

------
nukemandan
What if it autocompletes bugs and vulnerabilities?

~~~
pvdebbe
Pray, Mr. Babbage, if you put into the machine wrong figures, will the right
answers come out?

~~~
zawerf
I find it interesting that this quote will become less and less absurd as
technology continues to improve.

The confusion stems from the fact that a human can tolerate a certain amount
of "wrong" and still give the "right answer". For example you don't need to
speak with perfect grammar to be understood. Humans won't choke on syntax
errors the same way a browser chokes on malformed html.

Machines are much more rigid and can't understand context and intent. But this
is starting to slowly change in the age of machine learning. For example if I
make a small typo, I expect an autocompleter to still understand what I was
trying to type. It wouldn't be too absurd to believe that in a not too distant
future, it would also be able to autocomplete away common/obvious bugs. Maybe
it can even autocomplete/rewrite code from near pseudocode if the intent is
clear enough.

------
typon
200KB for the free version seems really small :(

~~~
jade12
Agreed. 200KB is far too small to effectively evaluate the offering.

A blank Ruby on Rails app is several times that amount, and the yarn.lock file
alone is nearly 300KB.

~~~
jacob-jackson
You can still evaluate it if your project is larger than 200KB. TabNine will
choose files to index that are relevant to the files you are editing
(determined by distance in the directory tree).

------
therein
This looks great. Giving it a try right now.

Also really awesome of you to provide premium features to the Rust ecosystem
for free.

------
wookayin
tabnine-vim: YCM? Sorry to hear that...

~~~
_wraithy
Agreed. This was a deal breaker for me. It would be really great if it somehow
implemented a standard protocol (like
[https://langserver.org/](https://langserver.org/)) in order to integrate with
existing completion plugins.

~~~
tbodt
I wrote an alternative vim plugin as a deoplete source:
[https://github.com/tbodt/deoplete-tabnine](https://github.com/tbodt/deoplete-
tabnine)

------
demircancelebi
I tried the free version and immediately jumped to premium.

Very impressive work. Best software purchase in a long time.

------
hipplec
Very cool project. Did you also do the machine learning research and model
development in Rust?

------
NetOpWibby
I've been using this for the past 20 minutes in Sublime Text and, well, it's
quite sublime.

Holy shit.

------
yangikan
Will it work with the existing autocomplete mechanism in vscode python
extension?

------
Tade0
Any plans for WebStorm et al.?

------
eeZah7Ux
Is there any FLOSS alternative to this? Any good doc on the ML used?

------
fernandotakai
how would compare that to something like YouCompleteMe?

~~~
jacob-jackson
YouCompleteMe will be better than TabNine for API exploration.

TabNine will be more reliable (it will work correctly with malformed, ill-
typed, or half-written code) and it can find patterns in your code, like you
can see in the pictures on the website.

------
v310
will it work with youcompleteme on vim or should i remove youcompleteme and
use tabnine only.

------
drcongo
This is amazing, thank you.

------
nik1aa5
This sounds like a cool idea for an open-source project. :-)

~~~
hivacruz
Looks neat! Is there a way to make the autocomplete popup in sublime text look
like the original one? Mine looks terrible right now.

------
heydoon
This is amazing!

------
heydoon
This is amazing

------
nbevans
Visual Studio support please :) This looks really good

------
guachesuedehack
Why is there a premium version ?

~~~
drewbailey
To allow the person(s) who implemented it to get paid for their efforts and
hard work?

~~~
asdkhadsj
It's also a very competitive price. $29 is excellent for a piece of software
that helps my day to day. It's really a sweet spot between very reasonable,
and a bit pricey. I'm so happy about this project, and hope it works well _(I
'll be trying it tonight after work)_

~~~
king_phil
No craftsman of any kind would whine about a (good) tool that costs $29 and
makes him more productive. I do not see why a progrommer should do that.

~~~
asdkhadsj
On that same note, I wish we were more willing to pay for our tools as a
community. If we were, I think more neat and productive projects like this
might exist. Yet, developers seem to be historically cheap, and our love for
open source _(which I do love)_ seems to be mixed in with our willingness to
spend money on our tooling.

