Application & Data Migration Blog Posts | Mobilize.Net

Who's Smarter? Me or GitHub Copilot - Generative AI in Programming

Written by DeeDee Walsh | Apr 19, 2023 12:54:59 AM

Some might think we wrote this blog post in order to post a picture of a dog in goggles. They might be right but that doesn't mean we don't have some good stuff to say about GitHub Copilot. So here goes: Software development got a major accelerator with the release of GitHub Copilot in 2021. Even though some of us (ahem, John Browne) expressed some skepticism, we've seen some amazing results by using it. And then just when you think it couldn't get better, one of the most exciting developments was the introduction of GitHub Copilot powered by OpenAI's GPT-4. So, what's the deal with GitHub Copilot? Can you, should you use it? Here's a quick synopsis of when and how you should use it to help boost your productivity. Plus in an effort to learn Python, I used GitHub Copilot to help guide me through some of the basics. 

GitHub Copilot is an AI-driven code completion tool designed to help developers write better code faster. In this blog post, we will delve into the features of GitHub Copilot and explore how developers can use it to rock your software development experience - and maybe get more done faster. Plus check out an example of how I used GitHub Copilot

Understanding GitHub Copilot

GitHub Copilot is a cutting-edge AI assistant that integrates seamlessly with popular code editors like Visual Studio Code. By analyzing the context of the code you're writing, Copilot can automatically suggest code snippets, functions, and even entire classes that match your intentions. This AI-driven code completion aims to save developers time and effort while helping youwrite more efficient, cleaner code.

How Developers Can Use GitHub Copilot

Accelerate Code Writing
Writing code can be a time-consuming process, especially when you're starting from scratch or tackling a new concept. GitHub Copilot can assist by suggesting code snippets based on the context and your intent. This can significantly speed up the development process, allowing you to focus on more complex tasks and problem-solving.

Enhance Code Quality
GitHub Copilot is trained on a massive dataset of open-source code, which means it has learned from countless examples of high-quality code. By providing context-aware suggestions, Copilot can help you write cleaner, more efficient code that adheres to best practices.

Learn New Programming Languages and Libraries
If you're learning a new programming language or exploring a new library, GitHub Copilot is an invaluable resource. By providing code suggestions based on your intent, Copilot can help you familiarize yourself with new syntax and conventions, making the learning process smoother and more enjoyable.

Discover Alternative Solutions
Sometimes, we get stuck in our ways of thinking and tend to approach problems using familiar methods. GitHub Copilot can help break this pattern by suggesting alternative solutions to a given problem. By examining these suggestions, you may discover more efficient or elegant ways to tackle a problem, ultimately leading to improved code quality.

Reduce Time Spent on Documentation
One of the greatest challenges developers face is understanding how to use various APIs and libraries effectively. With GitHub Copilot, you can spend less time reading documentation and more time writing code. The AI assistant helps you understand how to use a given function or library by suggesting relevant code snippets and examples.

Maximizing the Benefits of GitHub Copilot

While GitHub Copilot offers numerous advantages, it's crucial to remember that it is an AI assistant, not a replacement for human developers. To get the most out of Copilot, consider the following tips:

  • Always review the suggested code: While Copilot's suggestions are incredibly helpful, they are not always perfect. Take the time to review and understand the suggested code before incorporating it into your project.
  • Customize and refine the suggestions: Don't hesitate to modify Copilot's suggestions to better suit your needs or to adhere to your project's specific requirements and coding style.
  • Use Copilot as a learning tool: Embrace the opportunity to learn from Copilot's suggestions and explore alternative solutions or approaches to problems.

GitHub Copilot is revolutionizing the way developers write code by providing an AI-driven assistant that accelerates development, enhances code quality, and supports learning. By understanding its features and utilizing it effectively, developers can harness the power of Copilot to create better software and improve skills. Embrace the future of software development and explore the potential of GitHub Copilot in your next project.

Supercharge Your Coding Workflow with GitHub Copilot: A Practical Example

Let me demo a practical example, showing you how it can save you time and improve code quality. In this example, I'll show you the power of GitHub Copilot by comparing code snippets before and after using it. Let's create a simple command-line weather app using Python and the OpenWeatherMap API, showcasing how Copilot enhances the coding process.

Prerequisites

To follow along, you'll need:

  1. A GitHub account (Sign up at https://github.com/)
  2. Visual Studio Code (Download from https://code.visualstudio.com/)
  3. GitHub Copilot extension for Visual Studio Code (Install from https://copilot.github.com/)

Creating a Simple Weather App

We'll build a basic command-line weather app using Python and the OpenWeatherMap API. This app will take the user's desired location as input, fetch the weather data, and display it in the console.

Step 1: Set up your project
Create a new Python file called weather_app.py in Visual Studio Code.

Step 2: Import required libraries
Before using Copilot, we'll start by importing the necessary libraries and writing some initial code:

# Before using GitHub Copilot
import requests

API_KEY = "your_api_key"
API_ENDPOINT = "http://api.openweathermap.org/data/2.5/weather"
 

After using Copilot, you'll see improved suggestions, such as importing the json library:

# After using GitHub Copilot
import requests
import json

API_KEY = "your_api_key"
API_ENDPOINT = "http://api.openweathermap.org/data/2.5/weather"
 

Step 3: Get user input for location

Before Copilot, we'll write a basic input statement:

# Before using GitHub Copilot
location = input()
 

After using Copilot, the code becomes more user-friendly with a prompt message:

# After using GitHub Copilot
location = input("Enter the city name: ")
 

Step 4: Fetch and display weather data

Without Copilot, we'll start with a simple function to fetch the weather data:

# Before using GitHub Copilot
def fetch_weather_data(location, API_KEY, API_ENDPOINT):
    response = requests.get(f"{API_ENDPOINT}?q={location}&appid={API_KEY}")
    data = response.json()
    return data

weather_data = fetch_weather_data(location, API_KEY, API_ENDPOINT)
print(weather_data)

After using Copilot, the code becomes more robust, with error handling, a separate function to display the data, and better formatting of the output:

# After using GitHub Copilot
def get_weather_data(location, API_KEY, API_ENDPOINT):
    params = {
        "q": location,
        "appid": API_KEY,
        "units": "metric"
    }

    response = requests.get(API_ENDPOINT, params=params)

    if response.status_code == 200:
        data = response.json()
        return data
    else:
        print("Error fetching data from API")
        return None

def display_weather_data(data):
    city = data["name"]
    temperature = data["main"]["temp"]
    description = data["weather"][0]["description"]

    print(f"Weather in {city}:")
    print(f"Temperature: {temperature}°C")
    print(f"Description: {description}")

if __name__ == "__main__":
    weather_data = get_weather_data(location, API_KEY, API_ENDPOINT
 

While we keep hearing that generative AI is going to put programmers out of business, I think we can all agree that it's more likely to only hurt the programmers who don't use it.