{"id":292878,"date":"2021-07-07T15:00:17","date_gmt":"2021-07-07T12:00:17","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/"},"modified":"2021-07-07T15:00:17","modified_gmt":"2021-07-07T12:00:17","slug":"why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/","title":{"rendered":"#Why GitHub\u2019s Copilot Isn\u2019t The End of Programming \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a25daef87846\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a25daef87846\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/#What_Actually_Is_Copilot\" >What Actually Is Copilot?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/#How_Far_Does_Copilot_Go\" >How Far Does Copilot Go?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/#Copilot_Doesnt_Scale\" >Copilot Doesn\u2019t Scale<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/#What_About_Licensing\" >What About Licensing?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/why-githubs-copilot-isnt-the-end-of-programming-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#Why GitHub\u2019s Copilot Isn\u2019t The End of Programming \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 2634px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage wp-image-12501 size-full\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/3ad1f84f.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"GitHub logo\" width=\"2634\" height=\"1440\" src=\"https:\/\/www.shutterstock.com\/image-photo\/nov-17-2019-san-francisco-ca-1569354004\" data-credittext=\"Sundry Photography\/Shutterstock.com\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-photo\/nov-17-2019-san-francisco-ca-1569354004\">Sundry Photography\/Shutterstock.com<\/a><\/span><\/figcaption><\/figure>\n<p>GitHub\u2019s launch of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/copilot.github.com\">Copilot<\/a> has attracted a fair bit of discussion over the past week. Copilot purports to be \u201cyour AI pair programmer\u201d that works alongside you to produce better code.<\/p>\n<p>Distributed as a Visual Studio Code extension, Copilot is like a vastly more powerful autocomplete that can fill in whole sections of code. It looks at what you\u2019re writing and suggests new lines or entire self-contained functions.<\/p>\n<p>Copilot\u2019s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.blog\/2021-06-29-introducing-github-copilot-ai-pair-programmer\">introduction<\/a> has caused some fear that it will eventually replace developers altogether. After all, if it knows what you\u2019re writing, and can suggest what comes next, isn\u2019t it the closest thing yet to an AI-powered developer? Here\u2019s why that isn\u2019t the case.<\/p>\n<h2 id=\"what-actually-is-copilot\"><span class=\"ez-toc-section\" id=\"What_Actually_Is_Copilot\"><\/span>What Actually Is Copilot?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First, it\u2019s helpful to explore what Copilot is today. The preview release <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.blog\/2021-06-29-introducing-github-copilot-ai-pair-programmer\">is built on OpenAI Codex<\/a>, an AI system acquired by Microsoft from OpenAI. It\u2019s a powerful source code analyzer compatible with dozens of popular programming languages.<\/p>\n<p>Codex is meant to understand \u201chow\u201d people use code. It determines the context of the code you\u2019re writing and suggests what could come next. Unlike an IDE\u2019s autocomplete, Copilot is capable of synthesizing new output from the code it\u2019s learned. It\u2019s not just an index of previously seen code.<\/p>\n<p>GitHub\u2019s currently citing a few specific examples as key use cases. These include generation of common functions, automatic production of unit tests, and improved discovery of code in APIs and libraries. If you\u2019re integrating with a common third-party API, Copilot could get you started before you\u2019ve read the documentation or copied a boilerplate.<\/p>\n<p>The system can also automate the completion of repetitive code sections, such as an array of objects with similar properties. You can write the first few manually, then have Copilot populate the rest of the array using your example. It\u2019s reminiscent of dragging down cell values in Excel.<\/p>\n<h2 id=\"how-far-does-copilot-go\"><span class=\"ez-toc-section\" id=\"How_Far_Does_Copilot_Go\"><\/span>How Far Does Copilot Go?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>At present, the answer is \u201cnot very far.\u201d Despite all the \u201cintelligence\u201d, \u201ccontextual\u201d and \u201csynthesizer\u201d buzz words, Copilot still has limited insight into your true intentions and what your code needs to achieve.<\/p>\n<p>Copilot only looks at your current file when computing suggestions. It won\u2019t assess how the code\u2019s used across your program. The AI\u2019s interpretation of your work might be significantly different to your own and could vary on a file-by-file basis, even if the true reasoning behind the files doesn\u2019t change.<\/p>\n<p>GitHub\u2019s also clear that Copilot\u2019s output is not guaranteed to be the \u201cbest\u201d <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>roach or even code that works. You might get security issues, lines that use old or deprecated language features, or code that simply doesn\u2019t run or make sense. You need to audit each Copilot suggestion you use to make sure your project still compiles and runs.<\/p>\n<p>Copilot\u2019s real role in the development process should now be a little clearer: it\u2019s an assistive <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/technology\/\" data-internallinksmanager029f6b8e52c=\"4\" title=\"Technology\" target=\"_blank\" rel=\"noopener\">technology<\/a>, meant to make the mundane somewhat easier, not a true automaton. Think it of as a sidekick or a navigator, not some form of omniscient developer that writes your code for you.<\/p>\n<h2 id=\"copilot-doesnt-scale\"><span class=\"ez-toc-section\" id=\"Copilot_Doesnt_Scale\"><\/span>Copilot Doesn\u2019t Scale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Copilot\u2019s best when you let it help you write functions that solve common use cases. What it can\u2019t do is understand the broader context of your codebase. Without the ability to really understand your intentions, Copilot\u2019s scale is limited.<\/p>\n<p>GitHub says it\u2019s working on making Copilot smarter and more useful. But until it\u2019s able to look at your entire project, not a single file, it\u2019s unclear how its role could be further expanded. In its present state, Copilot\u2019s essentially a glorified autocomplete. Instead of pressing tab to auto-fill standard library function names, you can accept suggestions for the functions themselves.<\/p>\n<p>Solutions for abstract technical problems already abound on programming sites like Stack Overflow. Copilot cuts out the time needed to search for a question, review the answers, and copy-and-paste the code. However, you\u2019re left to work out how to incorporate the solution into your overall system, after you\u2019ve checked Copilot\u2019s suggestion actually works.<\/p>\n<p>Copilot\u2019s not really programming at all. It looks at what you\u2019ve written, infers what you might be trying to do, and tries to assemble something suitable from its learned solutions. Copilot works for you, not the other way around. It\u2019s incapable of thinking creatively, suggesting a high-level architecture, or producing a cohesive system. Each suggestion is fully self-contained and derived solely from the code im<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>tely around it in the source file.<\/p>\n<p>By <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/copilot.github.com\">GitHub\u2019s own admission<\/a>, Copilot really is dependent on you. The tool works best when your code base is logically organized into small functions with clear typings, comments, and doc blocks. If you want the best results, you\u2019ll need to lead Copilot along by writing high-quality code yourself.<\/p>\n<h2 id=\"what-about-licensing\"><span class=\"ez-toc-section\" id=\"What_About_Licensing\"><\/span>What About Licensing?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Copilot has been trained using public GitHub projects with a wide variety of licenses. According to GitHub, this represents fair use of those projects. What\u2019s less clear is your responsibilities should you accept a Copilot suggestion.<\/p>\n<p>GitHub says Copilot\u2019s output \u201cbelongs to you\u201d and \u201cyou are responsible for it.\u201d It <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/copilot.github.com\">explicitly states<\/a> you don\u2019t need to credit Copilot or any other author if you use a suggested snippet. The company\u2019s keen to present Copilot as a \u201ccode synthesizer\u201d that produces original output, not a search engine of indexed snippets.<\/p>\n<p>Here\u2019s where the trouble begins. Copilot still stands a chance of outputting code sections verbatim. Depending on the licenses surrounding those snippets, this could get your own project into hot water. As Copilot\u2019s been trained on GitHub projects, you might even find personal data is injected into your source files.<\/p>\n<p>These events are meant to be rare. They\u2019re said to be more likely if the surrounding code context is weak or unclear. Examples seen so far include GPL-licensed <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/twitter.com\/mitsuhiko\/status\/1410886329924194309\">Quake code emitted as-is<\/a> (complete with profane language) and a real individual\u2019s website text and social links <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/twitter.com\/kylpeacock\/status\/1410749018183933952\">showing up when Copilot thinks<\/a> you\u2019re writing an \u201cabout me\u201d page.<\/p>\n<p>The GPL and other similar licenses stipulate derivative works must include the same permissions, so incorporating GPL code into a commercial product is a licensing breach. Consequently, use of Copilot has serious legal ramifications attached which you should evaluate before installing it. As Copilot <em>does<\/em> seem to emit code verbatim, without indicating the license accompanying the snippet, you could unknowingly commit copyright infringement by accepting a suggestion.<\/p>\n<p>This should confirm beyond doubt that Copilot\u2019s initial release is not going to replace a human developer. The code it emits isn\u2019t guaranteed to be relevant, might be broken or outdated, and could even be a legal risk.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Copilot\u2019s an ambitious project which has attracted a lot of discussion. The level of debate indicates many people have strong feelings about the idea. It\u2019s been a while since a new developer tool attracted so much buzz on day one.<\/p>\n<p>Copilot\u2019s appealing because it plays to several developer frustrations. Most, if not all, programmers sense the inefficiency in writing \u201cboilerplate\u201d code that\u2019s not terribly specific to their project. Taking Copilot at face value, they now have a solution that frees up more time to work on the creative aspects of their work.<\/p>\n<p>Where Copilot falls down is the blanket approach GitHub\u2019s taken to training the model. The inclusion of GPL-licensed code and the complete lack of any form of output testing are oversights that will hamper Copilot\u2019s real-world use. It\u2019s unclear whether GitHub\u2019s decision to train the model using public code actually falls under fair use; <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/decoded.legal\/blog\/2021\/06\/github-copilot-initial-thoughts-from-an-english-law-perspective\">there\u2019s speculation<\/a> it may not, in at least some jurisdictions.<\/p>\n<p>Moreover, GitHub\u2019s inability to verify Copilot code actually works means developers will still need to exercise caution and review everything it writes. A big part of Copilot\u2019s promise is in helping inexperienced developers progress but this won\u2019t happen if potentially buggy code is suggested and accepted.<\/p>\n<p>Finally, Copilot doesn\u2019t provide any indication of <em>how<\/em> or <em>why<\/em> its suggestions work. If it\u2019s to truly replace human developers, it should be able to explain the workings of a solution and provide visibility into the decisions it took. Developers can\u2019t blindly trust the machine; there will always need to be oversight and evaluation of different solutions.<\/p>\n<p>The how and why is also the biggest challenge facing a developer early in their career, which impedes Copilot\u2019s role as a mentoring tool. Anyone can copy source code from public projects, documentation, their peers, or Copilot, but ultimately it\u2019s acquiring understanding of why solutions work that progresses you through your career.<\/p>\n<p>Copilot in its current iteration doesn\u2019t address this \u2013 it\u2019s still up to you to work out what the inserted code does. Even a developer who regularly relies on Stack Overflow will end up in a better place, as they\u2019ll be reading answers and learning the thinking behind solutions. Copilot is a black box that could be seen as a repository of perfect code suggestions; the evidence so far shows that is far from the case.\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/12451\/why-githubs-copilot-isnt-the-end-of-programming\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#Why GitHub\u2019s Copilot Isn\u2019t The End of Programming \u2013 CloudSavvy IT&#8221; Sundry Photography\/Shutterstock.com GitHub\u2019s launch of Copilot has attracted a fair bit of discussion over the past week. Copilot purports to be \u201cyour AI pair programmer\u201d that works alongside you to produce better code. Distributed as a Visual Studio Code extension, Copilot is like a&#8230;<\/p>\n","protected":false},"author":1,"featured_media":292879,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/3ad1f84f.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-292878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/292878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=292878"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/292878\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/292879"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=292878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=292878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=292878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}