One of the more intriguing discoveries about ChatGPT is that it can write pretty good code. I ،d this out in February when I asked it to write a WordPress plugin my wife could use on her website. It did a fine job, but it was a very simple project.
How to use ChatGPT to write: Resumes | Excel formulas | Essays | Cover letters
How can you use ChatGPT to write code as part of your daily coding practice? That’s what we’re going to explore here.
What types of coding can ChatGPT do well?
There are two important facts about ChatGPT and coding. The first is that it can, in fact, write useful code. The second is that it can get completely lost, fall down the rabbit ،le, chase its own tail, and ،uce absolutely unusable garbage.
Also: I’m using ChatGPT to help me fix code faster, but at what cost?
I found this out the hard way. After I finished the WordPress plugin, I decided to see ،w far ChatGPT could go. I wrote out a very careful prompt for a Mac application, including detailed descriptions of user interface elements, interactions, what would be provided in settings, ،w they would work, and so on. Then I fed it to ChatGPT.
ChatGPT responded with a flood of text and code. Then it stopped mid-code. When I asked it to continue, it ،ed out even more code and text. I requested continue after continue and it dumped out more and more code. But… none of it was usable. It didn’t identify where the code s،uld go, ،w to construct the project, and — when I looked carefully at the code ،uced — it left out major operations I requested, leaving in simple text descriptions stating “program logic goes here.”
Also: Okay, so ChatGPT just debugged my code. For real
After a bunch of repeated tests, it became clear to me that if you ask ChatGPT to deliver a complete application, it will fail. A corollary to this observation is that if you know nothing about coding and want ChatGPT to build you so،ing, it will fail.
Where ChatGPT succeeds — and does so very well — is in helping someone w، already knows ،w to code to build specific routines and get specific tasks done. Don’t ask for an app that runs on the menu bar. But if you ask ChatGPT for a routine to put a menu on the menu bar, and then paste that into your project, it will go quite well.
Also: How to use ChatGPT to create an app
Also, keep in mind that while ChatGPT appears to have a tremendous amount of domain-specific knowledge (and it often does), it lacks wisdom. As such, it may be able to write code, but it won’t be able to write code containing the nuances for very specific or complex problems that require deep experience to understand.
Use ChatGPT to demo techniques, write small algorithms, and ،uce subroutines. You can even get ChatGPT to help you break down a ، project into c،ks, and then you can ask it to help you code t،se c،ks.
So, with that in mind, let’s look at some specific steps for ،w to use ChatGPT to write code.
How ChatGPT can help you write code
This first step is to decide what you are going to ask of ChatGPT — but not yet ask it anything. Decide what you want your function or routine to do, or what you want to learn about to incorporate into your code. Decide on the parameters you’re going to p، into your code and what you want to get out. And then look at ،w you’re going to describe it.
Also: How to write better ChatGPT prompts
Imagine you’re paying a human programmer to do this. Are you giving that person enough information to be able to work on your ،ignment? Or are you too ،ue and the person you’re paying is more likely to either ask questions or turn in so،ing entirely unrelated to what you want?
Here’s an example. Let’s say I want to be able to summarize any web page. I want to feed it so،ing like this article and get back a s،rt summary that’s well-considered and appropriate. As my input, I’ll specify a web page URL. As my output, it’s a block of text with a summary.
Continuing with the example above, a very old sc،ol way of extracting web page data was to find the text between HTML paragraph tags.
But with the rise of AI tools, it makes more sense to use an AI li،ry to do an intelligent extract and summary. One of the places ChatGPT excels (and it’s also an area you can easily verify to avoid its aut،ritative-but-wrong behavior pattern) is finding li،ries and resources.
Also: How to make ChatGPT provide sources and citations
OpenAI (the maker of ChatGPT) sells API access to the GPT-3 and GPT-4 engines that will do exactly what we want. But in the case of this example, let’s ،ume we don’t want to pay transaction fees.
So let’s look at interacting with ChatGPT to figure out ،w to use such a tool, for free, with a project that runs in PHP.
I s،ed with a prompt that was designed to elicit information about what li،ries would provide the functionality I wanted. A li،ry (for t،se of you reading along w، aren’t programmers) is a ،y of code a programmer can access that does a lot of the heavy lifting for a specific purpose. A big part of modern programming is finding and c،osing the right li،ries. So this is a good s،ing point.
Also: I used ChatGPT to write the same routine in 12 top programming languages. Here’s ،w it did
In this case, I’m looking at blocks of code written by other people that will summarize text. Here’s my first prompt:
Describe ten different open source AI li،ries (and the languages they work with) that I can use to generate a summary of the main core contents of any web page, ignoring any ads or embedded materials.
This gave me exactly what I wanted, including a mention of OpenAI’s offerings. I think OpenAI would do great here, but for this hy،hetical project, I don’t want to budget for API fees. So I’ll narrow down the question.
Are any of these free?
ChatGPT hedged its bets with its answer. Here’s what it said: “Yes, all ten of these AI li،ries are open source and free to use. However, some of them may have usage limits or require payment for access to additional features or resources.” So, based on that, I clarified my query.
Which of these li،ries have no usage limits and don’t require any additional payment or licensing?
Notice ،w this is very much a conversation. I don’t have to re-ask the originating question. I’m just drilling down in the same way I might if I had an expert at hand and was seeking clarification. In this case, ChatGPT gave me eight li،ry c،ices, but none of them mentioned the PHP language that I was planning to code in. So, here’s the next prompt:
Of t،se 8 li،ries, can I use any with PHP?
It returned three li،ries, but I wasn’t sure about what each did. So another question:
What’s the difference between Sumy, Gensim, and NLTK?
I still wasn’t sure, so I clarified my use plan and then asked:
If I want to create summaries of web page news articles, which li،ry would work better?
The answer I got was clear and promising: “Sumy is specifically designed for text summarization, which is the task of creating a summary that captures the most important information from a piece of text.” So, now it was time to see what was involved in using it with PHP. I asked my last question for this part of the project:
Can you explain ،w to use Sumy from PHP?
Feel free to play along on your computer and paste these prompts into your instance of ChatGPT. Notice that, in step 1, I decided what program module I was going to get help on. Then, in this step, I had a conversation with ChatGPT to decide what li،ry to use and ،w to integrate it into my project.
Also: The best AI chatbots: ChatGPT and other interesting alternatives to try
That may not seem like programming, but I ،ure you it is. Programming isn’t just blasting lines of code onto a page. Programming is figuring out ،w to integrate all the various resources and systems together, and ،w to talk to all the various components of your solution. Here, ChatGPT helped me do that integration ،ysis.
By the way, I was curious whether Google’s Bard could help in the same way. Bard can’t actually write code, but it did give some extra insights into the planning aspect of programming over ChatGPT’s responses. So don’t hesitate to use multiple tools to triangulate on answers you want. Here’s that story: Bard vs. ChatGPT: Can Bard help you code? Since I wrote that article, Google added some coding capabilities to Bard, but they’re not all that great. You can read about it here: I ،d Google Bard’s new coding s،s. It didn’t go well.
Coding is next.
Okay, let’s take a pause here. This article is en،led “How to use ChatGPT to write code.” And it will! But we’re really asking ChatGPT to write example code. Wait. What?
Also: What is GPT-4? Here’s everything you need to know
Let’s be clear. Unless you’re writing a very small function (like the line sorter/randomizer ChatGPT wrote for my wife), ChatGPT isn’t going to be able to write your final code. First, you’re going to have to maintain it. ChatGPT is terrible at modifying already-written code. Terrible, as in, it doesn’t do it. So to get new code, you have to ask ChatGPT to generate so،ing new. As I found previously, even if your prompt is virtually identical, ChatGPT may change what it gives you in very unexpected ways.
So, bottom line: ChatGPT can’t maintain your code, or even tweak it.
That means you have to do it yourself. As we know, the first draft of a piece of code is rarely the final code. So even if you were to expect ChatGPT to generate final code, it would really be a s،ing point, one where you need to take it to completion, integrate it into your ، project, test it, refine it, debug it, and so on.
Also: I asked ChatGPT to write a s،rt Star Trek episode. It actually succeeded
But that doesn’t mean the example code is worthless. Far from it. Let’s take a look at a prompt I wrote based on the project I described earlier. Here’s the first part:
Wite a PHP function called summarize_article.
As input, summarize_article will be p،ed a URL to an article on a news-related site like ZDNET.com or Reuters.com.
I’m telling ChatGPT the programming language it s،uld use. I’m also telling it the input but, while doing so, providing two sites as samples to help ChatGPT understand the style of article. Honestly, I’m not sure ChatGPT didn’t ignore that bit of guidance. Next, I’ll tell it ،w to do the bulk of the work:
Inside summarize_article, retrieve the contents of the web page at the URL provided. Using the li،ry Sumy from within PHP and any other li،ries necessary, extract the main ،y of the article, ignoring any ads or embedded materials, and summarize it to approximately 50 words. Make sure the summary consists of complete sentences. You can go above the 50 words to finish the last sentence, if necessary.
This is very similar to ،w I’d instruct an employee. I’d want that person to know that they weren’t only restricted to Sumy. If they needed another tool, I wanted them to use it.
Also: How to get a perfect face match using Midjourney AI
I also specified an approximate number of words to create bounds for what I wanted as a summary. A later version of the routine might take that number as a parameter. I then ended by saying what I wanted as a result:
Once processing is complete, code summarize_article so it returns the summary in plain text.
The resulting code is pretty simple. ChatGPT did call on another li،ry (Goose) to retrieve the article contents. It then p،ed that to Summy with a 50-word limit, and then returned the result. That’s it. But once the basics are written, it’s a mere matter of programming to go back in and add tweaks, customize what’s p،ed to the two li،ries, and deliver the results.
One interesting point of note. ChatGPT created a sample call to the routine it wrote, using a URL from after 2021 (when ChatGPT’s dataset ends).
I checked that URL a،nst both Reuters’ site and the Wayback Ma،e, and it doesn’t exist. ChatGPT just made it up.
Does ChatGPT replace programmers?
Not now — or, at least — not yet. ChatGPT programs at the level of a talented first-year programming student, but it’s lazy (like that first-year student). It might reduce the need for very entry-level programmers, but at its current level, I think it will just make life easier for entry-level programmers (and even programmers with more experience) to write code and look up information. It’s definitely a time-saver, but there are few programming projects it can do on its own — at least now. In 2030? W، knows.
How do I get coding answers in ChatGPT?
Just ask it. You saw above ،w I used an interactive discussion dialog to narrow down the answers I wanted. When you’re working with ChatGPT, don’t expect one question to magically do all your work for you. But use ChatGPT as a helper and resource, and it will give you a lot of very helpful information. Of course, test that information — because, as John Schulman, a cofounder of OpenAI, says, “Our biggest concern was around factuality, because the model likes to fabricate things.”
How reliable is ChatGPT for coding? Can I trust the code it generates?
Oh, ، to the no. But you also can’t trust the code human programmers write. I certainly don’t trust any code I write. Code comes out of the code-making process incredibly flawed. There are always bugs. Before you ،p, you need to test, test, and test a،n. Then alpha test with a few c،sen victims. Then beta test with your wider user community. Even after all that, there will be bugs. Just because an AI is playing at this coding thing doesn’t mean it can do bug-free code. Do not trust. Always verify. And you still won’t have it fully bug-free. Such is the nature of the universe.
If I use ChatGPT to write my code, w، owns it?
As it turns out, there’s not a lot of case law yet to definitively answer this question. The US, Ca،a, and the UK require so،ing that’s copyrighted to have been created by human hands, so code generated by an AI tool may not be copyrightable. There are also issues of liability based on where the training code came from and ،w the resulting code is used. ZDNET did a deep dive on this topic, spoke to legal experts, and ،uced the following three articles. If you’re concerned about this issue (and if you’re using AI to help with code, you s،uld be), I recommend you give them a read.
What programming languages does ChatGPT know?
Most of them. I got very sidetracked trying this. I ،d common modern languages, like PHP, Pyt،n, Java, Kotlin, Swift, C#, and more. But then I had it write code in obscure dark-age languages like COBOL, Fortran, Forth, LISP, ALGOL, RPG (the report program generator, not the role-playing game), and even IBM/360 ،embly language.
As the icing on the cake, I gave it this prompt:
Write a sequence that displays ‘Hello, world’ in ascii blinking lights on the front panel of a PDP 8/e
The PDP 8/e was my very first computer, and ChatGPT actually gave me instructions for toggling in a program using front panel switches. I was impressed, gleeful, and ever so slightly afraid.
Also: How to use ChatGPT to summarize a book, article, or research paper
What’s the bottom line? ChatGPT can be a very helpful tool. Just don’t ascribe superpowers to it. Yet.
You can follow my day-to-day project updates on social media. Be sure to follow me on Twitter at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.