Learn the basics of GitHub Copilot - an AI-powered tool for writing code faster. It is built on top of OpenAI’s GPT-3 model and uses training data from public places like StackOverflow to suggest and write code automatically.  

#ai #code #firstlook

🔗 Resources

Copilot https://copilot.github.com/
OpenAI https://openai.com/blog/gpt-3-apps/
GPT3 Graphics https://jalammar.github.io/how-gpt3-works-visualizations-animations/

📚 Chapters

00:00 GitHub Copilot
01:14 First Look in VS Code
04:38 The Truth about AI Programming
07:20 Replace Developers with AI

 🤓 Install the quiz app

iOS https://itunes.apple.com/us/app/fireship/id1462592372?mt=8
Android https://play.google.com/store/apps/details?id=io.fireship.quizapp

🔥 Watch more with Fireship PRO

Upgrade to Fireship PRO at https://fireship.io/pro
Use code lORhwXd2 for 25% off your first payment. 

🎨 My Editor Settings

- Atom One Dark 
- vscode-icons
- Fira Code Font
2024-02-04T14:02:35.129Z
nova-2
2-general-nova
2024-01-09.29447
30089e05-99d1-4376-b32e-c263170674af
de05a938-cbae-429a-ad0f-1f44a539da58
af7faeb2f30c1ca830ce5a20c9db358d45f013be361fc28a1158740ba371ec02
67875a7f-c9c4-48a0-aa55-5bdb8a91c34a
deprecated
In the not so distant future, you'll likely be writing far fewer lines of code than you are today, because artificial intelligence is coming to a Versus code near you.
Microsoft, AKA GitHub, just announced Copilot yesterday, a tool powered by GPT 3 capable of writing code automatically.
All you have to do is write a descriptive function name or some comments and it will automatically fill in the implementation details for you.
And it's not just inserting a snippet, this is actual novel well, code that has never been seen before.
It looks at the code you've already written in your project as context and attempts to generate new code to match it perfectly.
For example, imagine you've written a React component, and you now want to write a unit test for it.
Just write a comment describing what you wanna test, and Copilot will generate the code based on your component and the testing framework that you're using.
Or say you want to calculate the number of days between 2 days.
For me, that's an instant Google search, then Stack Overflow copy and paste.
With Copilot, all I have to do is write a function name and it implements the function body for me automatically.
If I'm not perfectly happy with the implementation, and I can click a button to get the next prediction.
Anything that might have brought you to Stack Overflow can be auto completed in your IDE and custom tailored to fit your code base.
Developers like to joke about how often they Google things and copy answers from Stack Overflow, so you can only imagine how big of a time saver this is going to be.
I just got access to Copilot myself, so let's dive in and see how useful it really is.
I just installed the extension in Versus Code, which required me to authenticate with my GitHub account.
I've got a front end vanilla JavaScript project here with files for my HTML, CSS and JavaScript.
You'll notice a little Copilot icon down here at the bottom, That just allows you to toggle it on or off.
The first thing I wanna try is to define a function called intersection of arrays and see if it can complete the body of that function successfully.
We'll give the function a name of intersection of oh, and it just predicts the name of the function that we're going to write and it looks like it's being implemented incorrectly.
But there are multiple ways we could implement this function.
Let's go ahead and delete the code back to the function name.
If we hover over the automatically generated code, we can click next to cycle through different suggestions.
I actually don't see any I like here, so I'm going to click the open Copilot option.
That will synthesize 10 different possible Solutions and it happens very fast, like within 1 or 2 seconds.
But looking closer at the solutions, it looks like they are all pretty much the same, even though I know there are multiple different approaches to implementing an intersection of arrays.
The top answer on Stack Overflow actually has a cleaner implementation and I would have this to at least be an option in the results, but let's move on and see if we can build a little counter app that has multiple moving parts.
First, I'm going to define some state which is just a variable equal to 0.
You'll notice that it's trying to make predictions as I'm writing out this variable.
That is one thing that's kind of annoying.
It's almost a little too aggressive when making predictions.
It would be nice if the AI could predict when I actually want predictions.
Also, it predicts things for React and Vue even though I'm not in a React or Vue project.
In any case, the next thing I wanna do here is grab a button from the DOM.
I'll give the AI a hint by writing a comment and you'll notice that It actually auto completes the comment for me.
It knows exactly what I wanna do because it's such a common thing to do.
Now that we have a button, let's set up an event listener on the click event to increment the state each time that it's clicked.
Now I start writing another comment, I don't even type anything and it fills out that entire comment for me.
That's pretty crazy because it's using the context of our previous line of code to figure out what to write next.
I'll hit tab a couple times and you'll notice that it That's up an event listener on the button variable that we defined.
Then it proceeds to update the state by incrementing it by 1.
It also adds a modulus 3 here.
I'm not sure what that's about.
That'll just make it count to 3 in a loop and I have no idea where it would get the idea to do that.
And finally, it knows that we want to show the state in the UI, so it takes our button and sets the inner HTML to the current state.
That's pretty wild, but now I'm going to go into the HTML and add the button to the DOM.
It doesn't seem to know that Javascript is looking for a certain button, but if I add a button comment, it will autocomplete with the expected ID.
And finally, let's jump into our CSS and give it some style.
If I Add a comment for a red button with a blue background, it will start implementing that code line by line.
But it's generally more efficient to just go straight to the Copilot and see the available options here.
An interesting side note is that you'll get different results here each time you go to the Copilot, even if the comment is exactly the same.
The results are kind of all over the place, but I think it's enough to give you some starting code to work with.
Don't expect this thing to be turning out production grade code just yet.
That's not going to happen until protocol 4 is implemented.
Now if we go ahead and open our app in the browser, we should get this blue button and every time it's clicked, it will increment the state by the modulus of 3.
All things considered, I think Copilot did a pretty good job.
It feels a little rough around the edges, but it's by far the best AI coding experience that I've ever had.
But how does this thing actually work?
Well, in order to build useful AI, you need a ton of data.
Luckily, over the last 12 years, developers have graciously donated their time and code to help other developers on the Internet while foregoing their copyright to that content, primarily on the website Stack Overflow, which was just It's acquired this month for $1,800,000,000 impeccable timing for their founders to cash out just weeks before a game changing existential threat hits the industry.
It also takes code from public open source GitHub repos.
Now because it's generating unique code, I don't think it has to worry about any open source licensing requirements.
Because this data is public, Microsoft can freely use it to build their AI.
The deep learning model behind the data is GPT t 3 or generative pre trained transformer 3, which is easily one of the most impressive AI products ever developed.
People describe it as amazing, humbling and terrifying.
And it's really good at being creative based on some initial context.
Like, it can take a complex article and summarize it for a second grader, or it can take an idea that you have for an ad and generate the actual ad copy.
Under the hood, it's just a massive neural network that's been trained on over 175,000,000,000 parameters.
To put that in In perspective, there are many popular pre trained neural networks out there and none of them have anywhere close to 1,000,000,000 parameters, let alone a 175,000,000,000.
It's developed by a company called OpenAI that was founded by people like Elon Musk, Sam Altman, and other high profile tech figures.
It started in 2015 as a nonprofit, but I think they realized they could make a shitload of money and converted to a for profit company in 2019.
Now, Microsoft doesn't control open AI, but they did make a $1,000,000,000 investment in 2019.
Then in September 2020, they announced they have licensed the exclusive use of GPT 3.
Other companies can still use the API, but Microsoft is the only company that can truly take full advantage of the GPT 3 algorithm.
That means Microsoft will be able to build products that nobody can really compete with, unless of course you can build an algorithm that's better than GPT 3.
Don't let the name fool you.
OpenAI is not open.
A better name for it might be something like Windows AI.
But this is all great news for developers.
Right?
Ever since Microsoft acquired GitHub, the developer experience has been getting better and better.
You can get your GitHub repos directly in Versus Code, GitHub actions make continuous Integration's super easy, and Copilot will just be one more awesome feature to add to the list.
But, it makes me wonder, why does Microsoft love us developers so much?
Historically, Microsoft has not had a great relationship with developers.
Just Google embrace, extend, extinguish.
Modern Microsoft has been doing a lot of embracing and extending, but who knows if they have any plans for the extinguish step.
Now, I'm just joking around here, but let's imagine that the goal was to replace developers with Hi.
Programmers are expensive in short supply and one of the biggest expenses for any tech company.
To replace them, you need a 4 step plan.
Step 1 is to get them to share which have public information about their code.
In step 2, we use that code to create a product that makes developers happier and more productive.
The initial version won't be perfect, but as more and more Developers use it, will collect more and more data, and reinforce the existing algorithm.
In theory, the algorithm will get so good that we'll no longer need programmers who write code, maybe just technicians who can help guide the algorithm to the right place.
At which point, your company can fire its programmers and pay a bunch of well, Azure coders by the second.
Copilot is free for now and only available through a technical preview, but they do plan to develop it into a commercial product in future.
AWS already has CodeGuru for ML powered code recommendations, so the big players here are already introducing paid services that will replace the jobs normally done by the human coders.
We're currently on step 3 of the plan, but again, I'm just joking around here.
This is just a meme channel.
I love Bill Gates and Microsoft.
And if you think they're Evaded by anything beyond their genuine love for developers, then you must be the kind of person who thinks 2 plus 2 equals 4.
All I ask is that you hit like and subscribe to my channel so I can keep you updated on the latest tools hitting our industry.
Thanks for watching, and I will see you in the next one.

Speaker 0: In the not so distant future, you'll likely be writing far fewer lines of code than you are today, because artificial intelligence is coming to a Versus code near you. Microsoft, AKA GitHub, just announced Copilot yesterday, a tool powered by GPT 3 capable of writing code automatically. All you have to do is write a descriptive function name or some comments and it will automatically fill in the implementation details for you. And it's not just inserting a snippet, this is actual novel well, code that has never been seen before. It looks at the code you've already written in your project as context and attempts to generate new code to match it perfectly.

For example, imagine you've written a React component, and you now want to write a unit test for it. Just write a comment describing what you wanna test, and Copilot will generate the code based on your component and the testing framework that you're using. Or say you want to calculate the number of days between 2 days. For me, that's an instant Google search, then Stack Overflow copy and paste. With Copilot, all I have to do is write a function name and it implements the function body for me automatically.

If I'm not perfectly happy with the implementation, and I can click a button to get the next prediction. Anything that might have brought you to Stack Overflow can be auto completed in your IDE and custom tailored to fit your code base. Developers like to joke about how often they Google things and copy answers from Stack Overflow, so you can only imagine how big of a time saver this is going to be. I just got access to Copilot myself, so let's dive in and see how useful it really is. I just installed the extension in Versus Code, which required me to authenticate with my GitHub account.

I've got a front end vanilla JavaScript project here with files for my HTML, CSS and JavaScript. You'll notice a little Copilot icon down here at the bottom, That just allows you to toggle it on or off. The first thing I wanna try is to define a function called intersection of arrays and see if it can complete the body of that function successfully. We'll give the function a name of intersection of oh, and it just predicts the name of the function that we're going to write and it looks like it's being implemented incorrectly. But there are multiple ways we could implement this function.

Let's go ahead and delete the code back to the function name. If we hover over the automatically generated code, we can click next to cycle through different suggestions. I actually don't see any I like here, so I'm going to click the open Copilot option. That will synthesize 10 different possible Solutions and it happens very fast, like within 1 or 2 seconds. But looking closer at the solutions, it looks like they are all pretty much the same, even though I know there are multiple different approaches to implementing an intersection of arrays.

The top answer on Stack Overflow actually has a cleaner implementation and I would have this to at least be an option in the results, but let's move on and see if we can build a little counter app that has multiple moving parts. First, I'm going to define some state which is just a variable equal to 0. You'll notice that it's trying to make predictions as I'm writing out this variable. That is one thing that's kind of annoying. It's almost a little too aggressive when making predictions.

It would be nice if the AI could predict when I actually want predictions. Also, it predicts things for React and Vue even though I'm not in a React or Vue project. In any case, the next thing I wanna do here is grab a button from the DOM. I'll give the AI a hint by writing a comment and you'll notice that It actually auto completes the comment for me. It knows exactly what I wanna do because it's such a common thing to do.

Now that we have a button, let's set up an event listener on the click event to increment the state each time that it's clicked. Now I start writing another comment, I don't even type anything and it fills out that entire comment for me. That's pretty crazy because it's using the context of our previous line of code to figure out what to write next. I'll hit tab a couple times and you'll notice that it That's up an event listener on the button variable that we defined. Then it proceeds to update the state by incrementing it by 1.

It also adds a modulus 3 here. I'm not sure what that's about. That'll just make it count to 3 in a loop and I have no idea where it would get the idea to do that. And finally, it knows that we want to show the state in the UI, so it takes our button and sets the inner HTML to the current state. That's pretty wild, but now I'm going to go into the HTML and add the button to the DOM.

It doesn't seem to know that Javascript is looking for a certain button, but if I add a button comment, it will autocomplete with the expected ID. And finally, let's jump into our CSS and give it some style. If I Add a comment for a red button with a blue background, it will start implementing that code line by line. But it's generally more efficient to just go straight to the Copilot and see the available options here. An interesting side note is that you'll get different results here each time you go to the Copilot, even if the comment is exactly the same.

The results are kind of all over the place, but I think it's enough to give you some starting code to work with. Don't expect this thing to be turning out production grade code just yet. That's not going to happen until protocol 4 is implemented. Now if we go ahead and open our app in the browser, we should get this blue button and every time it's clicked, it will increment the state by the modulus of 3. All things considered, I think Copilot did a pretty good job.

It feels a little rough around the edges, but it's by far the best AI coding experience that I've ever had. But how does this thing actually work? Well, in order to build useful AI, you need a ton of data. Luckily, over the last 12 years, developers have graciously donated their time and code to help other developers on the Internet while foregoing their copyright to that content, primarily on the website Stack Overflow, which was just It's acquired this month for $1,800,000,000 impeccable timing for their founders to cash out just weeks before a game changing existential threat hits the industry. It also takes code from public open source GitHub repos.

Now because it's generating unique code, I don't think it has to worry about any open source licensing requirements. Because this data is public, Microsoft can freely use it to build their AI. The deep learning model behind the data is GPT t 3 or generative pre trained transformer 3, which is easily one of the most impressive AI products ever developed. People describe it as amazing, humbling and terrifying. And it's really good at being creative based on some initial context.

Like, it can take a complex article and summarize it for a second grader, or it can take an idea that you have for an ad and generate the actual ad copy. Under the hood, it's just a massive neural network that's been trained on over 175,000,000,000 parameters. To put that in In perspective, there are many popular pre trained neural networks out there and none of them have anywhere close to 1,000,000,000 parameters, let alone a 175,000,000,000. It's developed by a company called OpenAI that was founded by people like Elon Musk, Sam Altman, and other high profile tech figures. It started in 2015 as a nonprofit, but I think they realized they could make a shitload of money and converted to a for profit company in 2019.

Now, Microsoft doesn't control open AI, but they did make a $1,000,000,000 investment in 2019. Then in September 2020, they announced they have licensed the exclusive use of GPT 3. Other companies can still use the API, but Microsoft is the only company that can truly take full advantage of the GPT 3 algorithm. That means Microsoft will be able to build products that nobody can really compete with, unless of course you can build an algorithm that's better than GPT 3. Don't let the name fool you.

OpenAI is not open. A better name for it might be something like Windows AI. But this is all great news for developers. Right? Ever since Microsoft acquired GitHub, the developer experience has been getting better and better.

You can get your GitHub repos directly in Versus Code, GitHub actions make continuous Integration's super easy, and Copilot will just be one more awesome feature to add to the list. But, it makes me wonder, why does Microsoft love us developers so much? Historically, Microsoft has not had a great relationship with developers. Just Google embrace, extend, extinguish. Modern Microsoft has been doing a lot of embracing and extending, but who knows if they have any plans for the extinguish step.

Now, I'm just joking around here, but let's imagine that the goal was to replace developers with Hi. Programmers are expensive in short supply and one of the biggest expenses for any tech company. To replace them, you need a 4 step plan. Step 1 is to get them to share which have public information about their code. In step 2, we use that code to create a product that makes developers happier and more productive.

The initial version won't be perfect, but as more and more Developers use it, will collect more and more data, and reinforce the existing algorithm. In theory, the algorithm will get so good that we'll no longer need programmers who write code, maybe just technicians who can help guide the algorithm to the right place. At which point, your company can fire its programmers and pay a bunch of well, Azure coders by the second. Copilot is free for now and only available through a technical preview, but they do plan to develop it into a commercial product in future. AWS already has CodeGuru for ML powered code recommendations, so the big players here are already introducing paid services that will replace the jobs normally done by the human coders.

We're currently on step 3 of the plan, but again, I'm just joking around here. This is just a meme channel. I love Bill Gates and Microsoft. And if you think they're Evaded by anything beyond their genuine love for developers, then you must be the kind of person who thinks 2 plus 2 equals 4. All I ask is that you hit like and subscribe to my channel so I can keep you updated on the latest tools hitting our industry.

Thanks for watching, and I will see you in the next one.
In the not so distant future, you'll likely be writing far fewer lines of code than you are today, because artificial intelligence is coming to a Versus code near you. Microsoft, AKA GitHub, just announced Copilot yesterday, a tool powered by GPT 3 capable of writing code automatically. All you have to do is write a descriptive function name or some comments and it will automatically fill in the implementation details for you. And it's not just inserting a snippet, this is actual novel well, code that has never been seen before. It looks at the code you've already written in your project as context and attempts to generate new code to match it perfectly. For example, imagine you've written a React component, and you now want to write a unit test for it.
artificial intelligence
software development
software
programming
machine learning
Just write a comment describing what you wanna test, and Copilot will generate the code based on your component and the testing framework that you're using. Or say you want to calculate the number of days between 2 days. For me, that's an instant Google search, then Stack Overflow copy and paste.
With Copilot, all I have to do is write a function name and it implements the function body for me automatically. If I'm not perfectly happy with the implementation, and I can click a button to get the next prediction. Anything that might have brought you to Stack Overflow can be auto completed in your IDE and custom tailored to fit your code base.
programming
Developers like to joke about how often they Google things and copy answers from Stack Overflow, so you can only imagine how big of a time saver this is going to be. I just got access to Copilot myself, so let's dive in and see how useful it really is. I just installed the extension in Versus Code, which required me to authenticate with my GitHub account. I've got a front end vanilla JavaScript project here with files for my HTML, CSS and JavaScript. You'll notice a little Copilot icon down here at the bottom, That just allows you to toggle it on or off. The first thing I wanna try is to define a function called intersection of arrays and see if it can complete the body of that function successfully. We'll give the function a name of intersection of oh, and it just predicts the name of the function that we're going to write and it looks like it's being implemented incorrectly.
But there are multiple ways we could implement this function. Let's go ahead and delete the code back to the function name. If we hover over the automatically generated code, we can click next to cycle through different suggestions. I actually don't see any I like here, so I'm going to click the open Copilot option.
programming
That will synthesize 10 different possible Solutions and it happens very fast, like within 1 or 2 seconds. But looking closer at the solutions, it looks like they are all pretty much the same, even though I know there are multiple different approaches to implementing an intersection of arrays.
The top answer on Stack Overflow actually has a cleaner implementation and I would have this to at least be an option in the results, but let's move on and see if we can build a little counter app that has multiple moving parts. First, I'm going to define some state which is just a variable equal to 0. You'll notice that it's trying to make predictions as I'm writing out this variable. That is one thing that's kind of annoying. It's almost a little too aggressive when making predictions. It would be nice if the AI could predict when I actually want predictions. Also, it predicts things for React and Vue even though I'm not in a React or Vue project. In any case, the next thing I wanna do here is grab a button from the DOM.
artificial intelligence
machine learning
operations
I'll give the AI a hint by writing a comment and you'll notice that It actually auto completes the comment for me. It knows exactly what I wanna do because it's such a common thing to do. Now that we have a button, let's set up an event listener on the click event to increment the state each time that it's clicked. Now I start writing another comment, I don't even type anything and it fills out that entire comment for me. That's pretty crazy because it's using the context of our previous line of code to figure out what to write next. I'll hit tab a couple times and you'll notice that it That's up an event listener on the button variable that we defined. Then it proceeds to update the state by incrementing it by 1. It also adds a modulus 3 here. I'm not sure what that's about. That'll just make it count to 3 in a loop and I have no idea where it would get the idea to do that. And finally, it knows that we want to show the state in the UI, so it takes our button and sets the inner HTML to the current state. That's pretty wild, but now I'm going to go into the HTML and add the button to the DOM. It doesn't seem to know that Javascript is looking for a certain button, but if I add a button comment, it will autocomplete with the expected ID. And finally, let's jump into our CSS and give it some style. If I Add a comment for a red button with a blue background, it will start implementing that code line by line. But it's generally more efficient to just go straight to the Copilot and see the available options here. An interesting side note is that you'll get different results here each time you go to the Copilot, even if the comment is exactly the same. The results are kind of all over the place, but I think it's enough to give you some starting code to work with. Don't expect this thing to be turning out production grade code just yet. That's not going to happen until protocol 4 is implemented. Now if we go ahead and open our app in the browser, we should get this blue button and every time it's clicked, it will increment the state by the modulus of 3.
All things considered, I think Copilot did a pretty good job. It feels a little rough around the edges, but it's by far the best AI coding experience that I've ever had. But how does this thing actually work? Well, in order to build useful AI, you need a ton of data. Luckily, over the last 12 years, developers have graciously donated their time and code to help other developers on the Internet while foregoing their copyright to that content, primarily on the website Stack Overflow, which was just It's acquired this month for $1,800,000,000 impeccable timing for their founders to cash out just weeks before a game changing existential threat hits the industry. It also takes code from public open source GitHub repos. Now because it's generating unique code, I don't think it has to worry about any open source licensing requirements. Because this data is public, Microsoft can freely use it to build their AI. The deep learning model behind the data is GPT t 3 or generative pre trained transformer 3, which is easily one of the most impressive AI products ever developed. People describe it as amazing, humbling and terrifying.
deep learning
software development
machine learning
artificial intelligence
software
neural networks
intellectual property
copyright
microsoft
copyright licenses
And it's really good at being creative based on some initial context. Like, it can take a complex article and summarize it for a second grader, or it can take an idea that you have for an ad and generate the actual ad copy.
Under the hood, it's just a massive neural network that's been trained on over 175,000,000,000 parameters. To put that in In perspective, there are many popular pre trained neural networks out there and none of them have anywhere close to 1,000,000,000 parameters, let alone a 175,000,000,000. It's developed by a company called OpenAI that was founded by people like Elon Musk, Sam Altman, and other high profile tech figures. It started in 2015 as a nonprofit, but I think they realized they could make a shitload of money and converted to a for profit company in 2019. Now, Microsoft doesn't control open AI, but they did make a $1,000,000,000 investment in 2019. Then in September 2020, they announced they have licensed the exclusive use of GPT 3. Other companies can still use the API, but Microsoft is the only company that can truly take full advantage of the GPT 3 algorithm. That means Microsoft will be able to build products that nobody can really compete with, unless of course you can build an algorithm that's better than GPT 3. Don't let the name fool you. OpenAI is not open. A better name for it might be something like Windows AI. But this is all great news for developers. Right? Ever since Microsoft acquired GitHub, the developer experience has been getting better and better. You can get your GitHub repos directly in Versus Code, GitHub actions make continuous Integration's super easy, and Copilot will just be one more awesome feature to add to the list. But, it makes me wonder, why does Microsoft love us developers so much? Historically, Microsoft has not had a great relationship with developers. Just Google embrace, extend, extinguish. Modern Microsoft has been doing a lot of embracing and extending, but who knows if they have any plans for the extinguish step. Now, I'm just joking around here, but let's imagine that the goal was to replace developers with Hi. Programmers are expensive in short supply and one of the biggest expenses for any tech company. To replace them, you need a 4 step plan. Step 1 is to get them to share which have public information about their code. In step 2, we use that code to create a product that makes developers happier and more productive. The initial version won't be perfect, but as more and more Developers use it, will collect more and more data, and reinforce the existing algorithm. In theory, the algorithm will get so good that we'll no longer need programmers who write code, maybe just technicians who can help guide the algorithm to the right place. At which point, your company can fire its programmers and pay a bunch of well, Azure coders by the second. Copilot is free for now and only available through a technical preview, but they do plan to develop it into a commercial product in future. AWS already has CodeGuru for ML powered code recommendations, so the big players here are already introducing paid services that will replace the jobs normally done by the human coders. We're currently on step 3 of the plan, but again, I'm just joking around here. This is just a meme channel.
neural networks
microsoft
technology
machine learning
industry
artificial intelligence
deep learning
software development
programming
software
ibm
I love Bill Gates and Microsoft. And if you think they're Evaded by anything beyond their genuine love for developers, then you must be the kind of person who thinks 2 plus 2 equals 4.
All I ask is that you hit like and subscribe to my channel so I can keep you updated on the latest tools hitting our industry. Thanks for watching, and I will see you in the next one.
internet
social media
networking
customers
telecommunications
In the not so distant future, you'll likely be writing far fewer lines of code than you are today, because artificial intelligence is coming to a Versus code near you. Microsoft, AKA GitHub, just announced Copilot yesterday, a tool powered by GPT 3 capable of writing code automatically. All you have to do is write a descriptive function name or some comments and it will automatically fill in the implementation details for you. And it's not just inserting a snippet, this is actual novel well, code that has never been seen before. It looks at the code you've already written in your project as context and attempts to generate new code to match it perfectly. For example, imagine you've written a React component, and you now want to write a unit test for it. Just write a comment describing what you wanna test, and Copilot will generate the code based on your component and the testing framework that you're using. Or say you want to calculate the number of days between 2 days. For me, that's an instant Google search, then Stack Overflow copy and paste. With Copilot, all I have to do is write a function name and it implements the function body for me automatically. If I'm not perfectly happy with the implementation, and I can click a button to get the next prediction. Anything that might have brought you to Stack Overflow can be auto completed in your IDE and custom tailored to fit your code base. Developers like to joke about how often they Google things and copy answers from Stack Overflow, so you can only imagine how big of a time saver this is going to be. I just got access to Copilot myself, so let's dive in and see how useful it really is. I just installed the extension in Versus Code, which required me to authenticate with my GitHub account. I've got a front end vanilla JavaScript project here with files for my HTML, CSS and JavaScript. You'll notice a little Copilot icon down here at the bottom, That just allows you to toggle it on or off. The first thing I wanna try is to define a function called intersection of arrays and see if it can complete the body of that function successfully. We'll give the function a name of intersection of oh, and it just predicts the name of the function that we're going to write and it looks like it's being implemented incorrectly. But there are multiple ways we could implement this function. Let's go ahead and delete the code back to the function name. If we hover over the automatically generated code, we can click next to cycle through different suggestions. I actually don't see any I like here, so I'm going to click the open Copilot option. That will synthesize 10 different possible Solutions and it happens very fast, like within 1 or 2 seconds. But looking closer at the solutions, it looks like they are all pretty much the same, even though I know there are multiple different approaches to implementing an intersection of arrays. The top answer on Stack Overflow actually has a cleaner implementation and I would have this to at least be an option in the results, but let's move on and see if we can build a little counter app that has multiple moving parts. First, I'm going to define some state which is just a variable equal to 0. You'll notice that it's trying to make predictions as I'm writing out this variable. That is one thing that's kind of annoying. It's almost a little too aggressive when making predictions. It would be nice if the AI could predict when I actually want predictions. Also, it predicts things for React and Vue even though I'm not in a React or Vue project. In any case, the next thing I wanna do here is grab a button from the DOM. I'll give the AI a hint by writing a comment and you'll notice that It actually auto completes the comment for me. It knows exactly what I wanna do because it's such a common thing to do. Now that we have a button, let's set up an event listener on the click event to increment the state each time that it's clicked. Now I start writing another comment, I don't even type anything and it fills out that entire comment for me. That's pretty crazy because it's using the context of our previous line of code to figure out what to write next. I'll hit tab a couple times and you'll notice that it That's up an event listener on the button variable that we defined. Then it proceeds to update the state by incrementing it by 1. It also adds a modulus 3 here. I'm not sure what that's about. That'll just make it count to 3 in a loop and I have no idea where it would get the idea to do that. And finally, it knows that we want to show the state in the UI, so it takes our button and sets the inner HTML to the current state. That's pretty wild, but now I'm going to go into the HTML and add the button to the DOM. It doesn't seem to know that Javascript is looking for a certain button, but if I add a button comment, it will autocomplete with the expected ID. And finally, let's jump into our CSS and give it some style. If I Add a comment for a red button with a blue background, it will start implementing that code line by line. But it's generally more efficient to just go straight to the Copilot and see the available options here. An interesting side note is that you'll get different results here each time you go to the Copilot, even if the comment is exactly the same. The results are kind of all over the place, but I think it's enough to give you some starting code to work with. Don't expect this thing to be turning out production grade code just yet. That's not going to happen until protocol 4 is implemented. Now if we go ahead and open our app in the browser, we should get this blue button and every time it's clicked, it will increment the state by the modulus of 3. All things considered, I think Copilot did a pretty good job. It feels a little rough around the edges, but it's by far the best AI coding experience that I've ever had. But how does this thing actually work? Well, in order to build useful AI, you need a ton of data. Luckily, over the last 12 years, developers have graciously donated their time and code to help other developers on the Internet while foregoing their copyright to that content, primarily on the website Stack Overflow, which was just It's acquired this month for $1,800,000,000 impeccable timing for their founders to cash out just weeks before a game changing existential threat hits the industry. It also takes code from public open source GitHub repos. Now because it's generating unique code, I don't think it has to worry about any open source licensing requirements. Because this data is public, Microsoft can freely use it to build their AI. The deep learning model behind the data is GPT t 3 or generative pre trained transformer 3, which is easily one of the most impressive AI products ever developed. People describe it as amazing, humbling and terrifying. And it's really good at being creative based on some initial context. Like, it can take a complex article and summarize it for a second grader, or it can take an idea that you have for an ad and generate the actual ad copy. Under the hood, it's just a massive neural network that's been trained on over 175,000,000,000 parameters. To put that in In perspective, there are many popular pre trained neural networks out there and none of them have anywhere close to 1,000,000,000 parameters, let alone a 175,000,000,000. It's developed by a company called OpenAI that was founded by people like Elon Musk, Sam Altman, and other high profile tech figures. It started in 2015 as a nonprofit, but I think they realized they could make a shitload of money and converted to a for profit company in 2019. Now, Microsoft doesn't control open AI, but they did make a $1,000,000,000 investment in 2019. Then in September 2020, they announced they have licensed the exclusive use of GPT 3. Other companies can still use the API, but Microsoft is the only company that can truly take full advantage of the GPT 3 algorithm. That means Microsoft will be able to build products that nobody can really compete with, unless of course you can build an algorithm that's better than GPT 3. Don't let the name fool you. OpenAI is not open. A better name for it might be something like Windows AI. But this is all great news for developers. Right? Ever since Microsoft acquired GitHub, the developer experience has been getting better and better. You can get your GitHub repos directly in Versus Code, GitHub actions make continuous Integration's super easy, and Copilot will just be one more awesome feature to add to the list. But, it makes me wonder, why does Microsoft love us developers so much? Historically, Microsoft has not had a great relationship with developers. Just Google embrace, extend, extinguish. Modern Microsoft has been doing a lot of embracing and extending, but who knows if they have any plans for the extinguish step. Now, I'm just joking around here, but let's imagine that the goal was to replace developers with Hi. Programmers are expensive in short supply and one of the biggest expenses for any tech company. To replace them, you need a 4 step plan. Step 1 is to get them to share which have public information about their code. In step 2, we use that code to create a product that makes developers happier and more productive. The initial version won't be perfect, but as more and more Developers use it, will collect more and more data, and reinforce the existing algorithm. In theory, the algorithm will get so good that we'll no longer need programmers who write code, maybe just technicians who can help guide the algorithm to the right place. At which point, your company can fire its programmers and pay a bunch of well, Azure coders by the second. Copilot is free for now and only available through a technical preview, but they do plan to develop it into a commercial product in future. AWS already has CodeGuru for ML powered code recommendations, so the big players here are already introducing paid services that will replace the jobs normally done by the human coders. We're currently on step 3 of the plan, but again, I'm just joking around here. This is just a meme channel. I love Bill Gates and Microsoft. And if you think they're Evaded by anything beyond their genuine love for developers, then you must be the kind of person who thinks 2 plus 2 equals 4. All I ask is that you hit like and subscribe to my channel so I can keep you updated on the latest tools hitting our industry. Thanks for watching, and I will see you in the next one.
In
in
the
the
not
not
so
so
distant
distant
future,
future
you'll
you'll
likely
likely
be
be
writing
writing
far
far
fewer
fewer
lines
lines
of
of
code
code
than
than
you
you
are
are
today,
today
because
because
artificial
artificial
intelligence
intelligence
is
is
coming
coming
to
to
a
a
Versus
versus
code
code
near
near
you.
you
Microsoft,
microsoft
AKA
aka
GitHub,
github
just
just
announced
announced
Copilot
copilot
yesterday,
yesterday
a
a
tool
tool
powered
powered
by
by
GPT
gpt
3
3
capable
capable
of
of
writing
writing
code
code
automatically.
automatically
All
all
you
you
have
have
to
to
do
do
is
is
write
write
a
a
descriptive
descriptive
function
function
name
name
or
or
some
some
comments
comments
and
and
it
it
will
will
automatically
automatically
fill
fill
in
in
the
the
implementation
implementation
details
details
for
for
you.
you
And
and
it's
it's
not
not
just
just
inserting
inserting
a
a
snippet,
snippet
this
this
is
is
actual
actual
novel
novel
well,
well
code
code
that
that
has
has
never
never
been
been
seen
seen
before.
before
It
it
looks
looks
at
at
the
the
code
code
you've
you've
already
already
written
written
in
in
your
your
project
project
as
as
context
context
and
and
attempts
attempts
to
to
generate
generate
new
new
code
code
to
to
match
match
it
it
perfectly.
perfectly
For
for
example,
example
imagine
imagine
you've
you've
written
written
a
a
React
react
component,
component
and
and
you
you
now
now
want
want
to
to
write
write
a
a
unit
unit
test
test
for
for
it.
it
Just
just
write
write
a
a
comment
comment
describing
describing
what
what
you
you
wanna
wanna
test,
test
and
and
Copilot
copilot
will
will
generate
generate
the
the
code
code
based
based
on
on
your
your
component
component
and
and
the
the
testing
testing
framework
framework
that
that
you're
you're
using.
using
Or
or
say
say
you
you
want
want
to
to
calculate
calculate
the
the
number
number
of
of
days
days
between
between
2
2
days.
days
For
for
me,
me
that's
that's
an
an
instant
instant
Google
google
search,
search
then
then
Stack
stack
Overflow
overflow
copy
copy
and
and
paste.
paste
With
with
Copilot,
copilot
all
all
I
i
have
have
to
to
do
do
is
is
write
write
a
a
function
function
name
name
and
and
it
it
implements
implements
the
the
function
function
body
body
for
for
me
me
automatically.
automatically
If
if
I'm
i'm
not
not
perfectly
perfectly
happy
happy
with
with
the
the
implementation,
implementation
and
and
I
i
can
can
click
click
a
a
button
button
to
to
get
get
the
the
next
next
prediction.
prediction
Anything
anything
that
that
might
might
have
have
brought
brought
you
you
to
to
Stack
stack
Overflow
overflow
can
can
be
be
auto
auto
completed
completed
in
in
your
your
IDE
ide
and
and
custom
custom
tailored
tailored
to
to
fit
fit
your
your
code
code
base.
base
Developers
developers
like
like
to
to
joke
joke
about
about
how
how
often
often
they
they
Google
google
things
things
and
and
copy
copy
answers
answers
from
from
Stack
stack
Overflow,
overflow
so
so
you
you
can
can
only
only
imagine
imagine
how
how
big
big
of
of
a
a
time
time
saver
saver
this
this
is
is
going
going
to
to
be.
be
I
i
just
just
got
got
access
access
to
to
Copilot
copilot
myself,
myself
so
so
let's
let's
dive
dive
in
in
and
and
see
see
how
how
useful
useful
it
it
really
really
is.
is
I
i
just
just
installed
installed
the
the
extension
extension
in
in
Versus
versus
Code,
code
which
which
required
required
me
me
to
to
authenticate
authenticate
with
with
my
my
GitHub
github
account.
account
I've
i've
got
got
a
a
front
front
end
end
vanilla
vanilla
JavaScript
javascript
project
project
here
here
with
with
files
files
for
for
my
my
HTML,
html
CSS
css
and
and
JavaScript.
javascript
You'll
you'll
notice
notice
a
a
little
little
Copilot
copilot
icon
icon
down
down
here
here
at
at
the
the
bottom,
bottom
That
that
just
just
allows
allows
you
you
to
to
toggle
toggle
it
it
on
on
or
or
off.
off
The
the
first
first
thing
thing
I
i
wanna
wanna
try
try
is
is
to
to
define
define
a
a
function
function
called
called
intersection
intersection
of
of
arrays
arrays
and
and
see
see
if
if
it
it
can
can
complete
complete
the
the
body
body
of
of
that
that
function
function
successfully.
successfully
We'll
we'll
give
give
the
the
function
function
a
a
name
name
of
of
intersection
intersection
of
of
oh,
oh
and
and
it
it
just
just
predicts
predicts
the
the
name
name
of
of
the
the
function
function
that
that
we're
we're
going
going
to
to
write
write
and
and
it
it
looks
looks
like
like
it's
it's
being
being
implemented
implemented
incorrectly.
incorrectly
But
but
there
there
are
are
multiple
multiple
ways
ways
we
we
could
could
implement
implement
this
this
function.
function
Let's
let's
go
go
ahead
ahead
and
and
delete
delete
the
the
code
code
back
back
to
to
the
the
function
function
name.
name
If
if
we
we
hover
hover
over
over
the
the
automatically
automatically
generated
generated
code,
code
we
we
can
can
click
click
next
next
to
to
cycle
cycle
through
through
different
different
suggestions.
suggestions
I
i
actually
actually
don't
don't
see
see
any
any
I
i
like
like
here,
here
so
so
I'm
i'm
going
going
to
to
click
click
the
the
open
open
Copilot
copilot
option.
option
That
that
will
will
synthesize
synthesize
10
10
different
different
possible
possible
Solutions
solutions
and
and
it
it
happens
happens
very
very
fast,
fast
like
like
within
within
1
1
or
or
2
2
seconds.
seconds
But
but
looking
looking
closer
closer
at
at
the
the
solutions,
solutions
it
it
looks
looks
like
like
they
they
are
are
all
all
pretty
pretty
much
much
the
the
same,
same
even
even
though
though
I
i
know
know
there
there
are
are
multiple
multiple
different
different
approaches
approaches
to
to
implementing
implementing
an
an
intersection
intersection
of
of
arrays.
arrays
The
the
top
top
answer
answer
on
on
Stack
stack
Overflow
overflow
actually
actually
has
has
a
a
cleaner
cleaner
implementation
implementation
and
and
I
i
would
would
have
have
this
this
to
to
at
at
least
least
be
be
an
an
option
option
in
in
the
the
results,
results
but
but
let's
let's
move
move
on
on
and
and
see
see
if
if
we
we
can
can
build
build
a
a
little
little
counter
counter
app
app
that
that
has
has
multiple
multiple
moving
moving
parts.
parts
First,
first
I'm
i'm
going
going
to
to
define
define
some
some
state
state
which
which
is
is
just
just
a
a
variable
variable
equal
equal
to
to
0.
0
You'll
you'll
notice
notice
that
that
it's
it's
trying
trying
to
to
make
make
predictions
predictions
as
as
I'm
i'm
writing
writing
out
out
this
this
variable.
variable
That
that
is
is
one
one
thing
thing
that's
that's
kind
kind
of
of
annoying.
annoying
It's
it's
almost
almost
a
a
little
little
too
too
aggressive
aggressive
when
when
making
making
predictions.
predictions
It
it
would
would
be
be
nice
nice
if
if
the
the
AI
ai
could
could
predict
predict
when
when
I
i
actually
actually
want
want
predictions.
predictions
Also,
also
it
it
predicts
predicts
things
things
for
for
React
react
and
and
Vue
vue
even
even
though
though
I'm
i'm
not
not
in
in
a
a
React
react
or
or
Vue
vue
project.
project
In
in
any
any
case,
case
the
the
next
next
thing
thing
I
i
wanna
wanna
do
do
here
here
is
is
grab
grab
a
a
button
button
from
from
the
the
DOM.
dom
I'll
i'll
give
give
the
the
AI
ai
a
a
hint
hint
by
by
writing
writing
a
a
comment
comment
and
and
you'll
you'll
notice
notice
that
that
It
it
actually
actually
auto
auto
completes
completes
the
the
comment
comment
for
for
me.
me
It
it
knows
knows
exactly
exactly
what
what
I
i
wanna
wanna
do
do
because
because
it's
it's
such
such
a
a
common
common
thing
thing
to
to
do.
do
Now
now
that
that
we
we
have
have
a
a
button,
button
let's
let's
set
set
up
up
an
an
event
event
listener
listener
on
on
the
the
click
click
event
event
to
to
increment
increment
the
the
state
state
each
each
time
time
that
that
it's
it's
clicked.
clicked
Now
now
I
i
start
start
writing
writing
another
another
comment,
comment
I
i
don't
don't
even
even
type
type
anything
anything
and
and
it
it
fills
fills
out
out
that
that
entire
entire
comment
comment
for
for
me.
me
That's
that's
pretty
pretty
crazy
crazy
because
because
it's
it's
using
using
the
the
context
context
of
of
our
our
previous
previous
line
line
of
of
code
code
to
to
figure
figure
out
out
what
what
to
to
write
write
next.
next
I'll
i'll
hit
hit
tab
tab
a
a
couple
couple
times
times
and
and
you'll
you'll
notice
notice
that
that
it
it
That's
that's
up
up
an
an
event
event
listener
listener
on
on
the
the
button
button
variable
variable
that
that
we
we
defined.
defined
Then
then
it
it
proceeds
proceeds
to
to
update
update
the
the
state
state
by
by
incrementing
incrementing
it
it
by
by
1.
1
It
it
also
also
adds
adds
a
a
modulus
modulus
3
3
here.
here
I'm
i'm
not
not
sure
sure
what
what
that's
that's
about.
about
That'll
that'll
just
just
make
make
it
it
count
count
to
to
3
3
in
in
a
a
loop
loop
and
and
I
i
have
have
no
no
idea
idea
where
where
it
it
would
would
get
get
the
the
idea
idea
to
to
do
do
that.
that
And
and
finally,
finally
it
it
knows
knows
that
that
we
we
want
want
to
to
show
show
the
the
state
state
in
in
the
the
UI,
ui
so
so
it
it
takes
takes
our
our
button
button
and
and
sets
sets
the
the
inner
inner
HTML
html
to
to
the
the
current
current
state.
state
That's
that's
pretty
pretty
wild,
wild
but
but
now
now
I'm
i'm
going
going
to
to
go
go
into
into
the
the
HTML
html
and
and
add
add
the
the
button
button
to
to
the
the
DOM.
dom
It
it
doesn't
doesn't
seem
seem
to
to
know
know
that
that
Javascript
javascript
is
is
looking
looking
for
for
a
a
certain
certain
button,
button
but
but
if
if
I
i
add
add
a
a
button
button
comment,
comment
it
it
will
will
autocomplete
autocomplete
with
with
the
the
expected
expected
ID.
id
And
and
finally,
finally
let's
let's
jump
jump
into
into
our
our
CSS
css
and
and
give
give
it
it
some
some
style.
style
If
if
I
i
Add
add
a
a
comment
comment
for
for
a
a
red
red
button
button
with
with
a
a
blue
blue
background,
background
it
it
will
will
start
start
implementing
implementing
that
that
code
code
line
line
by
by
line.
line
But
but
it's
it's
generally
generally
more
more
efficient
efficient
to
to
just
just
go
go
straight
straight
to
to
the
the
Copilot
copilot
and
and
see
see
the
the
available
available
options
options
here.
here
An
an
interesting
interesting
side
side
note
note
is
is
that
that
you'll
you'll
get
get
different
different
results
results
here
here
each
each
time
time
you
you
go
go
to
to
the
the
Copilot,
copilot
even
even
if
if
the
the
comment
comment
is
is
exactly
exactly
the
the
same.
same
The
the
results
results
are
are
kind
kind
of
of
all
all
over
over
the
the
place,
place
but
but
I
i
think
think
it's
it's
enough
enough
to
to
give
give
you
you
some
some
starting
starting
code
code
to
to
work
work
with.
with
Don't
don't
expect
expect
this
this
thing
thing
to
to
be
be
turning
turning
out
out
production
production
grade
grade
code
code
just
just
yet.
yet
That's
that's
not
not
going
going
to
to
happen
happen
until
until
protocol
protocol
4
4
is
is
implemented.
implemented
Now
now
if
if
we
we
go
go
ahead
ahead
and
and
open
open
our
our
app
app
in
in
the
the
browser,
browser
we
we
should
should
get
get
this
this
blue
blue
button
button
and
and
every
every
time
time
it's
it's
clicked,
clicked
it
it
will
will
increment
increment
the
the
state
state
by
by
the
the
modulus
modulus
of
of
3.
3
All
all
things
things
considered,
considered
I
i
think
think
Copilot
copilot
did
did
a
a
pretty
pretty
good
good
job.
job
It
it
feels
feels
a
a
little
little
rough
rough
around
around
the
the
edges,
edges
but
but
it's
it's
by
by
far
far
the
the
best
best
AI
ai
coding
coding
experience
experience
that
that
I've
i've
ever
ever
had.
had
But
but
how
how
does
does
this
this
thing
thing
actually
actually
work?
work
Well,
well
in
in
order
order
to
to
build
build
useful
useful
AI,
ai
you
you
need
need
a
a
ton
ton
of
of
data.
data
Luckily,
luckily
over
over
the
the
last
last
12
12
years,
years
developers
developers
have
have
graciously
graciously
donated
donated
their
their
time
time
and
and
code
code
to
to
help
help
other
other
developers
developers
on
on
the
the
Internet
internet
while
while
foregoing
foregoing
their
their
copyright
copyright
to
to
that
that
content,
content
primarily
primarily
on
on
the
the
website
website
Stack
stack
Overflow,
overflow
which
which
was
was
just
just
It's
it's
acquired
acquired
this
this
month
month
for
for
$1,800,000,000
$1,800,000,000
impeccable
impeccable
timing
timing
for
for
their
their
founders
founders
to
to
cash
cash
out
out
just
just
weeks
weeks
before
before
a
a
game
game
changing
changing
existential
existential
threat
threat
hits
hits
the
the
industry.
industry
It
it
also
also
takes
takes
code
code
from
from
public
public
open
open
source
source
GitHub
github
repos.
repos
Now
now
because
because
it's
it's
generating
generating
unique
unique
code,
code
I
i
don't
don't
think
think
it
it
has
has
to
to
worry
worry
about
about
any
any
open
open
source
source
licensing
licensing
requirements.
requirements
Because
because
this
this
data
data
is
is
public,
public
Microsoft
microsoft
can
can
freely
freely
use
use
it
it
to
to
build
build
their
their
AI.
ai
The
the
deep
deep
learning
learning
model
model
behind
behind
the
the
data
data
is
is
GPT
gpt
t
t
3
3
or
or
generative
generative
pre
pre
trained
trained
transformer
transformer
3,
3
which
which
is
is
easily
easily
one
one
of
of
the
the
most
most
impressive
impressive
AI
ai
products
products
ever
ever
developed.
developed
People
people
describe
describe
it
it
as
as
amazing,
amazing
humbling
humbling
and
and
terrifying.
terrifying
And
and
it's
it's
really
really
good
good
at
at
being
being
creative
creative
based
based
on
on
some
some
initial
initial
context.
context
Like,
like
it
it
can
can
take
take
a
a
complex
complex
article
article
and
and
summarize
summarize
it
it
for
for
a
a
second
second
grader,
grader
or
or
it
it
can
can
take
take
an
an
idea
idea
that
that
you
you
have
have
for
for
an
an
ad
ad
and
and
generate
generate
the
the
actual
actual
ad
ad
copy.
copy
Under
under
the
the
hood,
hood
it's
it's
just
just
a
a
massive
massive
neural
neural
network
network
that's
that's
been
been
trained
trained
on
on
over
over
175,000,000,000
175,000,000,000
parameters.
parameters
To
to
put
put
that
that
in
in
In
in
perspective,
perspective
there
there
are
are
many
many
popular
popular
pre
pre
trained
trained
neural
neural
networks
networks
out
out
there
there
and
and
none
none
of
of
them
them
have
have
anywhere
anywhere
close
close
to
to
1,000,000,000
1,000,000,000
parameters,
parameters
let
let
alone
alone
a
a
175,000,000,000.
175,000,000,000
It's
it's
developed
developed
by
by
a
a
company
company
called
called
OpenAI
openai
that
that
was
was
founded
founded
by
by
people
people
like
like
Elon
elon
Musk,
musk
Sam
sam
Altman,
altman
and
and
other
other
high
high
profile
profile
tech
tech
figures.
figures
It
it
started
started
in
in
2015
2015
as
as
a
a
nonprofit,
nonprofit
but
but
I
i
think
think
they
they
realized
realized
they
they
could
could
make
make
a
a
shitload
shitload
of
of
money
money
and
and
converted
converted
to
to
a
a
for
for
profit
profit
company
company
in
in
2019.
2019
Now,
now
Microsoft
microsoft
doesn't
doesn't
control
control
open
open
AI,
ai
but
but
they
they
did
did
make
make
a
a
$1,000,000,000
$1,000,000,000
investment
investment
in
in
2019.
2019
Then
then
in
in
September
september
2020,
2020
they
they
announced
announced
they
they
have
have
licensed
licensed
the
the
exclusive
exclusive
use
use
of
of
GPT
gpt
3.
3
Other
other
companies
companies
can
can
still
still
use
use
the
the
API,
api
but
but
Microsoft
microsoft
is
is
the
the
only
only
company
company
that
that
can
can
truly
truly
take
take
full
full
advantage
advantage
of
of
the
the
GPT
gpt
3
3
algorithm.
algorithm
That
that
means
means
Microsoft
microsoft
will
will
be
be
able
able
to
to
build
build
products
products
that
that
nobody
nobody
can
can
really
really
compete
compete
with,
with
unless
unless
of
of
course
course
you
you
can
can
build
build
an
an
algorithm
algorithm
that's
that's
better
better
than
than
GPT
gpt
3.
3
Don't
don't
let
let
the
the
name
name
fool
fool
you.
you
OpenAI
openai
is
is
not
not
open.
open
A
a
better
better
name
name
for
for
it
it
might
might
be
be
something
something
like
like
Windows
windows
AI.
ai
But
but
this
this
is
is
all
all
great
great
news
news
for
for
developers.
developers
Right?
right
Ever
ever
since
since
Microsoft
microsoft
acquired
acquired
GitHub,
github
the
the
developer
developer
experience
experience
has
has
been
been
getting
getting
better
better
and
and
better.
better
You
you
can
can
get
get
your
your
GitHub
github
repos
repos
directly
directly
in
in
Versus
versus
Code,
code
GitHub
github
actions
actions
make
make
continuous
continuous
Integration's
integration's
super
super
easy,
easy
and
and
Copilot
copilot
will
will
just
just
be
be
one
one
more
more
awesome
awesome
feature
feature
to
to
add
add
to
to
the
the
list.
list
But,
but
it
it
makes
makes
me
me
wonder,
wonder
why
why
does
does
Microsoft
microsoft
love
love
us
us
developers
developers
so
so
much?
much
Historically,
historically
Microsoft
microsoft
has
has
not
not
had
had
a
a
great
great
relationship
relationship
with
with
developers.
developers
Just
just
Google
google
embrace,
embrace
extend,
extend
extinguish.
extinguish
Modern
modern
Microsoft
microsoft
has
has
been
been
doing
doing
a
a
lot
lot
of
of
embracing
embracing
and
and
extending,
extending
but
but
who
who
knows
knows
if
if
they
they
have
have
any
any
plans
plans
for
for
the
the
extinguish
extinguish
step.
step
Now,
now
I'm
i'm
just
just
joking
joking
around
around
here,
here
but
but
let's
let's
imagine
imagine
that
that
the
the
goal
goal
was
was
to
to
replace
replace
developers
developers
with
with
Hi.
hi
Programmers
programmers
are
are
expensive
expensive
in
in
short
short
supply
supply
and
and
one
one
of
of
the
the
biggest
biggest
expenses
expenses
for
for
any
any
tech
tech
company.
company
To
to
replace
replace
them,
them
you
you
need
need
a
a
4
4
step
step
plan.
plan
Step
step
1
1
is
is
to
to
get
get
them
them
to
to
share
share
which
which
have
have
public
public
information
information
about
about
their
their
code.
code
In
in
step
step
2,
2
we
we
use
use
that
that
code
code
to
to
create
create
a
a
product
product
that
that
makes
makes
developers
developers
happier
happier
and
and
more
more
productive.
productive
The
the
initial
initial
version
version
won't
won't
be
be
perfect,
perfect
but
but
as
as
more
more
and
and
more
more
Developers
developers
use
use
it,
it
will
will
collect
collect
more
more
and
and
more
more
data,
data
and
and
reinforce
reinforce
the
the
existing
existing
algorithm.
algorithm
In
in
theory,
theory
the
the
algorithm
algorithm
will
will
get
get
so
so
good
good
that
that
we'll
we'll
no
no
longer
longer
need
need
programmers
programmers
who
who
write
write
code,
code
maybe
maybe
just
just
technicians
technicians
who
who
can
can
help
help
guide
guide
the
the
algorithm
algorithm
to
to
the
the
right
right
place.
place
At
at
which
which
point,
point
your
your
company
company
can
can
fire
fire
its
its
programmers
programmers
and
and
pay
pay
a
a
bunch
bunch
of
of
well,
well
Azure
azure
coders
coders
by
by
the
the
second.
second
Copilot
copilot
is
is
free
free
for
for
now
now
and
and
only
only
available
available
through
through
a
a
technical
technical
preview,
preview
but
but
they
they
do
do
plan
plan
to
to
develop
develop
it
it
into
into
a
a
commercial
commercial
product
product
in
in
future.
future
AWS
aws
already
already
has
has
CodeGuru
codeguru
for
for
ML
ml
powered
powered
code
code
recommendations,
recommendations
so
so
the
the
big
big
players
players
here
here
are
are
already
already
introducing
introducing
paid
paid
services
services
that
that
will
will
replace
replace
the
the
jobs
jobs
normally
normally
done
done
by
by
the
the
human
human
coders.
coders
We're
we're
currently
currently
on
on
step
step
3
3
of
of
the
the
plan,
plan
but
but
again,
again
I'm
i'm
just
just
joking
joking
around
around
here.
here
This
this
is
is
just
just
a
a
meme
meme
channel.
channel
I
i
love
love
Bill
bill
Gates
gates
and
and
Microsoft.
microsoft
And
and
if
if
you
you
think
think
they're
they're
Evaded
evaded
by
by
anything
anything
beyond
beyond
their
their
genuine
genuine
love
love
for
for
developers,
developers
then
then
you
you
must
must
be
be
the
the
kind
kind
of
of
person
person
who
who
thinks
thinks
2
2
plus
plus
2
2
equals
equals
4.
4
All
all
I
i
ask
ask
is
is
that
that
you
you
hit
hit
like
like
and
and
subscribe
subscribe
to
to
my
my
channel
channel
so
so
I
i
can
can
keep
keep
you
you
updated
updated
on
on
the
the
latest
latest
tools
tools
hitting
hitting
our
our
industry.
industry
Thanks
thanks
for
for
watching,
watching
and
and
I
i
will
will
see
see
you
you
in
in
the
the
next
next
one.
one
success
The speakers discuss how Copilot can automatically generate code for a project and provide new code perfectly. They also suggest ways to implement the function in other programs and demonstrate how to use the Copilot extension to generate code for a React project and build a counter app with multiple moving parts. The AI technology behind Copilot is based on deep learning and using a large neural network with over 175,000 parameters, and Microsoft plans to license the GPT 3 algorithm to replace developers with human coders. The speaker also mentions a company called OpenAI that licensed the exclusive use of GPT 3, a large neural network developed by people like Elon Musk, Sam Altman, and other high-profile tech figures.
The Truth about Github Copilot // AI Programming First Look
In the not so distant future, you'll likely be writing far fewer lines of code than you are today, because artificial intelligence is coming to a Versus code near you. Microsoft, AKA GitHub, just announced Copilot yesterday, a tool powered by GPT 3 capable of writing code automatically. All you have to do is write a descriptive function name or some comments and it will automatically fill in the implementation details for you. And it's not just inserting a snippet, this is actual novel well, code that has never been seen before. It looks at the code you've already written in your project as context and attempts to generate new code to match it perfectly. For example, imagine you've written a React component, and you now want to write a unit test for it. Just write a comment describing what you wanna test, and Copilot will generate the code based on your component and the testing framework that you're using. Or say you want to calculate the number of days between 2 days. For me, that's an instant Google search, then Stack Overflow copy and paste. With Copilot, all I have to do is write a function name and it implements the function body for me automatically. If I'm not perfectly happy with the implementation, and I can click a button to get the next prediction. Anything that might have brought you to Stack Overflow can be auto completed in your IDE and custom tailored to fit your code base. Developers like to joke about how often they Google things and copy answers from Stack Overflow, so you can only imagine how big of a time saver this is going to be. I just got access to Copilot myself, so let's dive in and see how useful it really is. I just installed the extension in Versus Code, which required me to authenticate with my GitHub account. I've got a front end vanilla JavaScript project here with files for my HTML, CSS and JavaScript. You'll notice a little Copilot icon down here at the bottom, That just allows you to toggle it on or off. The first thing I wanna try is to define a function called intersection of arrays and see if it can complete the body of that function successfully. We'll give the function a name of intersection of oh, and it just predicts the name of the function that we're going to write and it looks like it's being implemented incorrectly. But there are multiple ways we could implement this function. Let's go ahead and delete the code back to the function name. If we hover over the automatically generated code, we can click next to cycle through different suggestions. I actually don't see any I like here, so I'm going to click the open Copilot option. That will synthesize 10 different possible Solutions and it happens very fast, like within 1 or 2 seconds. But looking closer at the solutions, it looks like they are all pretty much the same, even though I know there are multiple different approaches to implementing an intersection of arrays. The top answer on Stack Overflow actually has a cleaner implementation and I would have this to at least be an option in the results, but let's move on and see if we can build a little counter app that has multiple moving parts. First, I'm going to define some state which is just a variable equal to 0. You'll notice that it's trying to make predictions as I'm writing out this variable. That is one thing that's kind of annoying. It's almost a little too aggressive when making predictions. It would be nice if the AI could predict when I actually want predictions. Also, it predicts things for React and Vue even though I'm not in a React or Vue project. In any case, the next thing I wanna do here is grab a button from the DOM. I'll give the AI a hint by writing a comment and you'll notice that It actually auto completes the comment for me. It knows exactly what I wanna do because it's such a common thing to do. Now that we have a button, let's set up an event listener on the click event to increment the state each time that it's clicked. Now I start writing another comment, I don't even type anything and it fills out that entire comment for me. That's pretty crazy because it's using the context of our previous line of code to figure out what to write next. I'll hit tab a couple times and you'll notice that it That's up an event listener on the button variable that we defined. Then it proceeds to update the state by incrementing it by 1. It also adds a modulus 3 here. I'm not sure what that's about. That'll just make it count to 3 in a loop and I have no idea where it would get the idea to do that. And finally, it knows that we want to show the state in the UI, so it takes our button and sets the inner HTML to the current state. That's pretty wild, but now I'm going to go into the HTML and add the button to the DOM. It doesn't seem to know that Javascript is looking for a certain button, but if I add a button comment, it will autocomplete with the expected ID. And finally, let's jump into our CSS and give it some style. If I Add a comment for a red button with a blue background, it will start implementing that code line by line. But it's generally more efficient to just go straight to the Copilot and see the available options here. An interesting side note is that you'll get different results here each time you go to the Copilot, even if the comment is exactly the same. The results are kind of all over the place, but I think it's enough to give you some starting code to work with. Don't expect this thing to be turning out production grade code just yet. That's not going to happen until protocol 4 is implemented. Now if we go ahead and open our app in the browser, we should get this blue button and every time it's clicked, it will increment the state by the modulus of 3. All things considered, I think Copilot did a pretty good job. It feels a little rough around the edges, but it's by far the best AI coding experience that I've ever had. But how does this thing actually work? Well, in order to build useful AI, you need a ton of data. Luckily, over the last 12 years, developers have graciously donated their time and code to help other developers on the Internet while foregoing their copyright to that content, primarily on the website Stack Overflow, which was just It's acquired this month for $1,800,000,000 impeccable timing for their founders to cash out just weeks before a game changing existential threat hits the industry. It also takes code from public open source GitHub repos. Now because it's generating unique code, I don't think it has to worry about any open source licensing requirements. Because this data is public, Microsoft can freely use it to build their AI. The deep learning model behind the data is GPT t 3 or generative pre trained transformer 3, which is easily one of the most impressive AI products ever developed. People describe it as amazing, humbling and terrifying. And it's really good at being creative based on some initial context. Like, it can take a complex article and summarize it for a second grader, or it can take an idea that you have for an ad and generate the actual ad copy. Under the hood, it's just a massive neural network that's been trained on over 175,000,000,000 parameters. To put that in In perspective, there are many popular pre trained neural networks out there and none of them have anywhere close to 1,000,000,000 parameters, let alone a 175,000,000,000. It's developed by a company called OpenAI that was founded by people like Elon Musk, Sam Altman, and other high profile tech figures. It started in 2015 as a nonprofit, but I think they realized they could make a shitload of money and converted to a for profit company in 2019. Now, Microsoft doesn't control open AI, but they did make a $1,000,000,000 investment in 2019. Then in September 2020, they announced they have licensed the exclusive use of GPT 3. Other companies can still use the API, but Microsoft is the only company that can truly take full advantage of the GPT 3 algorithm. That means Microsoft will be able to build products that nobody can really compete with, unless of course you can build an algorithm that's better than GPT 3. Don't let the name fool you. OpenAI is not open. A better name for it might be something like Windows AI. But this is all great news for developers. Right? Ever since Microsoft acquired GitHub, the developer experience has been getting better and better. You can get your GitHub repos directly in Versus Code, GitHub actions make continuous Integration's super easy, and Copilot will just be one more awesome feature to add to the list. But, it makes me wonder, why does Microsoft love us developers so much? Historically, Microsoft has not had a great relationship with developers. Just Google embrace, extend, extinguish. Modern Microsoft has been doing a lot of embracing and extending, but who knows if they have any plans for the extinguish step. Now, I'm just joking around here, but let's imagine that the goal was to replace developers with Hi. Programmers are expensive in short supply and one of the biggest expenses for any tech company. To replace them, you need a 4 step plan. Step 1 is to get them to share which have public information about their code. In step 2, we use that code to create a product that makes developers happier and more productive. The initial version won't be perfect, but as more and more Developers use it, will collect more and more data, and reinforce the existing algorithm. In theory, the algorithm will get so good that we'll no longer need programmers who write code, maybe just technicians who can help guide the algorithm to the right place. At which point, your company can fire its programmers and pay a bunch of well, Azure coders by the second. Copilot is free for now and only available through a technical preview, but they do plan to develop it into a commercial product in future. AWS already has CodeGuru for ML powered code recommendations, so the big players here are already introducing paid services that will replace the jobs normally done by the human coders. We're currently on step 3 of the plan, but again, I'm just joking around here. This is just a meme channel. I love Bill Gates and Microsoft. And if you think they're Evaded by anything beyond their genuine love for developers, then you must be the kind of person who thinks 2 plus 2 equals 4. All I ask is that you hit like and subscribe to my channel so I can keep you updated on the latest tools hitting our industry. Thanks for watching, and I will see you in the next one.
The speakers discuss how Copilot can automatically generate code for a project and provide new code perfectly. They also suggest ways to implement the function in other programs and demonstrate how to use the Copilot extension to generate code for a React project and build a counter app with multiple moving parts. The AI technology behind Copilot is based on deep learning and using a large neural network with over 175,000 parameters, and Microsoft plans to license the GPT 3 algorithm to replace developers with human coders. The speaker also mentions a company called OpenAI that licensed the exclusive use of GPT 3, a large neural network developed by people like Elon Musk, Sam Altman, and other high-profile tech figures.