Live data from Hacker News

Show HN: TabNine, an autocompleter for all languages

tabnine.com

111–120 of 193 posts

Re: Show HN: TabNine, an autocompleter for all languages

#111
post #68

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…

I'm also a big fan of emacs' dumb autocompletion, mainly dabbrev-expand. (Which hippie-expand uses.) I sometimes try other autocompletion methods, including those that use a proper cross-reference. But most of the time I just fall back to dabbrev-expand when I'm in the flow of typing. The main reason is predictability. It will reliably paste words and identifiers that are close above, so reliably that I usually don't slow down to check if it picked the right one.

And it works everywhere. It will also complete this long name I just typed in a markdown document into the filename when creating a new file, and into the class name after that. Yes, there are better methods (like templates) for many use cases if you bother to set them up. But it's amazing how far this single stupid tool already takes you.

TabNine seems to take this one step further. It's really exciting that this concept gets more mindshare. I'm not going to use it (license) but next time I think about upgrading my autocompletion I'll have a better idea into which direction to take it. I'm always toying with the idea of implementing my own.

Re: Show HN: TabNine, an autocompleter for all languages

#112

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...

So you can just rename your source file to .rs and use all the paid features.

Re: Show HN: TabNine, an autocompleter for all languages

#113
post #102
post #64

200KB for the free version seems really small :(

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.

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).

Re: Show HN: TabNine, an autocompleter for all languages

#114

Earlier quoted context omitted.

...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…

> ...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…

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.

Re: Show HN: TabNine, an autocompleter for all languages

#115
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!

Re: Show HN: TabNine, an autocompleter for all languages

#116
post #115

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. Y…

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

Re: Show HN: TabNine, an autocompleter for all languages

#117

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…

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?

Re: Show HN: TabNine, an autocompleter for all languages

#118
post #106
post #86

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

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.

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).

Re: Show HN: TabNine, an autocompleter for all languages

#119

> 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 tru…

I agree with your concerns - I wonder what could be written to alleviate them? This brings up an interesting problem. Ie, could we write a monitoring proxy where if enabled, all traffic goes through this proxy. This proxy enables the end user to monitor 100% of traffic, all http requests, and could even have a secondary documentation flow that explains the I/O for security minded individuals. Then you'd shut off remo…

A combo of two applications: main app and network agent. Main app writes to a file with request, registration check or update, in JSON or other text-format for user inspection. It loads the agent which reads same file, applies operations, sends them to 3rd party, and writes result into another file. Main app reads that the second it appears. To keep it simple and not have to delete, the files might be numbered with old exchanges kept unless admin/owner deletes them.

With such a setup, users can see exactly what data is outgoing, have a reasonable belief they know what's incoming is harmess, main app gets no network access, agent has no access to secrets/system, and agent can be open source (entirely or mostly).

So, there's a quick brainstorm from how I did privilege-minimization for high-assurance security. This is basically a proxy architecture. That's a generic pattern you can always consider since it can help protect lots of risky apps both ways.

Re: Show HN: TabNine, an autocompleter for all languages

#120
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.

Post reply on HN