Live data from Hacker News

Show HN: TabNine, an autocompleter for all languages

tabnine.com

121–130 of 193 posts

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

#121
post #108

Earlier quoted context omitted.

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

Theoretically we don't even need programming languages or compilers at all. REAL programmers used a magnetized needle and a steady hand. [1] Following your logic, nobody should show appreciation for anything. [1] https://xkcd.com/378/

what he meant is you could develop something similar in many other languages with the same complexity / time taken in rust.

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

#122

Earlier quoted context omitted.

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

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

MIT only requires source attribution. It's the BSD licenses that require attribution for binary forms of redistribution. Still, it is good manners and good cover-your-arse practice to attribute whatever free software work they used (Google does this with their giant "open source licenses" page).

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

#123

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

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

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.

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

#124
post #110
post #92

Earlier quoted context omitted.

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

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.

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.

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

#125
post #39

Earlier quoted context omitted.

Typing an 'r' is faster than clicking on "work" then backspacing.

That can lead to ("Work", "Worry", "Word") so you'd then have to type the 'k'. Now you could have ("Work", "Worker", "Worked") and still are missing the variant you want. It'd be nice to long press "Work" at step one, get that completed without a space being inserted, then tap 'i' to get ("Working", "Workings", "Workingmen")

The way I use autocomplete is that I type the entire word I mean really quickly. I get most (or all) of it wrong, but the autocompleter has enough information to substitute that with the correct word. It's much faster than the read-evaluate-correct loop you're describing.

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

#126

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 or ? I realize that this is supposed to be a zero-config tool, and I'm asking for a configuration! Great job wi…

I don't think it's supposed to be zero-config, it's just supposed to come with sane defaults.

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

#127

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

Lot of surprise about something that I thought was not particularly controversial to say. Google has been using vendored dependencies in version control for years[0]. It's also going to be the default behavior in Jai[1].

Is there something I'm missing that makes those examples particularly abnormal? Has consensus radically shifted since the last time I looked into this?

[0]: https://groups.google.com/forum/#!msg/golang-dev/nMWoEAG55v8...

[1]: https://www.youtube.com/watch?v=3TwEaRZ4H3w

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

#128
post #118
post #106

Earlier quoted context omitted.

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

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.

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

#129
post #108

Earlier quoted context omitted.

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

Theoretically we don't even need programming languages or compilers at all. REAL programmers used a magnetized needle and a steady hand. [1] Following your logic, nobody should show appreciation for anything. [1] https://xkcd.com/378/

I meant he could have said: "Because I love Rust, I'm giving this for free to be used in Rust codebases", instead of "this would never exist if not for Rust".

Or maybe he's serious, maybe the Rust ecosystem literally saved him from death or something like that.

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

#130

Earlier quoted context omitted.

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

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.

Yeah, you're right. Probably I didn't get the correct linguistic context.

But you never know, maybe in another language he would have done a much better project, maybe not. Actually, in alternative universes everything would probably be different. If Python didn't exist this project would maybe not exist too, and would be at least a little different in any case, so he could have opened the full version to Python codebases too, and that applies to all other languages.

Post reply on HN