GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adaption from Individual Developers to Enterprise (Nick Wienholt) (z-library.sk, 1lib.sk, z-lib.sk)

Author: Nick Wienholt

AI

No Description

📄 File Format: PDF
💾 File Size: 22.9 MB
8
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adoption from Individual Developers to Enterprise — Nick Wienholt
📄 Page 2
GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adoption from Individual Developers to Enterprise Nick Wienholt
📄 Page 3
GitHub Copilot and AI Coding Tools in Practice: Accelerate AI Adoption from Individual Developers to Enterprise ISBN-13 (pbk): 979-8-8688-1783-0 ISBN-13 (electronic): 979-8-8688-1784-7 https://doi.org/10.1007/979-8-8688-1784-7 Copyright © 2025 by Nick Wienholt This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Ryan Byrnes Development Editor: Laura Berendson Editorial Assistant: Gryffin Winkler Cover designed by eStudioCalamar Cover image designed by Pexels Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a Delaware LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail booktranslations@springernature.com; for reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub. For more detailed information, please visit https://www.apress.com/gp/services/ source-code. If disposing of this product, please recycle the paper Nick Wienholt Pyrmont, NSW, Australia
📄 Page 4
To my wonderful children Jess and Alex – you amaze and inspire me every day. To my friends in Pyrmont whose support and encouragement made this book possible.
📄 Page 5
v About the Author ����������������������������������������������������������������������������������������������������� xi About the Technical Reviewer ������������������������������������������������������������������������������� xiii Introduction �������������������������������������������������������������������������������������������������������������xv Chapter 1: Current State of Play: The High-Level View ��������������������������������������������� 1 Chapter 2: Using an AI Coding Agent ������������������������������������������������������������������������ 7 Visual Studio Code (VS Code) and GitHub Copilot ������������������������������������������������������������������������� 8 Other “Copilot” Branded Offerings ������������������������������������������������������������������������������������������������ 9 GitHub Copilot Modes ������������������������������������������������������������������������������������������������������������������ 13 Multiple Implementation Suggestions and Non-code Files ��������������������������������������������������� 20 Outside the IDE ���������������������������������������������������������������������������������������������������������������������� 23 Conclusion ���������������������������������������������������������������������������������������������������������������������������������� 27 Chapter 3: Large Language Models: Under the Hood ���������������������������������������������� 29 Machine Learning ����������������������������������������������������������������������������������������������������������������������� 29 Artificial Intelligence (AI) ������������������������������������������������������������������������������������������������������� 31 GPT Models in AI Coding Tools ���������������������������������������������������������������������������������������������������� 34 OpenAI Models ���������������������������������������������������������������������������������������������������������������������������� 36 Gemini Models ����������������������������������������������������������������������������������������������������������������������� 36 Claude Models ����������������������������������������������������������������������������������������������������������������������� 37 Choosing a Model ������������������������������������������������������������������������������������������������������������������ 41 LLM Hallucinations ���������������������������������������������������������������������������������������������������������������������� 41 Conclusion ���������������������������������������������������������������������������������������������������������������������������������� 48 Chapter 4: Prompt Engineering with AI Coding Agents ������������������������������������������ 49 Context Is Key ����������������������������������������������������������������������������������������������������������������������������� 61 Context Beyond Files ������������������������������������������������������������������������������������������������������������������ 76 Table of Contents
📄 Page 6
vi Images ����������������������������������������������������������������������������������������������������������������������������������� 78 VS Code API ��������������������������������������������������������������������������������������������������������������������������� 87 Copilot Commands ���������������������������������������������������������������������������������������������������������������������� 88 Explicit Instructions, Model Differences, and Dealing with Junk ������������������������������������������������ 89 Conclusion ���������������������������������������������������������������������������������������������������������������������������������� 93 Chapter 5: Customizing and Extending Copilot ������������������������������������������������������ 95 Copilot Extensions ����������������������������������������������������������������������������������������������������������������������� 98 Copilot Javascript SDK �������������������������������������������������������������������������������������������������������������� 108 Client-Side Extensions �������������������������������������������������������������������������������������������������������������� 116 Integrating External AI Models Through GitHub Apps���������������������������������������������������������������� 117 Permanent Copilot System Instructions ������������������������������������������������������������������������������������ 119 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 120 Chapter 6: Security in the Time of Copilot ������������������������������������������������������������ 121 New Vulnerability Vectors: Copilot and LLM Skillsets ��������������������������������������������������������������� 123 Deep Fakes �������������������������������������������������������������������������������������������������������������������������� 123 Disjointed Code�������������������������������������������������������������������������������������������������������������������� 124 Disgruntled Software Engineers ������������������������������������������������������������������������������������������ 125 Poisoning Model Output ������������������������������������������������������������������������������������������������������ 127 Hallucination Squatting ������������������������������������������������������������������������������������������������������� 128 Information Leakage ������������������������������������������������������������������������������������������������������������ 128 Increasing Shadow IT and “Vibe Coders” ���������������������������������������������������������������������������� 130 Licensing Risks �������������������������������������������������������������������������������������������������������������������� 131 DevOps Vulnerabilities ��������������������������������������������������������������������������������������������������������� 131 Addressing Security Challenges ����������������������������������������������������������������������������������������������� 132 Quality Developers ��������������������������������������������������������������������������������������������������������������� 132 Periodic Security Reviews: Copilot and Traditional �������������������������������������������������������������� 133 Copilot Privacy Settings ������������������������������������������������������������������������������������������������������� 134 Pull Request Security Reviews �������������������������������������������������������������������������������������������� 136 Implement Existing and Emerging Best Practices ��������������������������������������������������������������� 136 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 137 Table of ConTenTs
📄 Page 7
vii Chapter 7: Designing Applications with Copilot ��������������������������������������������������� 139 Requirements Gathering ����������������������������������������������������������������������������������������������������������� 139 Use Cases ���������������������������������������������������������������������������������������������������������������������������� 140 Features������������������������������������������������������������������������������������������������������������������������������� 141 Getting Started �������������������������������������������������������������������������������������������������������������������������� 144 Application Creation ������������������������������������������������������������������������������������������������������������ 145 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 163 Chapter 8: Infrastructure, DevOps, and Monitoring with Copilot and AI��������������� 165 IaC Patterns������������������������������������������������������������������������������������������������������������������������������� 165 Infrastructure Design ����������������������������������������������������������������������������������������������������������� 167 Intelligent Tuning ����������������������������������������������������������������������������������������������������������������� 178 Copilot in Azure ������������������������������������������������������������������������������������������������������������������������� 179 Choosing an Azure Offering ������������������������������������������������������������������������������������������������� 180 Reviewing Existing Resources ��������������������������������������������������������������������������������������������� 182 Kusto Query Language (KQL) Musings �������������������������������������������������������������������������������� 186 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 188 Chapter 9: Databases and AI �������������������������������������������������������������������������������� 189 The Future of DBAs ������������������������������������������������������������������������������������������������������������������� 195 Database Tuning with AI ������������������������������������������������������������������������������������������������������������ 196 Automatic Database Tuning ������������������������������������������������������������������������������������������������� 198 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 200 Chapter 10: Copilot and Data Science ������������������������������������������������������������������ 201 Jupyter Notebooks in VS Code �������������������������������������������������������������������������������������������������� 203 Real-World Data Science and Copilot ��������������������������������������������������������������������������������������� 223 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 249 Chapter 11: Code Migrations and Refactoring ������������������������������������������������������ 251 Manual vs� Deterministic Tools vs� Probabilistic Tools (AI) �������������������������������������������������������� 261 Manual Ports ����������������������������������������������������������������������������������������������������������������������� 263 Deterministic (Traditional) Porting Tools ������������������������������������������������������������������������������ 264 Table of ConTenTs
📄 Page 8
viii AI Tools �������������������������������������������������������������������������������������������������������������������������������� 265 Port Testing with AI �������������������������������������������������������������������������������������������������������������� 267 Refactoring�������������������������������������������������������������������������������������������������������������������������������� 268 Chapter 12: Test Augmentation with AI ���������������������������������������������������������������� 275 Azure Test Plans ������������������������������������������������������������������������������������������������������������������������ 276 Manual Test Cases for eShopOnWeb ����������������������������������������������������������������������������������� 280 Automated Testing ��������������������������������������������������������������������������������������������������������������� 282 Copilot-Led Test Automation ����������������������������������������������������������������������������������������������������� 289 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 296 Chapter 13: Management Challenges Introducing AI ������������������������������������������� 297 The Agile Manifesto and AI-Generated Software ���������������������������������������������������������������������� 298 Agile Rethought ������������������������������������������������������������������������������������������������������������������������� 300 Measuring AI Cost Saving ��������������������������������������������������������������������������������������������������������� 302 Better Agile Metrics ������������������������������������������������������������������������������������������������������������� 304 Improving Specification Quality ������������������������������������������������������������������������������������������������ 305 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 306 Chapter 14: Surviving As a Software Engineer ����������������������������������������������������� 307 Five-Tool Software Engineers ��������������������������������������������������������������������������������������������������� 308 Leading the Transition to AI Coding ������������������������������������������������������������������������������������������� 309 Passing the Recruitment Hurdle ����������������������������������������������������������������������������������������������� 310 Growth Areas ����������������������������������������������������������������������������������������������������������������������������� 311 Integration Engineering ������������������������������������������������������������������������������������������������������� 312 Be Wary but Skeptical of All the Hype ��������������������������������������������������������������������������������������� 313 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 315 Chapter 15: Introducing and Integrating Copilot in an Organization �������������������� 317 Developer Usage ����������������������������������������������������������������������������������������������������������������������� 317 Uncovering Existing Bottlenecks ����������������������������������������������������������������������������������������������� 319 Interviews and Workshops �������������������������������������������������������������������������������������������������� 320 Table of ConTenTs
📄 Page 9
ix Expanding Skills and Automation ���������������������������������������������������������������������������������������������� 320 Better Specifications, Better Tests, More Automation ��������������������������������������������������������������� 321 Copilot in Agent Mode ��������������������������������������������������������������������������������������������������������������� 321 Conclusion �������������������������������������������������������������������������������������������������������������������������������� 326 Index ��������������������������������������������������������������������������������������������������������������������� 329 Table of ConTenTs
📄 Page 10
xi About the Author Nick Wienholt is a Sydney-based software engineer with over 25 years of experience in the design and implementation of large-scale software systems and has spent the last decade focused on development in the data science and AI space. He has a strong track record of delivery across a variety of financial and e-commerce systems, having consulted and worked with a large number of major corporate and propriety trading firms across Australia. He has been a keen user and advocate of ML/AI tools to accelerate development since their release.
📄 Page 11
xiii About the Technical Reviewer Fabio Claudio Ferracchiati is a Senior Consultant and Senior Analyst/Developer specializing in Microsoft technologies. He currently works at Telecom Italia (www. telecomitalia.it). Fabio holds several Microsoft certifications, including Microsoft Certified Solutions Developer (MCSD) for .NET, Microsoft Certified Application Developer (MCAD) for .NET, and Microsoft Certified Professional (MCP). He is also a prolific author and technical reviewer. During the past decade, he has contributed numerous articles to both Italian and international technology magazines and has coauthored more than ten books covering a wide range of computing topics.  
📄 Page 12
xv Introduction Software developers and software teams are under tremendous pressure to make sense of and leverage the AI coding revolution. The exciting demonstrations from tool vendors make integrating and utilizing Copilot and other AI coding agents look so easy, but there is a huge gap between the simple demonstrations and getting Copilot effectively integrated into an organization. This book addresses the gaps that exist between the flashy demonstrations and effectively using Copilot across the full range of the software development life cycle and covers the big gap that currently exists between agile methodology and successful using of Copilot and coding agents. Copilot can be used effectively in many job roles, from data scientist and DBAs through to devops and architecture, and this book provides detailed coverage of how each of these job functions can take advantage of AI to increase their productivity. The book concludes with an examination on the employment impacts of AI on software engineers, how they can adapt and leverage new skills to combat the threat that AI is believed to present to their job function, and practical ways that engineers can stay relevant in the new AI age.
📄 Page 13
1 © Nick Wienholt 2025 N. Wienholt, GitHub Copilot and AI Coding Tools in Practice, https://doi.org/10.1007/979-8-8688-1784-7_1 CHAPTER 1 Current State of Play: The High-Level View Probably in 2025, we at Meta, as well as the other companies that are basi- cally working on this, are going to have an AI that can effectively be a sort of midlevel engineer that you have at your company that can write code. —Meta CEO Mark Zuckerberg (https://www.businessinsider.com/ mark-zuckerberg-meta-ai-replace-engineers-coders-joe-rogan-pod- cast-2025-1) The reports of my death are greatly exaggerated. —Mark Twain (probably) The threat of jobs being replaced by new tools and technologies is nothing new, and the fears of humans being replaced or subjugated have a very rich literary tradition. In Frankenstein (published in the 1810s), Victor Frankenstein (who was the creator of The Monster, which was never named) ponders The Monster’s request for a female companion but concludes, “A race of devils would be propagated upon Earth who might make the very existence of the species of man a condition precarious and full of terror.” The 1920s play Rossumovi Univerzální Roboti (RUR), which coined the phrase robot, features hybrid human-machine robots taking human factory jobs. Looking at more recent tech history, Microsoft’s BizTalk Server promised in its 2000 release to significantly reduce the need for custom enterprise development by allowing business analysts to drop-and-drag elements on a design surface and implement the task with off-the-shelf execution modules. This promise was never fulfilled, and BizTalk had waned significantly in appeal. It hasn’t had a major new release in five years.
📄 Page 14
2 For the last decade, low-code platforms like Power Apps have picked up the threat, enabling non-developers to create applications on a design surface similar to BizTalk. Power Apps and the Microsoft Power Platform come conveniently bundled with enterprise Office 365 subscriptions, and combined with SharePoint Lists as a poor man’s database and Microsoft Forms as an even poorer man’s UI, the execution environment of Power Apps allows shadow IT to flourish. For any software developer that has experienced the horror of a low-code “application” being transitioned to an established IT department in an organization, the lack of critical features like proper source control, isolated environments, configuration management, and monitoring makes these applications horrible to support, maintain, and extend. In addition, the “code” produced by users not versed in the traditional best practices of software design is often lacking in many quality metrics. I was a member of the initial framework team at one of Australia’s largest financial institutions (and top 50 worldwide) where a 2004 project aimed to develop a code generation framework that would significantly reduce the need for custom development by auto-generating C# code based on a SQL SELECT statement, with all the remaining CRUD functionality, ORM code, and .NET front-end spat out by a code generation tool. Within three years, over 1000 people were working on the platform, with approximately 30% of these being .NET developers tweaking the generated code to implement the desired user interface and add custom business logic that was not possible to express in a simple SQL SELECT statement. Given these experiences, is the sensible approach to simply put ones’ head in the sand and chant the mantra of “this too shall pass” safe in the belief we, as software developers, will never be replaced? The counterargument is that software management clearly believes the hype that the replacement of hand-coded applications is nigh, the current tooling is significantly more advanced than previous code generation technologies, and the fact that unemployment within the development ranks has increased significantly from the heady days of 2021. The factors that “make it different this time” include • The AI tools are significantly better at round-tripping code changes as requirements change and users are able to assess generated prototypes. This contrasts strongly with previous iterations of code generation tools that had fixed outputs and had very poor regeneration experiences. Chapter 1 Current State of play: the high-level view
📄 Page 15
3 • The AI wave is being driven top-down. Previous generations of automated code generation have typically been bottom-up, with developers creating or utilizing tools from other developers to fast- track initial application scaffolds or develop CRUD user interfaces quickly. • The scale of investment in AI tools is unprecedented. The valuation, and ability to raise capital, for companies like OpenAI, which is behind ChatGPT, is extremely high. • The quantity of code bases that the tools are trained is massive. This gives them much greater abilities over previous tools that were generally single purpose. • The tools can understand the context of a task and adapt. • Natural language can be used to describe an arbitrary requirement and then generate code based on this requirement. Despite the euphoria, there are a number of challenges that AI-assisted coding needs to overcome: • In contrast to traditional code generation tools, AI-generated code is probabilistic, and many factors can impact the quality and accuracy of the generated code. • The range of languages in the code bases that the code generation models are trained on is limited. While there are a huge number of projects for front-end work that developers have shared publicly to GitHub (when combined, Type Script and JavaScript represent the top language group), other “boring” languages like SQL have much less training data available. Python, as a more glamorous language, represents 16% of the code pushed to GitHub in Q1 2024, while SQL doesn’t make the top 50 list (see https://madnight.github.io/ githut/#/pushes/2024/1 for the complete list). • The financial and environmental cost of the LLM models that underpin AI code generation are massive – Nature recently reported that electricity demand in data center-intensive Virginia is projected to double in the next decade (https://www.nature.com/articles/ d41586-025-00616-z). When the data center and GPU chips costs for Chapter 1 Current State of play: the high-level view
📄 Page 16
4 AI-generated code are tallied, they represent a significant impact on an organization’s environmental, social, and governance score. The costs are currently absorbed by the likes of Microsoft and Google, meaning the ESG impact is likely to be ignored in the short term, but at some stage the impact will need to be recorded and managed. Huge inflows of market capital are financing the current boom in LLMs, but at some stage, investors will seek a return on these outlays above market adoption and usage (as happened after the dot-com boom investments in web properties at the end of the 1990s). Financial costs are already creeping up for premium offerings from OpenAI, Claude, and xAI. • LLMs still suck a bit at the moment. In the study “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” (https:// arxiv.org/abs/2310.06770), researchers from Princeton and the University of Chicago found that “the best-performing model, Claude 2, is able to solve a mere 1.96% of the issues.” The issues were pulled from real-world bugs “consisting of 2,294 software engineering problems drawn from real GitHub issues and corresponding pull requests across 12 popular Python repositories.” • There are large advancements and changes in the tooling and models on a weekly basis. This presents significant challenges for an individual and team embedding the tools in their Software Development Life Cycle (SDLC). From developers updating their Integrated Development Environments (IDEs) and plug-ins to support the latest advancements, to QA and DevOps teams scrambling to accommodate the changes in AI tools used in their processes, the rate of churn presents a significant challenge to organizations. • The generated code is often close to being right, but not quite there. Keri Olson, who is IBM’s Vice President of Product Management (IT Automation), says the following on using AI to upgrade a COBOL code base to Java – the AI says: “Okay, I want to transform this portion of code.” The developer may still need to edit the code that the AI provides. “It might be 80 or 90 per cent of what they Chapter 1 Current State of play: the high-level view
📄 Page 17
5 need, but it still requires a couple of changes. It’s a productivity enhancement - not a developer replacement activity” (https://www. owler.com/reports/ibm/ibm—ibm-wants-to-use-ai-to-upgrade- cobol/1701172082889). As a developer, inheriting a code base that is “80 or 90 per cent of what they need” can be worse than no code at all – which 10–20% doesn’t meet the solution requirement? To understand that, the entire code base must be analyzed and understood, which for complex code bases can exceed the time to write it correctly from scratch. • Related to the point above, developers may have an unwillingness to take ownership for generated code. “The bug is the AI’s fault” is a natural response to a technology that can feel like it’s out to take your job, and the ownership avoidance issue is proportionally increased as the volume of generated code is increased. • Code generation to implement trivial tasks removes an important activity that was traditionally assigned to junior developers to hone and upgrade their skills. Without junior developers learning and advancing in their career, the number of senior software practitioners needed to manage a hybrid code base of hand-crafted and machine- generated code will eventually decrease below replacement level. • Licensing issues and legalities with generated code have not been fully explored. The legal process moves much slower than the technology industry, and AI-generated code may expose organizations to significant legal claims around intellectual property ownership in the future. • Some of the solutions generated by AI coding tools are simply wrong, often in subtle ways. Stack Overflow famously announced “all use of generative AI (e.g., ChatGPT1 and other LLMs) is banned when posting content on Stack Overflow.” They elaborated that “the average rate of getting correct answers from ChatGPT and other generative AI technologies is too low, the posting of content created by ChatGPT and other generative AI technologies is substantially harmful to the site and to users who are asking questions and Chapter 1 Current State of play: the high-level view
📄 Page 18
6 looking for correct answers” (https://meta.stackoverflow.com/ questions/421831/policy-generative-ai-e-g-chatgpt-is- banned). While it’s not excessively harmful if the ChatGPT-generated answer to the best way to make tomato soup from the ingredients that a user has on hand in their pantry is off by a bit, the stakes are much higher in software development. Put under enough pressure, ChatGPT can hallucinate answers and nominate nonexistent methods to solve an issue (more on this in subsequent chapters). From the pros and cons raised above, it’s clear that we are currently at an exciting and uncertain junction in the history of software development. The rest of this book will attempt to address these opportunities and issues and provide some actionable insights for software teams that are convinced that the minimum action currently required is to understand the tools and models and make an educated decision on their usage. Chapter 1 Current State of play: the high-level view
📄 Page 19
7 © Nick Wienholt 2025 N. Wienholt, GitHub Copilot and AI Coding Tools in Practice, https://doi.org/10.1007/979-8-8688-1784-7_2 CHAPTER 2 Using an AI Coding Agent A computer would deserve to be called intelligent if it could deceive a human into believing that it was human. —Albert Einstein This chapter provides an overview of the current (as of mid-2025) modes of interacting with AI coding agents from a developer’s perspective. This information is likely to change, but the underlying themes will remain constant. It’s unlikely coding Integrated Development Environments (IDEs) and associated plug-ins will be extinct any time soon. Software IDEs have existed since the late 1980s, and given the old axiom that, when considering any existing technology, it is most probable that we are approximately at the midpoint of its existence, the 35-year history of IDEs provides some confidence that they will continue to exist in some form for the majority of all current readers’ careers. This suggests that the patterns of interaction covered in this chapter can be expected to continue for a long term into the future (in software years). This chapter will focus on Visual Studio (VS) Code for all cases where the AI tooling is available via a plug-in. VS Code was used by three quarters of developers in a 2023 Stack Overflow survey (https://survey.stackoverflow.co/2023/#section-most- popular-technologies-integrated-development-environment) and has a strong Microsoft tie-in with GitHub Copilot, which was a pioneer in integrated AI assistants and benefited from the vast number of GitHub.com hosted repositories for training data, making it a natural starting point.
📄 Page 20
8 Visual Studio Code (VS Code) and GitHub Copilot VS Code (https://code.visualstudio.com/) is a free IDE produced by Microsoft, can be used at no cost for private and commercial use, and is available on Windows, Linux, and macOS. Visual Studio Code is “Build on Open Source” (https://code. visualstudio.com/docs/supporting/faq): Microsoft Visual Studio Code is a Microsoft licensed distribution of “Code – OSS” that includes Microsoft proprietary assets (such as icons) and features (Visual Studio Marketplace integration, small aspects of enabling Remote Development). While these additions make up a very small percentage of the overall distribution code base, it is more accurate to say that Visual Studio Code is "built" on open source, rather than "is" open source, because of these differences. The source code for VS Code is available at https://github.com/microsoft/vscode, and there is also a “community-driven, freely-licensed binary distribution of Microsoft’s editor VS Code” called VSCodium (https://vscodium.com/) that is available under the MIT license, as opposed to the not-FOSS (Free and Open Source Software) license that the VS Code binary distribution from Microsoft ships with. Open source distributions of VS Code are functionally equivalent to VS Code but have a harder time with integrating with the extension ecosystem, which is controlled by Microsoft. Using VSCodium is viable for most tasks, but can come with more pain interacting with extensions. For developers concerned about being tracked by Microsoft using VS Code, telemetry set back to Microsoft can be disabled. See https://code.visualstudio.com/ docs/editor/telemetry for further details. With the current version of VS Code, it’s hard to avoid GitHub Copilot. At the time of writing, Copilot is free for 2000 code completions and 50 chat messages per month (see https://docs.github.com/en/copilot/managing-copilot/managing-copilot-as- an-individual-subscriber/about-github-copilot-free for further details), and this provides ample scope to get hooked for most developers. In enterprise scenarios, a paid license is required. This can be managed via GitHub.com accounts. Getting started with Copilot in VS Code is very simple – the screen real estate given to the product makes it impossible to miss as shown in Figure 2-1. Chapter 2 Using an ai Coding agent
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now

Recommended for You

Loading recommended books...
Failed to load, please try again later
Back to List