Ask HN: Can ChatGPT generate fully functional code?
Fellow members,
I'm curious to know what are some of the best prompts to use on ChatGPT to understand its full-fledged capability as a newbie developer.
One of the things I noticed, is that it produces the requested code in the cleanest manner but it's not complete. For instance, I tried the prompt - "give me the python code for TicTacToe Game" and the code produced was incomplete.
Have you all encountered the same or my prompt is inappropriate?
68 comments
[ 3.6 ms ] story [ 127 ms ] threadFor your example, I'd ask it to 'generate code, using Python, that accepts input and updates a display to allow a user to play an interactive game of TicTacToe with the computer.' I'm sure I could do better with some experimentation, but that will have to wait for some other day.
I think this is getting caught up in media sensationalism. ChatGPT is regurgitating copied code from various sources. A way to look at this is if you could type out questions to Stack Overflow, then it responded by giving you code that most closely matches to what you asked. The thing about that is it is taking and searching code that thousands of humans have created, "filtering" based on question asked, and giving it back to you. Instead of a person doing the hard work of searching Stack Overflow and other sources, ChatGPT can be the new centralized source to get copied segments of code.
Copying and pasting code from various sources is not anything new. Because a person has copied a piece of code from somewhere doesn't mean they don't need to know programming, what is going on, or how to troubleshoot it. Some people, who are being lazy, might think that ChatGPT is a way out of studying and understanding what is being done, and they will sooner or later found out that it isn't.
Look at the mixed case tests below. Always the same string but sometimes a palindrome and sometimes not.
Same for the trailing whitespace test.
Maybe it got tired at this point. Could also explain why the performance test is missing warmup :D
ChatGPT is sensitive to how you prompt it, and it's designed to work as a dialogue where you ask further questions and it can refine its answer.
It can already write reasonable working code, although you shouldn't expect it to spit out entire working programs when the prompt is Gimme Teh Codez without further details. That being said, AI capabilities only get better with time, so I think it'd be shortsighted to dismiss its potential because of its current limitations.
If the pace keeps up, companies with access to large language models in a few years could have a large advantage on legacy programming, the same way programmers in high-level languages have a massive productivity advantage on 1970's low-level assembly programmers. You give up a little more control, but you save time.
Not just that: for an average programmer the compiler will optimize the code much better than if it was done by hand. Something similar can happen down the lane.
it has a token cap so it stopped once it filled them.
https://pythonsandbox.dev/e6uevcuueka1?file=main.py
I was wanting to try to do something I wasn't familiar w/ at all: Building a mobile app with flutter, and so far I've got the gPT chat completely cloned in flutter, I'm just missing the additional features I wanted to add like saving chats, sharing screenshots and text chats, entering a url, and scraping the page text to ask ChatGPT to summarize, or maybe write a blog post similar to this but don't copy anything, etc....
ChatGPT is a subset & tweak of the full GPT-3 model to make a good chatbot, and it's actually less capable than the full model.
It's strange to me that people are going crazy over ChatGPT when GPT-3 has been out for months now.
More info on the difference between ChatGPT and GPT-3: https://dev.to/ben/the-difference-between-chatgpt-and-gpt-3-...
ChatGPT is trained on a variant of gpt-3.5 (instructgpt), read more here https://openai.com/blog/chatgpt/
> It's strange to me that people are going crazy over ChatGPT when GPT-3
People are going crazy because of the combination of the capabilities of the model and the UX.
Surely you can appreciate how deploying your own full GPT-3 based solution to assist in code generation is much more complex than going to a web app and typing "code me an Express server".
Its worst nightmare was that there were some nested values in the .txt. What amazed me the most is that pasting the error code from colab into the chat, it recognized the mistake and generated a fix.
That being said, most of the times it would try to fix a logical mistake by overengineering a solution to an error, or it would identify the mistake correctly, explain in natural language what needs to be done (impressive), but then give me the code unchanged.
I bet that you could break-up your app into functions and have ChatGPT write each function to get to a bigger program.
It's limited now but I can definitely see the possibilities.
It won't be free forever so we'll have to weight the usefulness vs cost eventually.
Instead of you having to Google search everywhere or look in multiple sources, you were able to just ask ChatGPT.
Overall, it's impressive tech.
You can't tell it to "create a CRUD app", but you can ask it to create a nodejs function that gets all the records from a mongodb database.
const express = require('express')
const app = express()
// define the model for a user
const User = {
}// create a new user
app.post('/users', (req, res) => {
})// read a list of users
app.get('/users', (req, res) => {
})// read a single user
app.get('/users/:id', (req, res) => {
})// update a user
app.put('/users/:id', (req, res) => {
database, etc. const user = Object.assign({}, User, req.body) })// delete a user
app.delete('/users/:id', (req, res) => {
database, etc. })app.listen(3000, () => {
})But of course unless you had programming experience, you would have no way to structure this output correctly and actually take it live
Given this code for an example CRUD app, what unix commands could I run on my system to actually run this code?
$pasted_code_from_gp_comment
GPT's response:
> To run this code, you would need to install the express npm package by running npm install express in your terminal. After that, you can run the app by using the node command followed by the name of the file containing the code, for example: node app.js. This will start the server, which you can then access by going to http://localhost:3000/ in your web browser.
With follow up questions, such as "it says npm is not recognized command"; gpt will explain what that error means and how to fix it
This is the response to "it says npm is not recognized command":
> If you get an error that npm is not recognized as a command, it means that the npm command is not available on your system. This could be because you don't have Node.js installed, or because the npm command is not in your system path.
> To fix this error, you will need to install Node.js on your system. You can download and install the latest version of Node.js from the official website: https://nodejs.org/en/. After installing Node.js, you should be able to run the npm command from your terminal.
> Once you have installed Node.js, you can also check if the npm command is in your system path by running where npm on Windows or which npm on macOS or Linux. This should print the location of the npm command on your system. If it doesn't print anything, you may need to add the npm command to your system path manually.
> If you're still having trouble, you can try looking for solutions online or reaching out to the Node.js community for help. There are many forums and online communities where you can ask questions and get help from experienced users.
Can’t wait to see what this technology looks like in a year.
It's kinda crazy how fast my opinion went from "haha neat, the robot can write poems" to "this is an invaluable tool and I am begging you to let me pay for stable access". I use it multiple times per day, it's easily saved me hours already.
https://github.com/pdparchitect/ChatGPT-JobsForBots and https://github.com/pdparchitect/ChatGPT-Pong were two of them.
The author shows all the steps used to generate the programs.
There has been a few times where the app hangs with the three dots jumping - but that seems to be an issue with server overload.
I've been able to make lots of mini apps in JS/HTML/CSS that with very little tweaking could be dropped into codepen fully working.
Most of these required ~3 "continue the code example" and were started with at prompt like "Show me the code for an app in js, html, css where a user can input his weight in kg, and his daily calorie deficit. Then a canvas element shows a graph of his future weight loss changing live according to the changed input."
Absolutely amazing that it works. You can even dump an error from the console if it needs tweaking and it often fixes the error from the msg on the first try.
You can also say "give me just X function" or "continue above example from the line with 'someFunction or something'" or "give me just the css again but make it more modern" and it just works.
You can ask to explain code, write tests, refactor for perfomance or readability etc.
Having said that, I usually compare it with Junior programmers, more like someone just learning a new programming language. You can expect that level of performance from ChatGPT!
Seems like there would be far more content to train on and less restrictive criteria.
So far it's created some pretty amazing tailwindcss layouts for me, and a flutter app to interface with chatGPT that I want to add more features like saving, sharing, etc.. In 3 hours with zero flutter experience I can now at least do as much as the website does. That's pretty amazing.
Edit: YMMV -- imho you do need to be mid-senior level in tech/programming skills to know and find the best prompts to get it to go your way, there's some trial and error and your ide will usually let you know about errors/etc and you can ask them to fix it and gpt does a good job of correcting things.
Here is an example of a small JavaScript application that logs in to news.ycombinator.com using credentials passed on the command line and then posts the message you provided:
To use this code, you would need to save it to a file (e.g. hacker-news-post.js) and then run it from the command line, providing your username and password as arguments: