ChatGPT as a Coding Aid

As an engineer, I have had the opportunity to work with ChatGPT and I wanted to share my experiences with this technology. ChatGPT is a language model developed by OpenAI that can generate text and code based on the input provided to it. In this blog post, I will review the usefulness of ChatGPT in our daily work as software engineers, and provide specific examples of generated code in Golang, along with where it works well and where it does not.

At my company, we are always looking for ways to improve our workflow and increase our productivity. ChatGPT seemed like a promising technology that could help us with this goal, and we were excited to give it a try. We started by feeding it code snippets and asking it to generate more code that would solve a particular problem. Here are some examples of ChatGPT-generated code in Golang:

Example 1

Input:

package main
import "fmt"

func main() {
    fmt.Println("Hello, world!")
}

Output:

package main
import "fmt"

func main() {
	fmt.Println("Hello, world!")
}

In this example, ChatGPT was able to correctly identify that the input code was a basic “Hello, world!” program written in Golang, and it generated the same code as the output. This shows that ChatGPT can be useful for generating boilerplate code or for filling in missing code blocks that are similar to the input.

Example 2

Input:

package main
import "fmt"
func main() {
    x := 1
    y := 2
    z := x + y
    fmt.Println(z)
}

Output:

package main

import "fmt"

func main() {
	x := 1
	y := 2
	z := add(x, y)
	fmt.Println(z)
}

func add(a int, b int) int {
	return a + b
}

In this example, ChatGPT was able to identify that the input code was a simple addition program, and it generated additional code that defined a function called “add” that performed the addition operation. This shows that ChatGPT can be useful for generating code that requires a certain level of logic and problem-solving.

Example 3

Input:

package main
import "fmt"
func main() {
    s := "Hello, world!"
    fmt.Println(s.reverse())
}

Output:

package main
import "fmt"

func main() {
	s := "Hello, world!"
	fmt.Println(s.reverse())
}

func reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}

In this example, ChatGPT was not able to correctly identify that there is no “reverse” method in Golang for strings. It generated additional code that defined a “reverse” function, which is not a native method in Golang. This shows that ChatGPT can be limited by its lack of knowledge of specific programming languages or frameworks.

In conclusion, ChatGPT can be a useful tool for generating code and helping software engineers increase their productivity. However, it is important to keep in mind that ChatGPT may not always produce correct or efficient code, and it is important to carefully review the generated code before implementing it. By using ChatGPT in combination with traditional programming techniques, we can leverage its strengths while minimizing its weaknesses.

This blog post was written by ChatGPT.

Nathan's blog

A blog about programming, motorcycles, dungeons and dragons, amigas, and other things.


By matjam, 2023-02-21