4

My Adventure with ChatGPT: A Developer’s Perspective

 1 year ago
source link: https://jqno.nl/post/2023/03/15/my-adventure-with-chatgpt-a-developers-perspective/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

In a previous blog post, I explored the capabilities of GPT-3.5 using a series of prompts and outlines. Curious to see if the newer GPT-4 could outshine its predecessor, I decided to put it to the test using the same set of prompts and outlines. Join me as I compare my experiences and evaluate whether GPT-4 has improved upon the strengths and weaknesses of GPT-3.5 in the ever-evolving world of AI.

Hesitant Beginnings: Worrying about AI and Turning 42Permalink

A picture of a developer sitting behind a screen, generated by DALL-E

Prompt: An image of a developer working on a computer with ChatGPT open in the background

As a developer, I recently decided to try out ChatGPT, but I must admit, I was initially hesitant. I was worried about resource consumption and the potential impact on climate change. I couldn’t help but think of Douglas Adams, who famously said:

Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works. Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you’re thirty-five is against the natural order of things.

A picture of Douglas Adams saying something unintelligble, generated by DALL-E

Prompt: An image of Douglas Adams with a quote bubble saying “Anything invented after you’re thirty-five is against the natural order of things.”

I turn 42 next month, and I don’t want to be one of those “35 people”! So, I took the plunge and decided to give ChatGPT a shot.

First Impressions: A Promising StartPermalink

My initial experience with ChatGPT was pretty impressive. On my first attempt, I asked it to help me translate PL/SQL to Java. I provided an example, and to my surprise, it returned the rest of the translation without any errors. Beginners luck, perhaps?

A picture of something vaguely technical-looking, generated by DALL-E

Prompt: A before and after image of a code snippet with PLSQL on one side and Java on the other

For my second attempt, I threw it a curveball: I needed help with a niche project involving a GNOME extension. The GNOME documentation can be a bit like navigating through a maze, but ChatGPT managed to provide me with a full boilerplate to get started!

On top of that, it even explained the difference between yyyy and uuuu in Java date patterns, which I found quite informative. It’s like asking your friend for advice, except that friend is an AI that doesn’t need to sleep.

Hitting Some Bumps: When Things Go SouthPermalink

However, it wasn’t all sunshine and rainbows. ChatGPT did provide some answers that were just plain wrong:

  1. It explained how to write an equals method in Java with inheritance and adding state, but it got it all mixed up.
  2. It tried to help me solve a certain, badly documented issue with my GNOME extension but ended up giving me a dead end.
A picture of something reminiscent of a Linux desktop, generated by DALL-E

Prompt: An image of a GNOME desktop with a highlighted extension

When I asked it repeatedly for project name suggestions, it gave me duplicates. And when I asked how to test the equals method in Java, it didn’t mention EqualsVerifier. So, like a bowl of mixed nuts, you have to pick out the good parts and leave the rest behind.

The lesson here? Always double-check whatever ChatGPT provides you.

Silver Linings: Apologies and Rubber DucksPermalink

But there were some silver linings too. For one, ChatGPT apologizes a lot (sometimes, more than a Canadian!). After a particularly frustrating interaction, it even wrote a solid Stack Overflow post for me.

Even when it provided incorrect answers, it was still a useful rubber duck. You know, like explaining your problem to an inanimate object and suddenly realizing the solution yourself!

A picture of a creepy rubber duck, generated by DALL-E

Prompt: An image of a “rubber duck” toy with the caption “even with incorrect answers, it can still be a useful ‘rubber duck’ to help you think through a problem”

Final Thoughts: A Useful Tool, but Not a ReplacementPermalink

Overall, I found ChatGPT to be a useful tool, much like Stack Overflow. But, I won’t be making it my full-time job anytime soon. It’s more like an extra set of hands on a project, rather than a one-stop solution.

By the way, this blog post was written with the help of ChatGPT! I had to tweak the outline quite a bit to get satisfactory results, but it’s always nice to have a little AI assistance in my corner. Like a sous-chef in a kitchen, it can’t replace the head chef, but it can make life a little bit easier.

And who knows? Maybe someday, ChatGPT will be the ultimate developer sidekick, serving up not just code snippets but also expert advice, witty jokes, and maybe even a fresh cup of coffee. For now, though, it’s a good companion to have on hand when navigating the ever-changing world of technology.

So, as I embrace my 42nd birthday, I’m grateful for ChatGPT and the chance to stay ahead in the tech game. After all, if a hitchhiker can make it through the galaxy with just a towel, I can certainly tackle my next project with the help of an AI assistant!

Addendum: List of PromptsPermalink

  • Write a blog post in markdown format from the following outline. Flesh it out a bit. Include an analogy and a few jokes in the text.
  • Continue.
  • Give me a one-sentence summary that starts with the phrase “In which I”.
  • Write a short introductory paragraph that mentions I used the same prompts and outlines in an earlier piece about gpt 3.5 to see if gpt 4 did better.
  • Give me a clickbaity tweet to announce this follow-up post.
  • Write an addendum containing a list of all the prompts I gave you.

Original outlinePermalink

The outline is identical to the one in the previous post.

  • Tried ChatGPT as a developer
    • initially hesitant
    • worried about resource consumption and climate change
    • Douglas Adams
      • mention his quote about technology, the things that are in the world at age 15 and 35, and the natural order of things
      • i turn 42 next month but don’t want to be a 35 person
    • gave it a shot
  • Initially impressed
    • First attempt:
      • yranslating PLSQL to Java
      • gave an example and got the rest, without errors
    • Second attempt
      • niche project: GNOME extension
      • GNOME docs hard to navigate
      • gave me full boilerplate
    • Also
      • was able to explain the difference between yyyy and uuuu in Java date patterns
      • explain it
  • Found issues
    • some answers to my questions were plain wrong:
      • explanation how to write equals method in Java with inheritance and adding state
      • solving a certain, badly documented thing in GNOME extension
    • when repeatedly asked for names for a project, gave duplicates
    • when asked how to test equals in java, didn’t mention EqualsVerifier :(
    • always double-check whatever it gives you
  • Silver lining
    • it apologizes a lot
    • it wrote a good StackOverflow post after frustrating interaction
    • even with incorrect answers, is sometimes useful rubber duck
  • I like it
    • useful tool like stack overflow
    • but won’t make it my job
  • mention that this post was written by chatgpt
    • but had to tweak the outline a lot to produce good results

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK