Live data from Hacker News

Show HN: Kite, copilot for programmers, available for Python

kite.com

101–110 of 257 posts

Re: Show HN: Kite, copilot for programmers, available for Python

#101
post #56

Maybe a little bit off-topic and controversial, but in my opinion auto-complete is overrated. Doing software development is mostly reading code and documentation. Obviously one also writes code and for sure one can't memorize every function or package name, but searching for it isn't that much of a bottleneck? Some time ago I wrote Java using Eclipse (which had/has reasonable auto-complete), but when I switched to di…

> searching for it isn't that much of a bottleneck

When I left IDEs for a terminal-based dev setup (Vim + CLI), this was what I thought. I rapidly discovered how incredibly wrong that was.

A big factor, for me, was that autocomplete kept me from making typos. Even with a rapid feedback loop, those typos build up. Plus, the reduced cognitive overhead that comes from being able to bang out code faster also lets me stay much more focused.

Intelligent autocompletion is a nice-to-have that I don't think I really miss, but straight-up dumb autocompletion has been a huge boon for my productivity.

Re: Show HN: Kite, copilot for programmers, available for Python

#102
post #90

Earlier quoted context omitted.

I feel the opposite. I think, in the future, ideally, you will be able to do a programming interview, using a tool like kite, in a language you don't know and feel comfortable. So when I am learning a new language, I don't want to have to look up if the length of a vector is len(), length(), .len, .len(), .length() and so on. In fact, I don't want to do this for languages that I do "know".

But what if it's called "size"?

It works like this:

   aCollection.
list of all the method on given collection pops up. If it's short, just skim it and choose something which appropriate. If it's long:

    aCollection.l
check if there's something similar to length/len, use it, otherwise:

    aCollection.lc
check if there's something similar to count then use it, if not:

    aCollection.ls
check if there's something similar to size and use it. Finally, if all the guesses failed, defer to documentation or google.

Basically, (semantic) auto-complete is an inline quick-search facility for docs. Very, very useful if you know how to use it effectively.

Re: Show HN: Kite, copilot for programmers, available for Python

#105
post #90

Earlier quoted context omitted.

But what if it's called "size"?

It works like this: aCollection. list of all the method on given collection pops up. If it's short, just skim it and choose something which appropriate. If it's long: aCollection.l check if there's something similar to length/len, use it, otherwise: aCollection.l c check if there's something similar to count then use it, if not: aCollection.l s check if there's something similar to size and use it. Finally, if all th…

or use ctrl+shift+space in intellij and it will just show completions that return type maching the left side of equation :) or press it 2 times and it will look for all aCollection.. for the matching types ;) very powerfull

Re: Show HN: Kite, copilot for programmers, available for Python

#106
post #17
post #11

Are there any plans to support Vim/Neovim ?

Tarak from Kite here. Kite already supports vim/neovim on macOS with the Kite Sidebar!

Seems to only hook MacVim and it's companion console version, but not the system vim. Is there a .vimrc setting to ensure it's always activated?

Re: Show HN: Kite, copilot for programmers, available for Python

#107

Earlier quoted context omitted.

At first blush, the "we wouldn't be able to ship the entire index along with the client" makes perfect sense. However, I have found that I can store the entirety of the raw Python 2.7 documentation to disk in under 15 MB. It's mostly text, so it compresses absurdly well (2mb, gzipped). And if it was just an index of all the functions with little to no markup, it would be even smaller (this doesn't even account for th…

Right, but the python standard library docs are just a tiny tiny fraction of all the documentation in our index, and the documentation itself is just one corpus out of many.

So, how much megabytes (compressed) does it take to store all of your corpora?

Re: Show HN: Kite, copilot for programmers, available for Python

#108
post #56

Maybe a little bit off-topic and controversial, but in my opinion auto-complete is overrated. Doing software development is mostly reading code and documentation. Obviously one also writes code and for sure one can't memorize every function or package name, but searching for it isn't that much of a bottleneck? Some time ago I wrote Java using Eclipse (which had/has reasonable auto-complete), but when I switched to di…

> but searching for it isn't that much of a bottleneck?

If you look up from your text editor even a second, it will take several seconds to get back into context. So even if the page you want is already in your browser, and you just switch windows, you lose. Also autocomplete has three purposes: prevents unnecessary typos, is faster than writing it out, and lets you find API/docs.

How long it takes to find a relevant piece of code in your code base obviously depends on what tools you have for searching your local code, how much code it is and how good the search is. How long it takes you to find something online depends on how good the docs are etc.

How much value autocomplete is also depends on the strength of the type system of course. For C or Javascript there isn't much autocomplete can do with the contextual information, but with Java there is a ton to be gained (Long method names are norm, and object-dot notation feels almost invented for autocomplete). So if I were using something with a functional flavor, or a weak or dynamic type system I'd probably have a different opinion. But for strongly typed OO (C++, Java, C#, ...) the value for autocomplete is enormous to me.

Without autocomplete you can always make longer descriptive type/variable names because the time taken to write a type name isn't proportional to the length, only to the unique prefix or unique camelcase signature of the type name. E.g. for a DefaultUIRenderer I could write DUIR-Tab and know I had the right type (Insert obligatory Java joke about ContextFactoryProviderFactoryDecoratorVisitor here). How much you gain on this depends on how good a typist you are obviously. I have an error rate of around 1/10 chars being backspace, and you might argue it's because I do auto complete, I don't know...

> There are auto-completion tools for text editors, but I just never invest the time to activate or configure them

Me neither. That's why I think any reasonable IDE should be either a) working out of the box. I.e. hope that you can find an editor/IDE that ships with batteries included, or b) that it's at most a matter of selecting one plugin from a menu to activate support for language X in the editor. If I have to start configuring something with a text file somewhere then someone failed, either the makers of the language or the editor or both. Even in "plain" editors like VS code or Sublime you can usually just get a plugin these days.

> AFAIK there aren't completion tools which work well across different languages.

There are efforts to do this, but the name escapes me - that is, an effort to remove N languages times M editors and make a standard for syntax highlighting, autocomplete etc. that makes at an M+N problem instead.

Re: Show HN: Kite, copilot for programmers, available for Python

#109

Just an honest (legal) concern: Is stack overflow ok with having their answers inside an IDE? This decreases the number of pageviews on SO for each installed client. Is that something you guys checked?

Of course nobody cares about legality. Caring about it is not The Start-up Way.

Bonus again if you get a major snippet from a third party library with an incompatible license.

Re: Show HN: Kite, copilot for programmers, available for Python

#110
post #60

In my professional job I work with code that is private and copy righted by the company that's employing me and praying my salary, not to mention sometimes I edit files that contain sensitive or critical information like passwords and secret encryption/decryption keys. Anything that sends all my code​ to the cloud is automatically disqualified. EDIT: thanks for the downvote btw.

That is a valid concern, and anyone downvoting this is so far down the hype machine that there's no saving them anymore.

Kite is a breach of privacy for 80% of professional software developers that work on a private codebase. You are sending your code directly to a third party, without even any ways for you to prevent that. At least asking on SO you can change your code so it isn't 100% obvious what you're doing.

The fact that this remote upload is mentioned nowhere on the landing page and can only be inferred from the Kite Enterprise very short description is a bit worrying.

However, starting a few Python projects myself soon, this looks like a great extension. I suppose the suggestion for VS Code has been made dozens of times already though.

Post reply on HN