Microsoft and OpenAI Have a New AI Tool That Will Give Coding Suggestions To Software Developers (cnbc.com) 39
Microsoft on Tuesday announced an artificial intelligence system that can recommend code for software developers to use as they write code. From a report: Microsoft is looking to simplify the process of programming, the area where the company got its start in 1975. That could keep programmers who already use the company's tools satisfied and also attract new ones. The system, called GitHub Copilot, draws on source code uploaded to code-sharing service GitHub, which Microsoft acquired in 2018, as well as other websites. Microsoft and GitHub developed it with help from OpenAI, an AI research start-up that Microsoft backed in 2019.
Researchers at Microsoft and other institutions have been trying to teach computers to write code for decades. The concept has yet to go mainstream, at times because programs to write programs have not been versatile enough. The GitHub Copilot effort is a notable attempt in the field, relying as it does on a large volume of code in many programming languages and vast Azure cloud computing power. Nat Friedman, CEO of GitHub, describes GitHub Copilot as a virtual version of what software creators call a pair programmer -- that's when two developers work side by side collaboratively on the same project. The tool looks at existing code and comments in the current file and the location of the cursor, and it offers up one or more lines to add. As programmers accept or reject suggestions, the model learns and becomes more sophisticated over time. The new software makes coding faster, Friedman said in an interview last week. Hundreds of developers at GitHub have been using the Copilot feature all day while coding, and the majority of them are accepting suggestions and not turning the feature off, Friedman said.
Researchers at Microsoft and other institutions have been trying to teach computers to write code for decades. The concept has yet to go mainstream, at times because programs to write programs have not been versatile enough. The GitHub Copilot effort is a notable attempt in the field, relying as it does on a large volume of code in many programming languages and vast Azure cloud computing power. Nat Friedman, CEO of GitHub, describes GitHub Copilot as a virtual version of what software creators call a pair programmer -- that's when two developers work side by side collaboratively on the same project. The tool looks at existing code and comments in the current file and the location of the cursor, and it offers up one or more lines to add. As programmers accept or reject suggestions, the model learns and becomes more sophisticated over time. The new software makes coding faster, Friedman said in an interview last week. Hundreds of developers at GitHub have been using the Copilot feature all day while coding, and the majority of them are accepting suggestions and not turning the feature off, Friedman said.
From the headline... (Score:2)
Re: (Score:2)
Re: (Score:2)
True. That is why most people cannot write production-grade code if their life depends on it.
Yeah why not. Here's why. (Score:5, Interesting)
Since that paper clip thing worked out so well. Do they ever learn?
When writing code in Typescript I get from the IDE very good auto-complete suggestions from hundreds if not thousands of possibilities all the time. But it cannot make decisions about what should be in the states of my objects and what does not belong there, how to aggregate APIs, which API to use and which not to, which libraries should be imported, and dozens of other structural issues related to security, efficiency, maintainability, or just plain readability by another coder.
It does, however, reach into my strings and when I have a static URL with "http://*" in it then I get complaints about it not being "secure." Yeah, thanks pal.
Sorry, but for just about every one of the last 40 years I have read about the next miracle thingy where we don't have to have trained software engineers before. I have no greater expectation of this.
Re:Yeah why not. Here's why. (Score:5, Interesting)
I have greater expectation because a) the trainability of AI assistants has jumped by leaps and bounds in many other fields in the last three years b) the corpus of training data is finally large enough to provide a reasonable training basis. Those two things are game changers. Are they enough? We'll have to play with it and see.
Hahahahaha (Score:4, Insightful)
I'm going to take coding tips from a Microsoft AI tool? I don't fucking think so.
Re: (Score:3)
Yeah, that + the incessant nagging, Microsoft style. I need to get things done and my time has no open windows for training their 'AI' models.
Re: (Score:1)
Re: (Score:2)
My favorite is a site that provides buttons like bold and highlight, that you apply to text you select. Unfortunately, when you select text, a lil' tooltip-like popup appears with cut copy paste on it, hovering right over the bold & friends buttons.
You have to play idiotic games with rotation and superzoom to squeak out half a button to carefully click -- shit! I clicked cut. Now to hit undoo god dammit it's a phone interface.
Stupid phone programmers, idiots all, making the same mistakes yoir grandpa
I can see it now (Score:5, Funny)
Me: "Let's start a new coding project."
Clippy: "I see you want to start a new coding project. Should I start your code with: 'Dear aunt, let's set so double the killer delete select all'?"
Me *drops to one knee and looks to the sky*: "CLIPPY!!!"
Still beaten by my cat (Score:3)
From the news:
but this technical preview works especially well for Python, JavaScript, TypeScript, Ruby and Go.
...no Perl?
meh. My cat walking on a keyboard is more useful to me than that.
"Cat-on-keyboards(tm) the original autocomplete for Perl hackers"
Re: (Score:2)
I thought cats walking on keyboards was how people wrote Perl.
The first rule of perl club... (Score:2)
I thought cats walking on keyboards was how people wrote Perl.
Shhhh! Don't tell my employers! Or they'll realize that they can cut the middle men and pay salaries in canned food and cat biscuits.
Re: (Score:2)
In 2019, tabnine supported Python, JavaScript, Java, C++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl, SQL, HTML, CSS, and Bash. Maybe they'll catch up?
Re: (Score:3)
So I started typing...
print("W
and got /home/dave")
print("What are you doing, Dave? This is highly irregular"); os.run("rm -rf
There are more useful things than AI. (Score:4, Insightful)
You know what would be really useful? If the compiler could figure out which #includes I need from the references, rather than complaining about undefined identifiers.
Yes, there may be times when I need to explicitly #include a particular version of a header, but it would be nice if the compiler could automatically deduce such a thing. Computer science has known how to build a dependency graph since the 70's at least, but we still don't have the lexical scanning of (potentially) dependent files in the compiler itself. It even knows how to find which libraries I need, but heaven forbid it should understand header dependencies.
Re: (Score:2)
Seems a top-down approach with continuous refinement would be easier to apply AI to. Coding right now seems to resemble banging on the keyboard hoping Shakespeare will come out.
Re: (Score:2)
I have always wondered who was inside the keyboard!
Re: (Score:2)
> Coding right now seems to resemble banging on the keyboard hoping Shakespeare will come out.
You need more monkeys for that.
Re: There are more useful things than AI. (Score:3)
> You know what would be really useful? If the compiler could figure out which #includes I need from the references, rather than complaining about undefined identifiers.
This is exactly the kind of problem AI would be good at. There may be multiple matches, which is why modern IDEs with machine-learning-powered typeahead suggestions can do exactly this as you write the code and do highlighting of well problems before they get complied. For example, in the out-of-box typeahead with Typescript in VSCode, it
Re: (Score:1)
Probably ... (Score:2)
Re: (Score:2)
As someone who recently switched from vim to vs code for most programming tasks, I'm laughing, but its actually pretty good. Mostly because it has a great plugin architecture.
Unless it knows what I'm trying to write... (Score:3)
... and what functionality its supposed to have how the fuck is going to be any use other than a fancy autocomplete? This is just more AI marketing BS no doubt to onboard more suckers to Azure.
Re: Unless it knows what I'm trying to write... (Score:2)
Isn't a better autocomplete a useful improvement in and of itself?
Given that 99.9% of code is shit (Score:3)
Can't Wait for (Score:2)
Re: (Score:1)
Clippy: "It looks like you are trying to write to a file. Here, let me subscribe you up to Azure One Drive instead. I already know your credit card number from telemetry. Have a nice day!"
Can't wait to see the apps... (Score:2)
Return of Clippy (Score:3)
Return of clippy. But to use an analogy, this is the grammarly or auto-correct (auto-cowreck) for programmers. But does having auto-correct and grammarly make you a writer? So this AI is making a bad programmer better?
Simplify programming, well simplify writing...with auto-correct, the now lamentably absent Clippy (sarcasm) and now AI. Wow.
Simplify programming, that was what Visual Basic did for approximately 30-years before it vanished from the Microsoft portfolio. Or maybe Microsoft will embrace functional programming, or intentional programming, etc. etc.
But in both areas of writing text, one for prose, the other for code, time, practice, learning, and adapting are the way to improve. Either that, or using genetic programming to evolve code for a method, algorithm, or function.
JoshK.
All your code (Score:2)
...are belong to us.
Help with Re-inventing the Wheel? No thanks. (Score:1)
Re: (Score:2)
There's never some language or framework so great once and for all for ever and ever you don't need to rewrite everything every few years as the next thing comes along.
Re: (Score:2)
There are times that would be useful, too. I often write general helpers or utility functions when working in one particular project, only to realize later that I actually already did this in another one that I forgot about, and that it would have been better to abstract this out into a separate package and use it in both projects. Having an assistant that can learn from my different code bases and that could alert me to these sorts of things wouldn't be entirely useless.
Shouldn't there be a link somewhere? (Score:2)
My pet project (Score:3)
I have written something similar, and at this stage it is fairly simple, but covers the majority of problems, even if written in BASIC. In fact, it is so simple that I will paste the code below:
I hereby put this software in the public domain with the hope that even this Microsoft project will benefit from it.
Rider's been doing this for a couple years now (Score:2)
Re: (Score:2)
Visual Studio Code with the TabNine auto-completion plugin is pretty awesome tbh, I haven't tried Rider yet though.
This is the new way to evaluate developers (Score:2)