Curious to try Kite, I started to integrate Kite plugin into PyCharm until I saw they keep our code in the cloud which enables Kite do what it does. I'm not sure how many of them would be ok with their code being stored in a private cloud!
Totally legit concern. when we started working on this we realized if we wanted to index tens of thousands of libraries, we wouldn't be able to ship the entire index along with the client. Hence the cloud-based architecture. We've thought a lot about privacy and written up our thoughts here: kite.com/security. The short answer is: we don't index anything on your computer that you don't explicitly ask us to, and our plan is to earn trust the hard (i.e. only) way: transparency, published policies, and a track record of good decision making.
I'm sorry but the true intention is to have recurring revenue and not have licensing issues with open-source software you're leveraging on your backend. It's fine to be a capitalist, and I'm looking forward to using and paying for kite once my language of choice is supported, but come on, just be honest that you need a source of income to create this amazing product and this model is the one that fits the bill best. Again, there's nothing wrong with that. I'll gladly give you 1TB of HD space, help seed the giant chunk of data, and pay a bit moreif that's what it takes.
It wouldn't be a viable business unless we thought we could add real value _and_ thought that we could capture some of that value. Yes, being on the cloud allows us to set up an attractive subscription model. But Kite won't succeed as a business unless it turns out to actually be a value-add over local solutions. That's what we're betting on.
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 the fact that all of Python's documentation is typically already on disk, in the modules themselves).
So, given that these indices could be obtained as needed, I'm not sure I buy this argument anymore.
If we can justify the download of a 20mb for a set of plugins, I think that we can justify a 2mb download to document the entirety of a language's standard library.
As a few points of comparison, Atom's download is around 80MB, Docker 110MB, PyCharm is around 175mb, and a ctags file that covers over 8,000 source files (including boto2/3, aws-sdk-go, the python standard library (both 2.7 and 3.5), the go standard library) is about 6 MB compressed.
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.
To support your point, Eclipse has zero problem providing auto-completion with JavaDoc information using nothing but local class files. [0] It will also use source or JavaDoc archives to provide full documentation, if they are available.
[0] I know this, because it's a complete pain to use class files which have been stripped of debug data. Suddenly autocompletes look like "someFunction(String arg0, Thing arg1)" with no other supporting information.
EDIT: Just took a look, the indexes for a few workspaces I have are all under 50MB.
> Solving this 'problem' would lose Kite money, so I don't fault them for not attempting it.
I think it really boils down to: what happens when their servers are compromised; how much liability will Kite assume for the lost IP? My guess is: None.
They don't even have a discoverable privacy policy, just a blog post! Going into the purchase pipeline, there's no service contract, just a "sign up for an account and give us your CC".
How big is the index? Could you offer it as an option (even paid)? I imagine some would be happy using up a good few gigs and paying a bit more to not have to post their code to you.
also, "The short answer is: we don't index anything on your computer that you don't explicitly ask us to" you should say that on /security that's a pretty important point.
I read in last year's HN post that you collect user's terminal commands. Is that still true?
In the future you might want to consider a self-hosted version for enterprises that require by policy more security than your current offering. For $$$.
Yup, we released Kite Pro today (https://kite.com/pro); please consider purchasing it if you find Kite helpful :)
Over the last year we've focused on knocking out the core product experience. We're now going to focus more on Kite Enterprise (https://kite.com/enterprise); if on prem is of interest please get in touch.
As mentioned we are also exploring Kite Enterprise now that we've gotten the core product more
My largest concern is how frequently is my code sent to the cloud? Sometimes when building integrations, I hard code private keys just to get things working and then pull them out into config files that aren't checked into source control. Not knowing where that key might have gone would bother me.
Do you have a sanitizer that detects stuff that looks like crypto keys and censors it before upload? Offhand, sounds like it would be pretty easy to compute just using an appropriate entropy measure.
Why not set them as environment variables? Add a debug mode or whatever and then if set, pull from environment vars instead of config files. Not saying you should trust Kite to keep your code, but as a general practice might be a better idea.
I certainly would not. Thanks for pointing that out. Their landing page does not mention it at all.
There is a lot of publicly available source code which Kite can scrap and use. Expecting that users will be happily uploading their code into a private cloud is weird.
Yeah, as of today (and probably for the foreseeable future) you can't use Kite while you're not connected to the internet. But honestly most programmers I speak to already rely a _lot_ on looking up material online while coding. Kite won't break your dev environment if you're disconnected, it just won't add anything.