AI-Driven Python Code-Completion Tool 'Kite' Attracts $17M In Investments (venturebeat.com) 87
An AI-enhanced tool that suggests code snippets for Python developers in real time just raised $17 million in VC funding to expand its R&D team "with a focus on accelerating developer productivity."
An anonymous reader quotes VentureBeat: "Our mission is to bring the latest advancements in AI and machine learning (ML) to make writing code fluid, effortless, and more enjoyable," explained [founder Adam] Smith. "Developers using Kite can focus their productive energy toward solving the next big technical challenges, instead of searching the web for code examples illustrating mundane and frequently repeated code patterns...."
Instead of relying on the cloud to run its AI engine, Kite now runs locally on a user's computer, letting developers use it offline and without having to upload any code. (Kite still trains its machine learning models with thousands of publicly available code sources from highly rated developers.) Furthermore, running locally allows Kite to fully operate with lower latencies... In addition to ditching the cloud, the new version of Kite brings a feature the team calls Line-of-Code Completions. Until now, Kite's machine learning models could only suggest the next "token" in a line of code. Line-of-Code Completions can complete entire function calls with a single keystroke... The team boasts that Kite is "the only developer product on the market to offer such advanced completions."
"Today, Kite is used by more than 30,000 Python developers worldwide," reports VentureBeat, adding it locally-based ML plugin is available for top Python IDEs including Visual Studio Code, Atom, Sublime Text, PyCharm, IntelliJ, and Vim.
Kite's investors include the CEO of GitHub, as well as the founders of Dropbox, Paypal, and Twitch.tv, and the company hopes to eventually support more languages, starting with either Java, JavaScript, or Go.
An anonymous reader quotes VentureBeat: "Our mission is to bring the latest advancements in AI and machine learning (ML) to make writing code fluid, effortless, and more enjoyable," explained [founder Adam] Smith. "Developers using Kite can focus their productive energy toward solving the next big technical challenges, instead of searching the web for code examples illustrating mundane and frequently repeated code patterns...."
Instead of relying on the cloud to run its AI engine, Kite now runs locally on a user's computer, letting developers use it offline and without having to upload any code. (Kite still trains its machine learning models with thousands of publicly available code sources from highly rated developers.) Furthermore, running locally allows Kite to fully operate with lower latencies... In addition to ditching the cloud, the new version of Kite brings a feature the team calls Line-of-Code Completions. Until now, Kite's machine learning models could only suggest the next "token" in a line of code. Line-of-Code Completions can complete entire function calls with a single keystroke... The team boasts that Kite is "the only developer product on the market to offer such advanced completions."
"Today, Kite is used by more than 30,000 Python developers worldwide," reports VentureBeat, adding it locally-based ML plugin is available for top Python IDEs including Visual Studio Code, Atom, Sublime Text, PyCharm, IntelliJ, and Vim.
Kite's investors include the CEO of GitHub, as well as the founders of Dropbox, Paypal, and Twitch.tv, and the company hopes to eventually support more languages, starting with either Java, JavaScript, or Go.
The concept seems great (Score:3)
Code completion these days generally works pretty well - but only for matching single words or method signatures.
It would be really interesting to see the result of something that jumps beyond mere pattern matching for a single element and into the realm of suggesting real code completion, like filling out a lot of boilerplate, or even dare I say suggesting completions for variable names you had not yet even entered.
We all know that old phrase that the two largest problems in computer science are cache invalidation... and naming (and off by one errors as the old joke goes). What if completion was helping your naming to be semantically consistent, or helping train a younger developer in coming naming approaches? Is there any kind of code completion today that does that?
What would be greta to see is some kind of open source effort around all this before AI code helpers are lost behind a thicket of patents.
Re: (Score:2)
What would be greta to see
Your post is just a lot of garbo.
Useful? (Score:3)
Did you not realize (Score:5, Interesting)
More than this is needed? To what? Generate lazy and bad programmers?
That is the biggest contradiction I have ever seen typed.
The truth is, as I and many others have learned over decades - the absolute BEST programmers are the laziest ones [techwell.com].
A lazy programmer will spend vast amount of time determining a way to do something that involves less work, to build systems so that they need the least maintenance.
A "dumb" programmer will look for the most modern way to do something, not assuming that they know the best way just because they have worked on something before.
I am not just talking about saving you time, but tools that help keep you on track with your own ideals on how you want to program and name things. A system that could recognize how you've approached a problem before, and suggest starting with a similar approach - or maybe something new if the industry had moved to a different current best practice.
After all, a lot of us use not just stack overflow but turn to looking over older code bases to review problems we think we solved really well before. Why would you NOT do that - again, lazy but it really helps code quality. An AI could spend the time during through your old approaches and Stack Overflow and journals to find something novel that might be a good idea.
We always rightfully scoffed at tools that would replace programmers, but what should not be scoffed at is any use of technology that can augment humans by automating ANYTHING they do repetitively - and programming research is one of those things.
Re: (Score:2)
Well pay a monkey? Why?
Well pay a worker in a job a monkey can do? Why?
* all respect to the monkeys
Re: (Score:2)
It's contrary to my work experience... the word "lazy" misunderstood by us two?
A bad and "lazy" programmer generally not consider software maintainability, in my experience...
Re: (Score:2)
What a piece of shit text, from a programmer that over-valorized himself...
Re: Did you not realize (Score:2)
Re: (Score:2)
Re: (Score:2)
over-valorized himself
What I find most amusing about your "rebuttal" is that even though the article is only a half page long, here you show that you were obviously too lazy to even read to the end of the page... You fell exactly into the trap I intended by using that particular link.
Re: (Score:2)
? Paranormal capabilities? What are you doing here, with this great skill?
Re: (Score:2)
Re:Useful? (Score:4, Interesting)
Generate lazy and bad programmers?
Well, executive folks will think that they don't need to pay high rates for good, experienced programmers any more.
A lazy bad programmer with AI-Driven Code-Completion paid at lower rates is just as good as an experienced programmer.
I remember seeing this in the late 80's . . . everyone was raving about CASE: Computer Aided Software Engineering. I remember hearing management folks saying back then that programmers wouldn't be needed any more.
Re: (Score:2)
Having tried their demo, I can tell you right away that it's not even as good as the one in Visual Studio, and only a notch better than Emacs. Guess the novelty is that it's for Python.
Re: (Score:2)
We all know that old phrase that the two largest problems in computer science are cache invalidation... and naming (and off by one errors as the old joke goes).
An even older joke went that the two largest problems in computer science are reading a tape and printing a file.
Everything else is solvable.
Back on topic, I sure hope the developers understand the code snippets the AI plops into their code, before they use them.
Thanks! (Score:2)
Thanks, those are both excellent examples - especially JS Nice sounds really interesting, will take a look at that.
Re: The concept seems great (Score:2)
Re: (Score:2)
There are many systems and framework in which some boilerplate (repetitive code, which the spellchecker adjusted to "reptile code" at first - so fitting) is sadly needed.
Also sometimes you have to boilerplate some code for a while before you can coalesce it all into something simpler - like one of Blaise Pascal's letters that came with a forward, saying essentially "I'm sorry this letter is so long, I did not have the time to make it shorter".
Re: (Score:2)
Also sometimes you have to boilerplate some code for a while before you can coalesce it all into something simpler - like one of Blaise Pascal's letters that came with a forward, saying essentially "I'm sorry this letter is so long, I did not have the time to make it shorter".
I agree with you on this. I find that writing repetitive code or boilerplate for a short period allows me to more easily see what *should* be optimized, avoiding the temptation to prematurely optimize something (which might introduce complexity instead of the desired simplification).
Optimization doesn't just refer to runtime performance.
Re: The concept seems great (Score:2)
Re: (Score:2)
If you were paying attention, he either had (or simulated) an off by one error when posting the problems. (He said there were two, and then listed three.) (Of course, there's pretty strong indications that that error was simulated rather than real. But the way these parenthesis split things up reflects a real "off by one" error in my composition.)
Re: (Score:2)
It's not nearly so common these days it seems, but I used to run into a lot of libraries where there was a question about if something had zero or one as the starting index.
Even now though sometimes when doing complex length calculations with a lot of parts, it's not impossible to get something just slightly off.
Re: (Score:2)
Pretty much what is going on, yes. Most of the human race does not get it and probably never will.
So they can be even less competent? (Score:4, Insightful)
This seems like s very, very bad idea, for multiple reasons.
Re: (Score:2)
Re:So they can be even less competent? (Score:4, Insightful)
Re: (Score:2)
And that is just it. Whoever needs such help should stay away from coding in the first place.
Re: (Score:3)
And that is just it. Whoever needs such help should stay away from coding in the first place.
I'll try it. I'm not insecure about my programming. Maybe it's nice to use.
Re: (Score:2)
Maybe they used to be a journalist?
Sorry, that was snide, but "learn to code" is really stupid advice to give to someone who was professionally a journalist. The thought processes involved are quite divergent.
Re: (Score:2)
Re: (Score:2)
Well, "learn to code" as in "do some very basic data-processing", maybe. But that is not a really useful skill. It is basically on the level of being able to read and write. Actual useful coding skills are more on the level of at least writing reasonable short-stories.
I do disagree on the complexity of Python. Sure, if you ignore 90% of the language, it is simple. But so is C. I also disagree on the OS. You _can_ write an OS in Python and in some situations it may even make sense to do so partially. Look to
Re: (Score:2)
If it's mobility scooters for the typing part I think that's a good thing. If it's for the thinking part, not so much.
Having said that, it might not be much worse. What kind of genius manages to invoke the code to activate the camera and microphone without calling the part that informs the user that the call's been answered, or without the user issuing a command to pick up? These should be atomic.
Re: (Score:2)
Having said that, it might not be much worse. What kind of genius manages to invoke the code to activate the camera and microphone without calling the part that informs the user that the call's been answered, or without the user issuing a command to pick up? These should be atomic.
In a sane, security-aware library call, yes. In reality, understanding security is too complex for most coders, including those that write libraries.
Re: (Score:2)
I see nothing wrong with that.
You actually do not see anything here. You just have an unjustified faith in technology and are unaware of the history of coding and what has already been tried. Not my job to educate you and when this fails you probably will not even remember you thought it was a good idea.
Re: (Score:2)
The likes of you will find flaw with any example. Giving you examples is useless, because you do not have what it takes to evaluate them. If you were actually minimally competent, you would not need those examples in the first place, but you are not.
Re: (Score:2)
You don't see the other 43%?
Most important reason: (Score:2)
If there is an AI-approved "snippet" of code, why on earth would you want it to be a snippet? That begs to be abstracted to a library and/or language construct. It will be easier to read, debug and maintain.
Re: (Score:2)
Exactly. The only reasonable way for "automated" coding we have ever found is to abstract things into libraries. Nothing else has ever worked. This is probably just people that either want to get rich quick or that never have heard of the 5th Generation Language project and its abysmal failure to deliver anything useful.
Re: (Score:2)
Re: (Score:2)
Probably. Will be a complete failure nonetheless. I mean this has failed multiple times before and for pretty fundamental reasons.
The first woodpecker that comes along (Score:2)
Clearly this needs to be on a blockchain (Score:1)
So...Clippy for python? (Score:5, Funny)
Hi, there; it looks like you're trying to download programs to some industrial controllers...Would you like help with that?
code completion (Score:2)
Re: (Score:2)
Actually, in the most recent versions of Python type can be specified at compile time. They're still working on making it require that the type offered match the type required, though. I suspect doing it efficiently enough it proving quite difficult.
Re: (Score:2)
MOAR autocomplete hell (Score:1)
I have given up the fight against the autocomplete function on my smartphone already. There is no way to turn it off. Just write like I'm mildly retarded now, and don't give a fuck anymore. At least keep this feature optional until I'm retired.
Re: (Score:2)
Given the size of the keypad on my "smart-phone" I'm actually grateful the the phone's autocomplete. It may get things wrong most of the time, but when I try to type I get the wrong letter(s) more often than not. Sometimes it seems like typing one letter causes three keys to be struck.
Re: (Score:3)
I have given up the fight against the autocomplete function on my smartphone already. There is no way to turn it off.
You can install an alternative keyboard that doesn't have auto-complete. If you want more specific advice as a shortcut, on Android, install the Korean keyboard (and of course only use the English half). It will give you suggestions in the top bar, but won't automatically complete anything for you unless you gesture for it.
If you are very picky about what you want the keyboard to do, then you can always build your own.
Correcting intelligent completions is difficult (Score:5, Interesting)
If my completion is predictable, I know what I have to type without looking at the screen.
If it is smart, I must always check if what I want to do is in the completion list.
If it is too smart, it will propose complex completions, that are correct 80% of the time, and look correct 90% of the time at first glance.
The "typos" I make today with smart typing correction in my smart phone look to other people like correct sentences. It's just confusing. No one can guess what I meant to write.
Issues with plagiarism detection tools (Score:1)
Common snippets being generated all over will likely cause a lot of false positives from plagiarism detection tools.
Not that this would be a bad thing, they already have problems with false positives - this might make them clean up their act.
Kite, the spyware (err, "telemetry") company? (Score:5, Informative)
FYI, this is the same company that took the 3rd most popular add-on for SublimeText and silenty added ads and spyware (err, telemetry) to it.
https://qz.com/1043614/this-st... [qz.com]
https://forum.sublimetext.com/... [sublimetext.com]
Sounds like someone who you want to trust with your company's source code, indeed.
So more (Score:2)
Question: Jupyter support? (Score:2)