Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
AI Programming Python

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.
This discussion has been archived. No new comments can be posted.

AI-Driven Python Code-Completion Tool 'Kite' Attracts $17M In Investments

Comments Filter:
  • by SuperKendall ( 25149 ) on Saturday February 02, 2019 @12:52PM (#58059700)

    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.

    • by Anonymous Coward

      What would be greta to see

      Your post is just a lot of garbo.

    • Code-completion is very good nowadays, with almost any editor (https://atom.io/ is a very good one...). More than this is needed? To what? Generate lazy and bad programmers?
      • Did you not realize (Score:5, Interesting)

        by SuperKendall ( 25149 ) on Saturday February 02, 2019 @01:24PM (#58059790)

        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.

        • With this a monkey can be a programmer, right?

          Well pay a monkey? Why?
          Well pay a worker in a job a monkey can do? Why?

          * all respect to the monkeys :P
        • 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.

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

        • the absolute BEST programmers are the laziest ones [techwell.com].

          What a piece of shit text, from a programmer that over-valorized himself...

          • What a brilliant counterargument. Intellectually stunning, really.
          • 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.

            • Explain something to me, how you concluded that:

              here you show that you were obviously too lazy to even read to the end of the page...

              ? Paranormal capabilities? What are you doing here, with this great skill?

        • On the contrary I think the best programmers make great effort. I agree with you that they tend to spare time and resources. However it is more about efficiency than laziness.The best programmers are smart and they make great efforts to remain frugal.
      • Re:Useful? (Score:4, Interesting)

        by PolygamousRanchKid ( 1290638 ) on Saturday February 02, 2019 @01:29PM (#58059798)

        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.

      • by djinn6 ( 1868030 )

        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.

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

    • If you have that much boilerplate, it's a sign you are doing something wrong. Reduce redundancy, and all that.
      • 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".

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

    • When was the last time you had an off-by-one error? It's not really very common.
      • by HiThere ( 15173 )

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

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

  • by gweihir ( 88907 ) on Saturday February 02, 2019 @12:58PM (#58059720)

    This seems like s very, very bad idea, for multiple reasons.

    • Throw AI at something, to make hype (an attract dumb investment)!
    • by Rick Schumann ( 4662797 ) on Saturday February 02, 2019 @01:15PM (#58059766) Journal
      Agreed. My first thought was, "Oh, great, so we can have the coding equivalent of mobility scooters?" If you're using it as a learning tool then great, but if you're relying on it to actually get your job done then I'm far from impressed. Also while Python is vast and strange it's not like it's difficult to learn, being easy to learn is one of it's main features, so if you really need some 'AI'-driven tool to get your work done, then I question why it is you're involved in any programming tasks at all.
      • by gweihir ( 88907 )

        And that is just it. Whoever needs such help should stay away from coding in the first place.

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

      • by HiThere ( 15173 )

        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.

        • The funny thing here is that Python is on a level with BASIC so far as complexity goes; it's designed and intended to be accessible, yet it can be powerful. You can't write an entire OS in it, but you can do a lot of useful things in it, and a journalist should be able to learn to code in it.
          • by gweihir ( 88907 )

            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

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

        • by gweihir ( 88907 )

          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.

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

      • by gweihir ( 88907 )

        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.

    • They got $17,000,000. I'll bet the think it was a good idea!
      • by gweihir ( 88907 )

        Probably. Will be a complete failure nonetheless. I mean this has failed multiple times before and for pretty fundamental reasons.

  • will destroy all of it. Yes, there's value in easy solutions to very atomic problems (how do I get a serial port, or a reliable stream to xyzzy?). Knowing how all this interacts and making it robust when some things can fail - for more than one reason with more than one sensible way to proceed from there, some things can block for varying times...and all that class of issues - architecture vs just moronic coding - won't be solved by this, which will probably make that whole class of problems - which is th
  • AI + blockchain = VC Fundgasm.
  • by karlandtanya ( 601084 ) on Saturday February 02, 2019 @01:57PM (#58059874)

    Hi, there; it looks like you're trying to download programs to some industrial controllers...Would you like help with that?

  • The reason they used Python is because the most important use cases are already covered in Java or C++ with things like autocomplete. Adding AI doesn't give much improvement to what already exists. But since Python is dynamic, you can't know the type at compile time. That is why you need to use these extreme solutions for Python.
    • by HiThere ( 15173 )

      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.

  • by Anonymous Coward

    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.

    • by HiThere ( 15173 )

      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.

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

  • by ziggystarsky ( 3586525 ) on Saturday February 02, 2019 @03:28PM (#58060208)

    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.

  • by Anonymous Coward

    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.

  • by janoc ( 699997 ) on Saturday February 02, 2019 @05:05PM (#58060678)

    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.

  • People can enjoy leaning to code with an AI?
  • Just trying out the Kite plugin for Atom and seems to work fine. Looks like they've worked hard to integrate with a number of popular editors and IDEs. Anybody know if there's any (planned) support for Jupyter notebooks / Google Colab? Tried searching on this and got nothin'.

Math is like love -- a simple idea but it can get complicated. -- R. Drabek

Working...