If you've used ChatGPT, you know the human-like chatbot's ability to answer questions is astounding. When I created my software and web development company twenty-five years ago, using AI-influenced workflow wasn't on our radar. I recommend asking any web development or software vendor you're evaluating if they use GitHub Copilot X because Copilot is GPT-4 enabled, so your coding team works faster, writes better code, and intelligently tests before pushing new code into your stable website, and web application, or API. *** Jun 16 2023 Update.
GitHub and Microsoft has recently been doing updates. Copilot X, which is designed to expand beyond the Intellisence. While the origianl Copilot was based on a GPT-3 known as Codex, it will likely come as no surprise that the Microsoft-owned software development hosting service’s Copilot X now uses GPT-4. Most of the time it is writting pretty good code. But we have run into issues where the AI thinks it is right, but it is not. We are happy to see enhancements and that the project is using newer, smarter, OpenAI based models. **** End Update
Cloud computing was a tectonic shift in creating websites and software. And AI tools such as GitHub Copilot X will shorten and enrich our software development lifecycle. We've used AI tools in our development shop since July 2021, including GitHub Copilot. Copilot X is a groundbreaking code completion, pair programming, and testing assistant tool developed by GitHub using OpenAI's ChatGPT4.
Copilot started by helping my team write programming languages we didn't frequently code, for example, a C# developer writing a Python script. Still, we've found many ways to use Copilot that go well beyond where we started. Read on to discover how we use GitHub Copilot X and why I recommend asking any vendor you're considering if they use GitHub Copilot X too.
We've used GPT-3 enabled Copilot and the Open AI Codex for years. Their Codex got trained on public code repositories such as the Mozilla Developer Network (MDN), various programming languages, libraries, and frameworks. OpenAI's extensive training enables Copilot X to change the developer experience and increase our productivity by generating code snippets, providing context-aware suggestions, and offering solutions to coding problems. GitHub Copilot X even learns your programming style.
Here's a summary of how we use GitHub Copilot X:
AI Chat Interfaces Chat interfaces improve programmer functionality and productivity in Visual Studio, our integrated developer environment (IDE) framework from Microsoft.
Boilerplate How we use development tools such as Copilot's auto-completion, intelligent code completion, and pull requests and pull request descriptions to command line program and augment our vs. code Microsoft editor in our integrated development environment (IDE).
Rocking Pull Requests The React library doesn't use AI yet, but we leverage AI to enhance our React applications and development workflows. The new versions of CodePilot are tracking your changes and helping write your documentation on Pull Requests.
Technical Previews Unit Tests - Using Copilot to debug and test.
GitHub Copilot X Review Thanks to our Microsoft partnership, we weren't on a waitlist to receive a technical preview version of GitHub Copilot X. Read my review.
All programmers should be using these tools by the end of this year. That's why asking if your developers use GitHub Copilot X becomes a vital litmus test. Voice coding tools are up next, probably in early 2024. While gamers might compete without tools like A GPU in their computer, it does not happen. And your developers shouldn't code without GitHub Copilot.
Let's be clear: GitHub Copilot X and other AI programming tools don't deliver great code; they help great coders have unique code faster. If you don't know what you don't remember, Copilot can't help. While GitHub Code Copilot X could lag a bit, we've seen better, faster results even in the last five days.
A few days ago, we needed a simple 404 page for a site with Bootstrap CSS. Codepilot X wrote an excellent 404 page in 45 seconds and with proper structure. Nice job. Next, I needed to pull a script to convert and clean the data types we last used many years ago. That script was like butter, thanks to Copilot X and the millions of lines of code written by other developers and included in OpenAI's Codex writing.
Use the links below to learn why GitHub Copilot X and AI are the future of software and website development.
Our developers leverage AI chat interfaces to enhance productivity in various ways. Using GitHub Copilot X, our developers streamline their workflow, access valuable resources, and automate repetitive tasks. Here are some ways our developers use an AI chat interface to be more productive:
Help Developers can ask AI chatbots for help with programming languages, syntax, or best practices. The AI assistant can provide code examples, suggest solutions, and offer guidance on specific tasks. Quickly access the most popular Stack Overflow comments.
Troubleshooting When encountering errors or bugs, developers can consult an AI chatbot to receive suggestions for potential fixes or troubleshooting steps.
Project Management AI chatbots can be integrated with project management tools to help developers track tasks, set reminders, and receive notifications about deadlines or essential updates.
Collaboration Developers can use AI chat interfaces to collaborate with team members in real time, sharing code snippets, discussing ideas, and resolving issues more efficiently. We like to Co-DEV. Now you can co-dev with an AI, like bouncing your ideas off your personal Lt. Data.
Documentation AI chatbots can help developers find relevant documentation, tutorials, or articles related to a specific programming topic or technology.
Code Review AI-powered chatbots can analyze code and recommend improving its quality, readability, and performance. Code review helps developers maintain a high standard of code quality throughout their projects.
Automation AI chatbots can automate repetitive tasks, such as generating boilerplate code, running tests, or deploying code to different environments, allowing developers to focus on more complex and creative tasks.
Learning Developers can use AI chat interfaces to learn new programming languages, frameworks, or tools by asking questions and receiving guidance from the AI assistant.
GitHub Copilot Chat Copilot chat is not just a chat window. It recognizes what code a developer has typed and what error messages get shown and embedded into our integrated development environment (IDE).
Discover how chatbots and AI will change our boilerplate code and why that's important in the Boilerplate section.
We're an Agile software development shop heavily influenced by Ken Beck's Extreme Programming, so we tend to write more Lego code than boilerplate, but no matter what you call how you code, GitHub Copilot X helps with:
Autocomplete Developers often need to write boilerplate code, such as creating class constructors or implementing standard functions. GitHub Copilot can automatically generate these code snippets, saving developers time and reducing the risk of errors.
Algorithms When tackling challenging problems or implementing advanced algorithms, GitHub Copilot can provide guidance and suggest appropriate solutions based on its vast knowledge of existing code repositories.
API When integrating third-party APIs or libraries, GitHub Copilot can help developers navigate the specific syntax and usage patterns required by these external resources.
Code Developers can use GitHub Copilot's suggestions to refactor and optimize their code, improving its readability, maintainability, and performance.
AI helps our command-line coding. Here are some key command line terms to understand:
Command Prompt (Windows) The default command line interface for Windows, using the cmd.exe program.
PowerShell (Windows) An advanced command line and scripting environment for Windows, providing more powerful features and functionality than Command Prompt.
Terminal (macOS and Linux) Terminal for Mac and Linus uses the Bash (Bourne-Again SHell) or other Unix-based shells.
Now let's get geeky and rock pull requests.
While command-line interfaces have a steeper learning curve compared to their graphical interface siblings, they offer several crucial advantages, including:
Speed Command line interfaces are faster and more efficient for performing tasks, especially when dealing with repetitive or complex operations.
Automation Command line coding makes it easy to script, automate tasks, and perform complex operations with a single or series of commands.
Remote Access Command line interfaces provide sophisticated remote access to manage systems remotely through secure shell (SSH) connections.
Troubleshooting Managing services, monitoring system performance, or repairing file systems are more efficient using the command line.
A pull request is a collaborative feature in version control systems, such as GitHub, helping developers propose changes to our codebase and request that their changes get merged into another branch, such as the primary or master branch. In addition, GitHub creates a user-friendly interface to manage and review our team's proposed changes.
The pull request process usually involves the following steps:
Fork or Branch Developers create a fork on our original GitHub repository or add a new branch within the existing repository to propose code changes. Forks ensure the main codebase remains unaffected while we work on proposed modifications, only pushing changes when tested and approved.
Commit Our developers change a codebase in a new branch or fork; once tested and approved, we commit changes with clear and descriptive commit messages.
Pull request Once their changes are complete, reviewed, and tested, our developers create a pull request to merge them from their branch or back them into the original repository.
Review We have repository leaders charged with maintaining and collaborating with other team members to review proposed changes, provide feedback, and discuss modifications. Review involves a sometimes contentious back-and-forth as we arrive at the best solution and agree to commit changes.
Approval Merge Once changes are reviewed and approved, the pull request is marked as approved, and our repository leader merges forkes into main branches.
Delete Our repository leaders usually delete and clean forks or branches once the code merges into the main codebase.
Pull requests facilitate collaboration, code review, efficiency, and quality because multiple developers get to work on a codebase simultaneously without affecting the main branch. GitHub also helps maintain a clear change history, ensuring each modification is carefully reviewed and discussed before being integrated into a stable code base.
As developers, we spend most of our time in "terminal" or "command-line coding," and AI will significantly impact our command-line programming. Some ways AI will impact command-line programming include:
Intelligent Auto-Completion Autocomplete is a real-time saver, and GitHub's AI's intelligent auto-complete, sensing what we're coding and making relevant completions, is even better. We receive context-aware commands, arguments, and options, making it easier and faster to discover and use relevant command line functions, prompts, and queries.
Natural Language Processing (NLP) AI such as GitHub Copilot enable our command line interfaces to understand and process natural language inputs, allowing our team to interact with the system using more intuitive, human-like language. Most of our coders prefer traditional commands and syntax, but an alternative exists.
Personalized AI analyzes a user's command history and preferences to provide customized recommendations and tips, helping users discover new commands, tools, and workflows relevant to their tasks and interests.
Error Detection AI can help identify and prevent common errors, such as typos or incorrect syntax, by providing real-time feedback and suggestions while users enter commands.
Documentation AI-driven documentation systems can provide context-aware assistance and examples, making it easier for users to find the information to use command-line tools and perform tasks.
Scripting and Automation AI can help users create more sophisticated scripts and automation workflows by offering suggestions, identifying patterns, and generating code based on user input or predefined templates.
Voice By incorporating AI-powered voice recognition, command line interfaces could be controlled using voice commands, making them more accessible and convenient.
AI has the potential to impact React and front-end development in several ways, from improving development workflows to enhancing user experiences. Here are some ways AI can impact React development:
Coding AI-powered tools like GitHub Copilot provide intelligent code suggestions and automatically generate React components based on our developer's input to speed up the development process and reduce the chance of errors.
UI AI-powered design tools analyze our designs suggest improvements, and generate new UI components. These AI suggestions create consistent and user-friendly React applications.
Personalized We use AI to analyze user behavior, preferences, and interactions within a React application to deliver customized content, recommendations, and experiences. Personalization helps developers create engaging and tailored user experiences.
Testing We use AI to automatically test and optimize our React applications to identify performance bottlenecks, accessibility issues, and other improvements. Automated testing helps developers create more efficient and accessible applications cutting down or eliminating the need for manual testing.
Accessibility Natural language processing, computer vision, and other AI technologies improve the accessibility of React applications by automatically generating alternative text for images, providing captions for videos, and enabling voice control.
Analytics AI-driven predictive analytics help our React developers anticipate our customers' needs creating a more proactive and responsive Agile UI design process.
Chatbots We're working on integrating AI-powered chatbots or virtual assistants into React applications to improve user engagement and provide real-time assistance, support, or personalized recommendations.
The React library has yet to start using AI directly. Still, our developers leverage AI technologies to enhance their React applications and development workflows.
AI has the potential to significantly impact technical previews and unit tests by enhancing existing processes, automating tasks, and improving overall software quality. Here are some ways AI can affect these areas:
Testing AI-powered tools help automatically generate unit tests based on code analysis, ensuring the code gets thoroughly tested without requiring my development team to write each test manually. Huge time saver.
Intelligent Testing We use AI to analyze code changes and determine the best unit tests, those tests most relevant to changes we've made. Intelligent testing reduces unnecessary tests and frees our developers to focus on the most critical tests.
Optimize Testing AI identifies redundancies, inefficiencies, or gaps in test coverage, enabling our developers to create more effective and efficient tests.
Debugging Debugging like a Pro is a lot easier with AI-driven debugging tools to identify the root cause of unit test failures, so time spent searching for failures, that missing semicolon, is reduced or eliminated.
Learning We use AI to analyze our unit test results over time, identifying patterns and trends to improve our testing process and software quality.
Integrating AI technologies into technical previews and unit testing processes makes the WTE development team more efficient even as our software quality improves. As the CEO, I like actionable insights because they improve products and user experiences.
To say GitHub Copilot X is the future of ai-powered software development would mean I have a gift for understatement, something no one has accused me of ever. So here's a quote from GitHub:
Here are a few features I've come to love in Github Copilot X:
Copilot Chat We like having Copilot chat embedded in our IDE, and we love how the ai tool recognizes code I've written. I love the analysis and explanation tools providing context for error messages and code suggestions to fix bugs.
Pull Requests (PRS) Our team loves GitHub Copilot X's technical preview powered by GPT-4. This new functionality supports AI-powered tags in pull requests through a GitHub app that organizational admins and individual repository owners install. Autofill for these tags gets based on the changed code rocks because it makes it easy for our developers to review or modify the description.
AI-Answers I have yet to use the GitHub Copilot for Docs. Still, I look forward to a tool that uses a chat interface to provide AI-generated responses to questions about documentation—including questions developers have about the languages, frameworks, and technologies used.
CLI Developers spend most of their time in the command line interface or terminal. Scrolling is a bear, and scrolling to find something you only vaguely remember is a big bear, so GitHub Copilot CLI to cut scrolling and query time looks like a winner.
My Microsoft stack software development company works with open-source code and react libraries and writes application program interfaces (APIs) for everything from leading customer relationship management tools like SalesForce to Bing. We use more frameworks than I can name or remember, and Github Copilot X is and will change everything we do, and our developer productivity has never been better. We'll write better code faster, making GitHub Copilot X one of our bag's most powerful software development tools.
How about you? What has been your experience working with GitHub Copilot X? Email me at Eric (at) WTE.net.