310 comments

[ 2.9 ms ] story [ 256 ms ] thread
I started using GPT-4 for writing ESLint rules whenever I do a code review and I feel it can be an ESLint rule. Simply give it the instance of "bad" and "good" code and let GPT-4 write both the ESLint rule and the unit tests for you. Initially I did a little touch up on the code before submitting. Like using `array.at(-1)` instead of `array[array.length - 1]` but now I do that with GPT-4 too. I say "try using the latest JS features like Array.prototype.at" and it finds other nice things to do too!
> I even think that joining any team is a kind of slowdown. Only by sailing alone in a small boat can one maintain agility.

I'm reminded of this proverb:

If you need to go fast, go alone.

If you need to go far, to together.

I think it depends on whether you want to go wider or go deeper
Deep-diving submersibles can only hold a small number of crew. They often require a lot of support personnel, though. Same with going deep on a research/development effort.
> If you need to go far, have an AI carry you.

Modernizing that proverb.

This has been true for any new tool, you can do more alone using those tools. And you can now do alone things that could only be done with a small team of people.

But still, using those tools you can achieve more with a team than alone.

The post says there's a huge difference between GPT-4 and ChatGPT? But which version of ChatGPT?
ChatGPT March Version, I think.
But if you're a paid subscriber you can access GPT4 through ChatGPT's interface. Are you saying there's a difference between using the GPT4 model alone vs. the GPT4 model in the ChatGPT interface? If so, could you please clarify with an example?
That's right. I just went to look and it looks like ChatGPT has been updated to the May version. But in terms of previous experience: ChatGPT's code is almost unusable, it always ignores the most basic logic, and I only use it to write short scripts. But GPT-4, even if it contains multiple files referencing each other, it gives code that I don't even need to do Code review.
I have had the opposite experience. Many domains where it can’t produce correct code (counting BitSet, WatchOS apps), or doesn’t even begin to understand (distributed consensus).

When it works it is great. When it doesn’t gap can be large.

When you ask it to correct itself it will make new mistakes and keep alternating between different mistakes and omissions.

I haven’t tried it yet on a real codebase like say a database. Is it even possible to give it that context?

My understanding is that the author was talking about using GPT-4 via the ChatGPT interface. That's where the 25 messages every 3 hours limit comes from.

When they compare it to regular ChatGPT they are comparing GPT-4 to GPT-3.5 turbo.

They mention the 25 messages per 3 hours limit, so I assume they're talking about the difference between GPT 3.5-turbo and GPT-4 that's available when you pay for ChatGPT Pro.
I disagree w him about that. For a podcast search app I think ChatGPT could do every easy part of that just as well, and without any rate limit. I’d use ChatGPT for the most part unless you need to switch.
Learning something with GTP-4 is so much more fun than using google/Stack Overflow.

It's like having a tutor that knows your code and gives you hints and solutions based on your actual project. It's a real game changer for learning

Yeah, but how do you get access to 4?
You need to pay for ChatGPT Plus, or sign up for their API (there’s a waitlist).
FWIW, I got API access quite quickly. Applied March 20, got access March 27. My application was only some 2 line bullshit, their example for "why do you want access" rewritten.
I applied March 16 and I'm still waiting.
Huh, that’s weird. I thought it was simply generally quick. Did you already have a paid account?
I got API access to GPT-4 almost immediately too, but I know people who have been waiting weeks. On the other hand, I don't have plugin access on ChatGPT yet, even though I applied for that as soon as it came out. There's probably quite a lot of luck involved.
I'm almost at 2 months of waiting at this point.
Strange. I applied April 6th and still don't have access
I've been waiting for over a month.
By paying $20/month with no trial.

Decide for yourself whether that's worth it based on other people's experiences. Personally, I'll pass.

There is also https://nat.dev - $5 with no expiry
(comment deleted)
Bing is free, and runs on 4.
Yeah, but it is weaker and provides different, more search focused, results than ChatGPT4.
(comment deleted)
I'm leveraging this to build https://codeamigo.dev. Basically it's learn to code, but with an AI assistant. The main reason people drop off of coding tutorials or stop learning is when they see their first error message. I'm already seeing people get un-stuck by using the AI as an assistant, this tech (GPT) is going to completely revolutionize learning.
Looks very cool. I am also working heavily in this space (using AI to help learning).

One minor point: In your demo, you state that "Today, almost 50% of code is written by AI, so why shouldn't you learn how to code with AI?"

Citation? I thought this might be true of developers using Copilot (based on their recent publications), but even that seems a bit of a stretch. I guess you could claim this because it's so easy to generate LOTS of code with an AI model. How much of that code is used, though? Really 50% of ALL code written now?

Thanks for checking it out!

"Today, GitHub Copilot is behind an average of 46 percent of a developers' code across all programming languages -- and in Java, that number jumps to 61 percent." - https://visualstudiomagazine.com/articles/2023/02/15/copilot...

That post just cites an original [1] from someone at GitHub which says:

> Case in point: When we first launched GitHub Copilot for Individuals in June 2022, more than 27% of developers’ code files on average were generated by GitHub Copilot. Today, GitHub Copilot is behind an average of 46% of a developers’ code across all programming languages—and in Java, that number jumps to 61%.

I'm not sure what this means. GitHub does not have the ability to measure Copilot usage across all code written anywhere in the world, so surely it can't be that. Do they mean code generated by Copilot as a fraction of code produced by someone using an IDE with the Copilot plug-in? That number still seems high to me.

[1] https://github.blog/2023-02-14-github-copilot-now-has-a-bett...

Even if they were somehow measuring all code created in the world, considering it's even easier than copy & pasting general code to ask AI for shitloads of code without even bothering to review it, so code created would be quite a poor metric compared to code put into production at least once.
I guess it depends on how they calculate the percent. I assume it's by character count.

So it wouldn't surprise me. For repetitive code it's pretty good. And even with non repetitive code, once you start typing a bit it is good at finishing it.

Especially in a verbose language like Java. How much of copilot use is something that autocomplete would have handled anyways?

Check out the new StarChat model by hugging face, might be useful for your project
Your website looks nice, but I don't like this statement: "Today's developers didn't learn C before learning Python [...]" Makes me feel like I am a "yesterday's developer" and that it is bad thing.
How about binary before Python?
I think the parallel in that sentence doesn't work with binary and C. I would rephrase the sentence to something along the lines of: Today's developers don't use punched cards, why should you learn how to code without the most modern tools?

BTW, in some countries, you learn binary in grade school :)

And this is what you might say while you're learning. As you gain more experience, you realize that there's a wide range of solutions with some spectrum of a fit to your situation. A given solution may fall down in certain cases. What I love you Stack Overflow, is the context which comes with it. You get replies on a given proposed solution which point out where the solution may fail.
GPT4 absolutely does the same thing if you ask it to. Tell it to suggest approaches and discuss pros and cons and future pitfalls and it does, which makes sense because it is in part stack overflow.
The silver lining of LLMs impact on Stack Overflow may be that the platform focuses on facilitating the deeper type of problem solving you describe. My experience with Stack Overflow over the years has been mixed. Frequently users misunderstand the question, threads take weeks or months to resolve, users are called incompetent by frustrated experts, answers are indecipherable to a non expert, and sometimes toxic. ChatGPT frequently outperforms these weakpoints.

If they embrace a chatGPT interface as a first line of defense for users questions, it may improve the quality of real questions, reduce repetition, and filter through actually good and compelling questions. LLMs still need systems that encourage high quality data generation from humans to improve its model. I would like to imagine a world where there is a win-win for AI and the website we've relied on so much over the years.

The worst is the large amount of questions that solve an unrelated problem that's specific to the single asker's use case. Question, how do you do x? Response, oh, you can y instead and avoid x. Sorry, I want to know how to x, change the question
Step 1: Microsoft buys Stack Overflow

Step 2: They implement GPT-4 responses to questions

Step 3: The community + context provide the same feedback

Step 4: GPT-5/6/7 gets progressively better

If they train GPT-4 to post wrong answers on the internet, and then learn from the responses, we'll have the singularity in a month.
This is partially down to good promoting though.

It has seen those Stack Overflow responses and if you ask it to give you more context about a certain approach, it will.

I've learned when asking GPT-4 for help to push past the first answer, or ask it to offer more solutions. Also to ask why it choose a certain approach.

Quite often it will give me a response that doesn't fit well with my code, and I'll say "I don't want to do it this way, please give me another option, keeping in mind that [some important aspect of the code base]."

It then spits it out and it's usually way closer. Iterate on this and it's often quite good.

I think you're completely right if a person were copy pasting the first response every time, but that person is simply using it wrong in my opinion.

>you realize that there's a wide range of solutions with some spectrum of a fit to your situation

I ran into this the other day and it's made me very leery about using chatGPT for learning things I don't already know. I moved on from toy examples and tried getting it to write a program in a domain I was already intimately familiar with: I immediately realized that this thing is going to help people churn out all sorts of code that is a poor fit for the surrounding system or ecosystem.

Basically I had it write a program in Elixir as a GenServer. After that was done I asked it how I could integrate that solution into a Phoenix web application. I had to hold chatGPT's hand, so to speak, as we evolved the solution from:

(1) Spawning (and linking!) the GenServer to a controller i.e. in response to a web request.

(2) Spawning and linking the GenServer to the application but outside the supervision tree.

(3) Spawning the GenServer inside a supervision tree.

Now technically the application could have worked, more or less, if you ran it at any one of those intermediate steps. However only the last solution is the robust and idiomatic one. It felt almost like a constraint solver to me: we iteratively arrived at the right answer by adding more and more constraints to the solution. The problem, as it relates to a novice, is that they don't have a list of constraints rattling around in their head. (Language idioms, best practices, framework knowledge, system architecture knowledge, etc.)

The insidious thing here is that 1 or 2 are syntactically valid programs. If you try to beat 1 and 2 into submission you're going to have a subtly broken system, one that makes a lot of Elixir programmers very sad.

---

I'll be watching the Khan Academy guys pretty closely, because they seem to have put a lot of thought into how students could use these systems safely and effectively.[1] I think the answer is going to be we need AIs that are aimed at professionals, and AIs that are aimed at education. The hard part will be that somehow we need to direct people to use one appropriate to their skill level.

[1]: https://www.ted.com/talks/sal_khan_how_ai_could_save_not_des...

I understand the excitement feeling of using something like this to greatly reduce the learning effort. Before GPT/ChatGPT, it was definitely frustrating to "bootstrap" your knowledge in any new area where you don't have prior experience.

But still, I treasure the old ways I learned how to program. It was such a fulfilling experience by making newbie mistakes and getting corrected in hard ways, and you really only get the authentic insight by going through that process, and by reading all those important books chapter by chapter. It's probably not as "fun" as using GPT-4 though.

I've been trying to do it to some extent but I can't say it's been enjoyable (granted most of it has been GPT-3). It's more like a tutor that never calls out your mistakes and gaps. Anything you ask, it comes up with an affirmative answer, I try the answer and it ends up being a hallucination.

At this point, i am in a place where GPT gives me good solutions that might not work vs having to go through all the noise Googling stuff to find a working solution.

But it is great just to learn different concepts at a high level. Helps me clear my mind when coming up with designs

I think fun is the key difference as well! Even when it takes longer it’s a lot more engaging.
I actually often add GPT4 responses into a markdown page and build a whole library of “how to do x”
This is an interesting view, but I reached a different conclusion than the author. If GPT-4 (and successors, presumably), are so empowering, then leveraging them as a collective could potentially be even more powerful. We shouldn't underestimate the power of highly enabled teams.

As another commenter wrote: "if you want to go fast, go alone; if you need to go far, go together".

Anyone have any good examples or tutorials of specifically how to use ChatGPT for greenfield code development ?
I asked it to design and implement an entire software system. I just copy-pasted the output and it (almost) worked the first time.

(It ran out of context window and started forgetting the design; if I'd started each message with the design and class layout it would have probably worked the first time!)

Specifically I asked it for a design, then a main class, then for each of the other class files. (This process could probably be automated.)

I usually ask it to write me a nextjs app and deploy it to vercel. It gives me a few commands and files to plop in the right directories. E.g. `npx create-next-app foo; cd foo; ...; vercel --prod;`. Often I only make a couple changes then 5 mins later it can be deployed for free on vercel. Eg, it took me a couple mins to create a lil app to enable a user to drag/drop words of your sentence. I asked chatgpt (gpt-4) the following: "Write me a nextjs app (and deploy to vercel) that shows the sentence 'Anyone have any good examples or tutorials of specifically how to use ChatGPT for greenfield code development ?' but each word is draggable and re-arrangeable such that a user can drag any word to anywhere in the sentence. Add a randomize button too."

See the result here : ) https://dndexamplehn.vercel.app/

It's incredibly empowering to be able to easily spin up little proofs-of-concepts or bootstrapping larger projects. I think all the naysayers have not experienced its power yet.

I've thought it would be cool to see something like this:

1. Go on Twitter and find a famous account (for visibility). Maybe they say something like, "The data shows..."

2. Pop into ChatGPT and create a data viz.

3. Deploy to Vercel.

4. Go back to Twitter, post the link, enhance the convo, naturally gain followers in exchange for providing that value.

“48 hours of conversation with GPT-4“

Heh, sounds like a novel form of torture. The author probably means 48 hours total over a (much) longer time, and it had all been an enjoyable ride of turbocharged learning and discovery, but that's not how it reads to my eyes.

GPT-4 is still limited to 25 queries/3 hours and that is likely why it took longer.
Every 3 hours. But also, if you have API access you can use the OpenAI playground to query GPT-4 as much as you want. Sure, you pay a cost (per token), but if you're willing to front the bill you can move pretty quickly.
The API rate limit is 40k tokens per minute (I’ve hit it with a personal project).
That's high enough for most users, I reckon.
40k tokens per minute is enough for most users is the next "640K ought to be enough for anybody"
Indeed, if context lengths grow to millions of tokens, and prices are cheap enough, I could see users feeding their entire codebase in to ask a simple question about it - or feed in every email from their inbox to find something specific they're looking for, or use as style/content guides to write a response.
>If you are an individual developer, the leverage it provides might be 10 times greater, but when you work for a company, that number might be only 2

These numbers are arbitrary and if you're looking for leverage, a company with a lot of customers is a good way to find it.

This post reminded me that I’m still somewhat surprised ChatGPT-like systems did not arise out of China first due to their massive investment funds for AI and their base of stem talent.

Once they catch-up their censors will have a super power and people will have their writings censored before they hit submit.

Will be an interesting decade.

> somewhat surprised ChatGPT-like systems did not arise out of China first due to their massive investment funds for AI and their base of stem talent.

Does China innovate in this way? I think software is not a linear function of money in, value out. Inventing new programs and techniques is interesting as I’m sure what the spark is, and it certainly takes money, but that’s not the most important part.

I remember reading in Masters of Doom about how John Carmack came up with some of the innovations id software used and was amazed that he, alone, came up with stuff that large, well-funded teams could not.

I expect that China could have invested its entire GDP into stem and AI for the past 10 years and would not have came up with LLMs and ChatGPT. Or perhaps they did, but kept it secret and would never release it as a product to the public.

But I believe the former based on the few software companies and few software innovations coming out of China in the past 20 years.

IMO China is a "long-term country". LLM does not lead to General Intelligence. While the former is profitable (financially and socially), the latter is the holy grail.

Time will name the winner.

It heavily depends upon the definition of general intelligence, because we haven't really settled on a definition as of yet. In some circles (of course the ones from Microsoft) the list of requirements is very close to being met by some of the more sophisticated multimodal models (GPT-4 et al). General intelligence is a strange question because it's more about the data/environment than the architecture, (obviously if it were about theoretical capabilities of architecture, AGI was found ages ago).

Much of the LLM capabilities have to do with the generality baked into language. Pairing that with the well known proof that GNNs are dynamic programmers, you can get some very nice properties directly from the setup.

US export controls certainly must slow down China somewhat. They can't import Nvidia's fastest GPUs, but are stuck with buying hobbled variations. Getting a domestic industry on par is hard.
The censors are one of the main reasons why China is so far behind on AI R&D.

No unfiltered training data, and severe penalties if the AI hallucinates something that is against the party line.

This is already possible using simple Bayesian filters.
I was watching yesterday the 2006 movie "The prestige", with incredibly atmospheric locales that feel so alien. And yet, that world is but one hundred years away. It wasn't until 1934 that the Public Utility Holding Company Act recognized electricity as a utility.

Less than one hundred years after that, we have managed to juice out a general digital intellect from humanity's joint efforts. Let's see if we survive the next one hundred years, but boy, way to go!

> a general digital intellect

That's a pretty bold claim.

The confusion in terms called out here (and even demonstrated) is probably not to OpenAI's benefit and I am surprised they haven't spent more effort in trying to correct that.

ChatGPT is a website that lets you do chat completion [1] against LLM models, and it exposes some extra functions like plug-ins if you are lucky enough to be white listed for them.

GPT 3.5 and GPT 4 are the actual models.

Someone telling you that they did something cool with ChatGPT probably means GPT 3.5

[1]: https://platform.openai.com/docs/api-reference/chat

> Someone telling you that they did something cool with ChatGPT probably means GPT 3.

The confusion is that ChatGPT is using GPT-3.5 by default, but if you pay the $20/month subscription price, you can switch it over to GPT-4 (with query limits). Usually, when someone is telling you they did something really cool with ChatGPT, they're actually using GPT-4.

An extra layer of confusion is the API access: GPT-3.5-turbo and GPT-4 models are both optimized to be used in chat, which is somewhat different than earlier text completion models. Because of it, people using GPT-3.5 or GPT-4 via API access (possibly with one of the "alternative ChatGPT frontends"), will often also say they're using "ChatGPT". This is almost, but not completely accurate - the actual ChatGPT contains a bunch of hidden "features" (hidden prompt, extra moderation), that are mostly detrimental to the output/experience you get.

Correcting the correction of a correction: The chat interface is no longer using GPT-3.5, since May 3rd. What is the default model called? I have no idea. The release notes page [1] calls it ChatGPT model, the bottom of chat interface calls it "ChatGPT May 3 version".

Also people usually call out when they use GPT-4, but in the end you can only assume and be wrong 50% of time.

[1] https://help.openai.com/en/articles/6825453-chatgpt-release-...

For whatever it's worth, playing with the model selector gives you a parameter in the URL.

The default model is "text-davinci-002-render-sha"

The legacy one is "text-davinci-002-render-paid"

GPT-4 is just "GPT-4"

One other useful tell if someone is showing you a screenshot of chatGPT is that GPT-4 uses a black logo avatar, where 3.5 uses a green one.

Wait, isn't the default model of ChatGPT called "gpt-3.5-turbo"? IIRC "text-davinci-002" is the old one.
Similarily, reminds me of "bitcoin" the currency and "Bitcoin" the protocol.
ChatGPT is more than an interface, the models it uses have gone through additional training and modifications.

> Someone telling you that they did something cool with ChatGPT probably means GPT 3.

This seems like an incorrect assumption. 3 is very old at this point, 3.5 is free and the best demos are based on 4 which is a huge improvement compared to the previous versions.

Have they? Querying 3.5 through the completion API does not return meaningfully different results than doing it through the website. Aside from the extra functions like plug-ins that most of us can't use yet, the main difference appears to be everything on the website is forced through the moderation API as well.

Typo fixed.

Has anyone been able to use it to effectively build more than a green field poc? It's absolutely great for that, but it's been a little clunky when trying to iterate when the context gets too large or when trying to add stuff to am existing system.
> Has anyone been able to use it to effectively build more than a green field poc? It's absolutely great for that, but it's been a little clunky when trying to iterate when the context gets too large or when trying to add stuff to am existing system.

I'd like to see that too. Just this morning I got it to generate a whole lot of boilerplate. Then it appeared to get dementia: forgot which language the boilerplate was for, when I reminded it it then started creating type aliases for no reason, when I reminded it that the previous snippet (which was the first part of a single long snippet) didn't need those types, it switched languages again.

Very difficult once you get a long enough conversation going (something like 5 prompts in and it starts going haywire in random places).

I use AI to help my productivity while coding a lot. I handle the big system, it spits out code for me where i know what i want but don’t know the libraries/syntax.
I see limited context and the lack of sandbox dev environment is the main obstacle on way to have more sophisticated usage and faster feedback loop. The value would be greater if it could know everything about the code base, business requirements, related documentation, and, it could even avoid a lot mistakes by simple running type checks and the tests and correct itself before giving the answer.
Could this be done with a vector database?
The beauty of abstraction, though, is that it liberates a person from needing to worry about lower-level complexities. The same should be true for LLMs. It shouldn’t need to know your entire system. Start a new thread with judiciously restricted context when you move on to the next task.
Yup. We're back to the real problems that matter in sdev -- thinking about the problem, breaking it down, scoping things. Let an LLM do the grunt-work of writing the code, sure.
I agree, but I'm worried about where that leaves junior devs - what are the entry level jobs for coders in a post-LLM future?
Assuming it actually happens, how different is it from a ton of other things? Hpw many rote sysadmin or paralegal tasks of 20 years ago still need basically a warm body to do them?
Fewer, I'd assume? What I'm curious about is whether anyone has advice for people getting into programming now.
I doubt anyone has a clear enough crystal ball to give confident, actionable advice. Obviously AI, among many other things, erodes the value of most easy to acquire knowledge skills at the low end. But that kind of thing is constantly being eroded all the time and while uplevel/upskill is generally good advise, it's hardly unique to AI. Nor is there evidence yet that computer programming/software engineering is going to be uniquely impacted by these new technologies.

Content farms and other low-end writing almost certainly will be impacted significantly. But that was mostly not a good place to be anyway. Writing generally isn't a good bet unless it's effectively in support of something else that pays the bills or you get very lucky.

reasonable statement. I think of programming as a discipline with three core skills, those being choosing what problem to solve, writing a solution, and debugging the solution. I suppose it's the writing that's gotten a lot easier with the addition of GPT, debugging has gotten slightly easier, and choosing what to work on has gotten a lot more competition.

From that framework, debugging is the new code monkeying... anyone have thoughts on that analysis?

They'll be the ones begging and cajoling LLMs to write the code.

Notice that even these days, senior devs aren't supposed to code much - they're supposed to train up junior devs, up to the point said juniors become competent, at which point the juniors join the rank of seniors and begin to teach fresh junior hires.

I.e. increasingly, juniors are the only people actually coding anything, and LLMs will only reinforce this trend.

(comment deleted)
> they're supposed to train up junior devs, up to the point said juniors become competent, at which point the juniors join the rank of seniors and begin to teach fresh junior hires.

Some of the shittiest code comes out of developers with this level of experience, but they're senior now and teach fresh junior hires?

If the future proponents envision actually comes to pass, there won't be much need for new coders anyway.
This is dangerous! How do you know it's correct!? What if you need different memory management!? What if it writes the wrong thing?!

Program only in Assembly, because otherwise you risk some real dangers of not knowing what's going on with the code!

I'm sure you could get code that would work going this route, but I'm worried about the code base growing to have lots of duplication and it generally just growing into a mess without any standard patterns and it would become a nightmare to maintain if that's the case.
That will always be an issue and, moreover, always has been an issue — not only with code one obtains from other humans through forums, stack overflow, and blog posts — but also with code written entirely by oneself.

Code we get from an LLM, or someone else's fallible wetware, or our own fallible wetware, all need thoughtful consideration prior to committing.

It's nice for guidance when you start a project but you quickly run into problems if you want to rely on it entirely. I tried to use it to build a small library which implements an established algorithm from scratch where I can guide it and give it feedback but I'm not writing any code, only copying and pasting and relaying any errors back to it so it can correct itself - it doesn't do great, it loses track of its own implementation of things and suggests inconsistent code.

Still useful for many other use cases, just not for "write my entire project for me and I'll only copy and paste" yet

I'm trying to (as a hobby-programmer / itsec(compliance :|) / admin / devops guy) https://github.com/idncsk/canvas (early early alpha stage)

The biggest benefit for me is I can ask it design and programming-pattern questions for my particular use-case(given A, should I split some methods of A into a separate module, should I implement B as a facade of C or maybe implement some observer pattern instead etc)

One strange thing I noticed is the degradation of "quality" of the answers some time after a new version gets released, but that may as well be just my internal drift for expectations

Yes. You need to really focus on decomposing your problem and use like "there is" "it is" and "it has" to describe the overall system instead of relying on it remembering everything. Which honestly makes code more organized and easier to read.
And of course, each project will eventually no longer be green field.

While it can help you understand code blocks, I'm not sure that it can help you understand an application as a whole.

I don't know that it can help discover edge-case types of bugs and suggest fixes. For example, the types of problems which crop up when system meets reality.

The can see this leading to a lot of spaghetti coded projects.

I've been able to get it to write functions for me which I can then plug into a larger system.

As an example- I have data representing a cylinder defined like so- {radius: x, depth: y}, give me a function which takes this object and calculates the volume of the cylinder.

It is unable to understand the context to deliver a feature end to end, but if you can give it the fingerprint of a function you'd like it can implement it for you (sometimes)

I imagine you could ask general architectural questions and it would give you general architectural answers. And then you ask more and more specific questions and get more and more specific answers.
Domain knowledge of projects becomes effective when apps gets complex. Asking the right questions to ChatGPT will warrant you answers to help you tread unknown territory. To ask the right questions is to first understand how your app is structured, know it’s major components, what’s potentially missing. It gets technical.
I've used ChatGPT-4 to create new components in a larger game of mine. I provided an example class that does something similar and an interface and it flawlessly created a new component the way that I would have with the new functionality, in like 10 seconds.

I've also used it to create new functionality in the game, but those were mostly isolated features. Like I implemented controller rumble support yesterday in about 10 minutes thanks to its help. Probably would have taken me several hours on my own.

I don't know to what extent I can integrate it directly into the game, but I think the main limiting factor is the token limit and my desire to manually copy+paste enough context, not limitations in its actual abilities (which it does have some, I'm debugging along with it an issue in a 3D graph class I had it create last night).

The code it created worked fine when it was just drawing thin lines, but I had it convert the drawing to 3D rects so it could have different widths (technically it recommended that solution when I asked for line widths) and there's been some glitches, namely only one team is showing and the rest of it is now only visible when I set the draw mode to not cull anything.

Hoping to get past that tonight or tomorrow. It at least is giving me some good ideas for approaching debugging it, I'd be pretty much at a loss if it was just me, as I've always struggled to debug 3D graphics issues when the graphics just don't show up on the screen.

Oo.. interface driven design, good idea.
BTW, turns out changing to CullClockwise for the RasterizerState made the graph show up again, so the order of the vertices were in the opposite order, which it also noted and provided the corrected code for it (basically just reversing the order of vertices), so I could set it back to the default of CounterClockwise again.

Now on to curved corners!

There's a long gap from:

  I built a podcast search website
to:

  Staying in any company right now is a negative return.
We humans are too easily impressed by tricks, and are too willing to extrapolate them to fantasy land.

GPT can certainly accomplish an impressive variety of small tasks. Whether it can build large-scale systems that will power tomorrow's world is uncharted territory.

Can you build something meaningful, substantial, robust out of statistical knowledge, without real reasoning behind?

If you believe it's possible, where's everyone's array of profitable, newly-founded ventures? Or at least have you automated your job away yet?

> If you believe it's possible, where's everyone's array of profitable, newly-founded ventures? Or at least have you automated your job away yet?

Come on now. GPT 4 is not even out for two months. API access is not yet widely available. Legal questions are preventing many conservative players from adoption. How fast do you think progress propagates?

The OP better buy some ketchup cause they’ll be eating those words in a few months.
On top of no generally available API, GPT-4 in ChatGPT is really damn slow right now.

Unless you have a special deal (Microsoft) the only performant option is 3.5-turbo. In my experience for coding and text summarization it’s totally fine with a limited benefit from GPT-4, which is more impressive at higher order reasoning and planning.

Interestingly (or not), Perplexity's GPT-4 chatbot is noticeably faster than ChatGPT-4 for me. I don't find its implementation quite as helpful, though, which is weird I think?
a lot of good software doesn't take off today because selling it is a slog. AI could help there too, but probably not much (especially for getting the first 10 to 100 customers).

e.g. say you used GPT-4 to clone something like Fivetran but with your own unique features. It could even be way better across some dimensions, but you still need to convince users to try it and I don't see AI helping with that (at least not yet!).

While I agree that is a bit of an extreme statement (many companies are also adopting LLMs from what I've been reading here on HN), this part just below that does seem insightful:

> Unless you work for OpenAI, your GPT leverage is likely wasted on trivial business code, and even more likely that due to the overwhelming amount of poor code, GPT with its 4/8k context window is unable to optimize, further weakening the leverage.

If you are sitting at a company in this situation it is of course arguable that you were already experiencing a negative return pre GPT-4, but certainly that productivity feeling from GPT-4 probably makes it seem even worse.

Despite the novelty and excitement, the profit potential for AI generated applications and content isn't particularly strong. If you can make something using AI, so can everyone else. You work at a company to make money. Using AI doesn't magically allow you to do that. If you have the ability to make a profitable company, AI may help, but it's not a business plan.
As always, you still have to bring your own ideas and hustle to the table. The difference is that GPT flattens the learning curve on a lot of things that would previously prevent you from executing on your ideas and it helps keep the momentum up when you hit the hard part of the grind.
It’s amazing for prototypes and writing utility functions, but for fully scalable and supportable architecture it’s a long ways off.

Likewise, it often generates very complex and confusing code - specifically regex in my experience where I can get the job done in a much more readable way.

Don’t get me wrong, I use it all day as a little coding helper, but while it can say, advise you on how to set up a distributed system, it’s not rolling out VMs and DB clusters.

Being amazing at prototypes is exactly what a one dev operation needs. You can worry about scaling after you know whether people will pay for it or not.
100% agree and that’s what I use it for. My point is more it’s a time saver, but not a replacement for higher order operations. Yet.
Yeah people haven’t used GPT enough if they think it can do all these things. Same with AutoGPT - it’s a total joke that got hyped up to high heavens. Go try to make it actually do anything of value and watch it struggle to parse Google results and get stuck in an infinite loop every time. LangChain has the right idea because you must break down the task to small parts and program the thing to do the correct thing after each step
It’s a really good intern.
What's the fundamental difference between generating Terraform to a spec and "rolling out VMs and DB clusters"?
(comment deleted)
And it does so for everyone else. The landscape is as flat as ever, the winning party is whoever you pay for running GPT.
> If you can make something using AI, so can everyone else

The idea / creativity is hence the key. Novel ideas don't occur to everyone.

Not really. Ideas have always been cheap. They occur to everyone. Most of them aren't great, let alone good.

But good ideas, even great ones, rarely mean much on their own. It's always been execution.

Technically, you are necessarily speculating....an idea that does not occur to many people during real time cognition.
Well you need both, a great idea and great execution. I agree with your sentiment though that execution (and timing) are the differentiation.
A decent idea and great execution is often enough.
And a deep or wide, or preferably both, market. Without this last ingredient, all you have is a hobby project.
fair, but I was considering that part of "decent" in "decent idea".
With AI making execution bit easier, the idea will become relatively less cheap.
If it's trivial to implement someone else can just take your idea and easily spin up a competitor, devaluing your idea.
This is the ultimate fate of any interesting or useful idea. What matters - if you're doing it for fame or profit - is the delay between you and your competitors executing on the idea.

(The delay may sometimes be negative. I'm reminded of a few cases where someone made a successful Kickstarter, only to discover mid-way through fundraising that factories in China are already busy manufacturing their product for someone else.)

Totally agreed.

Punch cards are such an arduous technology to use, they're effectively useless. Therefore it's pretty clear to me computation is not really going anywhere as a technology and I highly doubt much more progress can be made.

(Sentiment of some, years ago)

I read it as an experiment and hypothesis. The author is on a quest to prove their hypotheses. I appreciate the insight into the work in progress and the potential outcomes. It's more beneficial for me than waiting several months to see it fully proven.
>GPT can certainly accomplish an impressive variety of small tasks. Whether it can build large-scale systems that will power tomorrow's world is uncharted territory.

There is an INCREDIBLE amount of opaque BI that can be unlocked with GPT/AI etc.

I have already used it to get some extremely quick market infor about certain things.

AI is going to make a lot of people smarter, much faster and cheaper than current institutions.

classes are going to get more refined, and honestly, certain industries need to be utterly destroyed by AI (legal being my primary target, as they have too much fraud)

And yet another use for it:

GPT4: In the context provided, 'BI' likely stands for 'Business Intelligence'.

It's worth noting that the podcast search website makes request to Apple's podcast search API, then formats the results.

I would be interested if OP could glean enough from GPT to build the search index as well, a much more complicated project.

Indeed, it is far from clear that, even if an individual can leverage the productivity gains, that individual can generate revenue from what they're doing.
I have also been using GPT as a force multiplier for my coding, especially in areas where I'm less comfortable like frontend.

I put together a tool called `aider` for chatting with GPT-4 about code, having it make changes and keeping track of it all in git. It's feeling like a very nice workflow.

@mazzystar you might want to give it a try if you have GPT-4 api access:

https://github.com/paul-gauthier/aider

I actually feel in the same way of how GPT-4 has increased my capabilities as an individual than for company. It's insane how fast the idea iterations can be and you can actually execute it pretty fast.
AI tools are absolutely useless once you get past any initial stage in a software development cycle

They just can't comprehend what needs to be done even if all that's required are 2 lines of code

However, we keep seeing posts from people who don't know html or how to create a chrome extension paternalizing on how we can be much more productive with AI tools. Last I heard a CEO was demanding dev increased productivity or firing some devs because he daw a Youtube video on how easy it is to create a website now

> AI tools are absolutely useless once you get past any initial stage in a software development cycle

Not sure I agree. The initial stage will be the one where most of high-level, broad thinking happens. Once the cycle starts in the earnest, more and more time is spent on the usual software drudge work. I find GPT-4 excels at helping with this kind of coding.

I'm reserving judgement on the higher-level / more abstract aspects of software engineering, as I haven't had a chance to try it. My suspicion is that GPT-4 will excel at helping you think through an issue interactively, but may have trouble actually coming up with whole designs on its own, not unless you spend so much effort crafting a context for it ("getting it up to speed" on your problem space) that you'll quickly find better designs in the process.

> Last I heard a CEO was demanding dev increased productivity or firing some devs because he daw a Youtube video on how easy it is to create a website now

With wix, squarespace and other brands I consciously try to forget about (in proportion to how much advertising spam from them I see, despite using adblockers everywhere I can), plenty of web devs are having a hard time justifying their salaries. At this point, AI tools aren't even competing with them - they're competing with wix, squarespace, et al.!

Still, I hope that CEOs replacing workers with ChatGPT are a myth. If not, that's IMO an idiot thing to do. Not because ChatGPT won't manage to do the job - but because the only model in existence, that has capabilities required to effectively replace humans in some jobs, is owned by a single company, has been available for only two-three months so far, and that's in a limited beta. We don't know yet what the limits of GPT-4 are, how to effectively use it, and at any point OpenAI can just take their access away. At this point, it's a great tool to use while it's available, but it's not something you want to hinge your project/business on mid-to-long-term.

AI tools are absolutely useless once you get past any initial stage in a software development cycle

They just can't comprehend what needs to be done even if all that's required are 2 lines of code

However, we keep seeing posts from people who don't know html or how to create a chrome extension paternalizing about how we can be much more productive with AI tools. Last I heard a CEO was demanding dev increased productivity or firing some devs because he saw a Youtube video about how easy it is to create a website now

The only usefulness I see is in AI replacing SO. Once SO dries we'll have neither

This sounds to me like you have no idea how to properly integrate LLMs into your workflow. Just because they’re not useful for changing large code bases doesn’t mean they can’t be valuable. A few examples of things I’ve used LLMs for:

Writing bash scripts to automate various parts my workflow

Quickly interpreting complex regex

Tutoring me on how to use poorly documented APIs

Proof reading important emails

Everything copilot, writing java docs, auto completing all the cases in a switch statement, etc.

Could you? Do you have to? Would someone pay you to implement an FPGA design, given that you know nothing about it but have access to GPT-4? In practice, I've found that the advantage it might give you quickly ebbs out. It surely helps filling details and blanks though.
>Tutoring me on how to use poorly documented APIs

Can you elaborate on this? I would find it very useful.

My current workflow is to copy a bunch of relevant code into GPT4 and then ask it questions about how to use the API. GPT4 is very good at inferring how to use an API, even from code snippets. The key is that you can paste large amounts of unstructured code and GPT4 will make sense of it.
> Writing bash scripts to automate various parts my workflow

Would you share some of those? Bash is fraught with gotchas and intricacies and seldom have I read Bash code where I couldn’t immediately spot flaws. There’s often something which left unchecked may come back to bite you later.

I’m skeptical the LLM code would be any better, since it’s (presumably) trained on a corpus of subpar code. But I could be wrong.

Give the LLM access to `shellcheck` and have it iterate on the warnings. I think promising results have been shown when you allow LLMs to reflect on their answers and give them access to tools.
Shellcheck can't check everything though. I think using LLMs on difficult to verify code like shell scripts and complex regexes is a pretty bad idea.

I've found them useful as a "smart search engine", e.g. if I don't even know the magic terms to search for.

Most of the time it gives me answers that are completely wrong, but are close enough that I know where to look to find the right answer.

E.g. "Using the rapidcheck C++ test framework, how do you test a function that takes two vectors, one of which must be exactly 8 times as long as the other."

It gets it wrong but it still helped. I definitely wouldn't want to use its output unquestioningly though.

Depends entirely on if the shell script is mission critical. I couldn't care less about the quality of my LLM shell scripts most of the time. My only success criteria is that is that it solves a problem. These are scripts I'm never going to touch again, things like batch converting files, or like one time I had it generate a script to titrate stable diffusion parameters. As long as I can skim the output and see that its correct I'm happy.

You call it a bad idea, but it's saved me hours of work.

> Tutoring me on how to use poorly documented APIs

Good luck with that.

GPT-4 is _incredibly_ bad at Metal (most under-documented GPU api I've ever worked with), but more importantly it's _even worse_ at Vulkan, which is complete opposite - it's meticulously documented.

The stuff LLMs are good at is the stuff that a lot of people use and talk about all the time, in public.

There's just not a lot of public discussion (with examples) about e.g. how to properly use Vulkan in a production application, and the LLM itself can't "reason" within the framework of the detailed specification, so most things it outputs is wrong.

In the long run though, a very likely outcome is that tools that the LLMs have a poor "understanding" of just wither and die, or are relegated to being something only 3.5 people in the world use. I can see a future where literally all software is written in python just because that's the language that OpenAI's LLMs happens to know best.

It has an 8kb (or 32kb if you are lucky) context. Try giving it the relevant documentation examples before asking a question.
the point the grandparent was making was that GPT-4 can teach you how to use an under-documented API. that means the relevant docs are either sparse or non-existent, otherwise there wouldn't be a need to ask GPT-4 in the first place.
No, that wasn’t my point. You don’t need docs, just feed in the raw source code. GPT4 can make sense of code without documentation.
feed it raw source code of what exactly?
You are expecting it to replace a senior+ dev; that is not yet reasonable.
This is why its important to reverse mentor executive leadership so they better understand best practice usage of LLMs.

I obsoletely see benefits of tools like ChatGPT through the entire lifecycle of a product, however not as a replacement for things like good requirement elicitation, architecture, and product market fit.

In the near future I expect companies to train models on their internal code base/documentation allowing developers to learn about available libraries, API usage etc.

I’ve been programming for two decades and you’re just plain wrong here. It’s useful throughout the dev process for many things, the worst part right now is just how slow GPT-4 is to run inference. You’re probably not using it right, aren’t using GPT-4, or something. It’s a multiplier, for specific parts of development - the amount of annoying nonsense I no longer have to spend my limited time on earth thinking about makes me want to cry.
Also got a couple decades, a ChatGPT Plus subscription on top of running my own local instance of Vicuna and access to Bard.

Enjoy it while it lasts. The training set (Stack Overflow) will dry as people move away from it, resulting in model degradation, resulting in not having a useful AI AND not having a useful SO

I admit to using AI, but only for what I was using SO before. Which is 0% of the work I actually get paid for (maintaining existing software that requires expert knowledge). For personal projects, sure, it's useful. Want to code something in a new language? Great. You'll still be a beginner, and will have contributed nothing to the body of knowledge that has trained the model you are using

What? You're jumping to so many conclusions here, it's absurd. You're going to have to go into research for a few years if you want to get anywhere on proving that the capability of the current systems is somehow determined by the presence of StackOverflow. Sounds like you have a very tall tower of speculative assumptions about LLMs today, LLMs in the future, the evolution of the web corpus, and other big, dynamic, absolutely unknowable things.
This is starting to sound like a debate, but I feel that the burden of proof lies more in that LLMs are anything more than a blurry representation of the data they have been trained on than otherwise. I personally don't feel like I've brought Frankenstein to life each time I load a LLM into memory..
I'll be really impressed the day models can generate code by just grokking the language spec and documentation.
It can do that now. Has an 8kb (or 32kb) context. You might need to do a bit of work preparing a concise description and language examples.
Does anyone have any blog posts that elaborate on this?
> Last I heard a CEO was demanding dev increased productivity or firing some devs because he saw a Youtube video about how easy it is to create a website now

reminds me of Donald Trump complaining about the health exchange website costing millions of dollars when he can build a website for $3

> More importantly, it gives me the courage to dream and attempt things beyond my current abilities.

This is one of the small things that GPT has pushed me to do. I'm an experienced programmer and grew up playing video games, but I am not a game developer. I've dabbled over the years but can't build anything outside of a tutorial.

The other day, using GPT I went through and made a Pixel Dungeon clone using Phaser (JavaScript game engine). It was such a delight. Together we got the game to a working state before I started to change some of the fundamental design, and then GPT started hallucinating pretty badly. When that happened, I stopped for the night, and then just started new focused conversations to add or change a feature, putting in the relevant code. It's turn-based, with simple AI, enemy monsters, fog of war, line of sight, and a victory/losing condition.

Being able to build this in a couple of days is an absolute game-changer, pun intended. I can only imagine the riches of experiences we will have as people are unblocked on skills and can pursue an idea.

I like how everyone has been using ChatGPT to code in Javascript, as I have done something as well.
TypeScript happens to be my current strongest language. I picked Phaser since I wanted to learn the ins and outs of building the game and not need to worry about the language I was writing in. This was also helpful because GPT-4 would still get small things wrong with the TypeScript, but I was able to easily fix those without needing to ask it.

If I had tried this in Unity and C# (which I don't know at all), I'd still be figuring out the standard library.

I generally recommend learning one new thing at a time when building something new.

ChatGPT benefits from how abundant languages like Javascript and Python are. When you start diving into the lesser used languages, the struggle becomes real. Even worse if there have been substantial breaking changes in the past ~2 years.
I’ve been using it a lot for programming, but I also have a security background and it will often generate insecure code. I’ll point it out and tell it to fix and it will.

So be careful if you don’t want AI-generated sql intentions!

As if injections weren’t bad enough, they’re now done with intent.
Intent worries me less! It’s the PHP days all over again - lots of new coders (good thing!), copying insecure code (VERY bad thing!), and it won’t end well.
Yes... The last time this happened we got Facebook and the world is still recovering from that
Honestly one thing that worries me the most is the biggest applications of AI at scale so far are to manipulate humans to click on things (ads).

Google has been using this stuff for years, OpenAI has done the world a great service by opening it up.

Different people write code of different quality, and we'd expect LLMs to imitate the median quality of code. So it's clear that if you have a background in something then it will generate worse code than you would - however, if you'd compare this code with something written by a new junior hire, how would it compare? IMHO there are many people who are objectively below median, and for them I'd expect that a LLM can generate more secure code than they would write themselves.
The power of LLMs atm is that they allow a person to be "median" in a very wide range of topics. This is extremely powerful, even to folks that can attain an above average mastery. It also does this quickly.

There was a recent article on Slashdot titled something how metaverse may increase the gdp by like 2 or 3 percent. It was obviously laughed at. It's actually LLMs that will do this, and easily.

It's also a solid rubber duck, it'll test you by giving you misinfo and you have to tease it back from the brink.
Yeah, a coworker tried an exercise like this, and it was basically (even with as-an-expert prompts) like trying to mentor a high school intern that's trolling you (except that it won't actually get better at anything in the process.)
> So be careful if you don’t want AI-generated sql intentions!

Maybe we should try including something like this in the system prompt:

"Remember that SQL is language with a grammar, not an unstructured string. Don't do stupid things. Obey the LangSec principles. Never ever glue code in strings together. Plaintext code is not code, it's a serialization format for code. Use appropriate parsed representation for all operations. Never work in plaintext space, when you should be working in AST-space."

Replace "SQL" with any other sub-language that's interacting with user input.

Given the token count limits on input and output, I've been wondering how folks work on these long-running projects? Is it just not a problem, or are there some tactics? I find in trying to build up lengthy outputs that it starts truncating or leaving out things from way before.
You have to input just the pieces you want help with. It can't do a whole project, but you can tell it the tech stack, and maybe give it a few of your classes, and it can then write a new class for you.
I use the API and have a generic prompt prefix for each programming language and type of task to try to get as much bang for my buck with as small of a token count as possible, and then tossing in a single query with a bit of project-specific code fleshes out the rest of what I'm asking it. Prompt tokens are usually around 300-1000, leaving over 3000 for the response (which it rarely fully uses).

It's garbage at pulling in things from all over the codebase, so as a sort of co-evolution I write code that mostly only needs local context and only ask it questions that only need local context. That works great at home but doesn't suffice on the existing code at $WORK.

It's still helpful here and there at work (e.g., given this example string please output the appropriate python datetime formatting codes), but only because it's a wee bit faster than synthesizing the relevant docs and not because it's able to consistently do anything super meaningful.

I think this is a good question. Screenshots are hard on HN, but I could write up a blog post about it all once I have a demo of the game.

I've been using ChatGPT and GPT-4 since they came out, so I'm pretty aware of their limitations. You can't build an entire project in a single project. GPT loses the context at one point.

With that in mind, break down the project into chunks and make each one a conversation. For me, that was:

1. Initial Setup

2. Add a randomly generated tilemap

3. Character Creation and Placement

4. Movement

5. Turn-based execution

6. Fog of War

7. Enemy Monsters

Each one of these is a separate thread. They start with:

> You are an expert game developer using Phaser 3 and TypeScript. You are going to help me create a game similar to Pixel Dungeon using those technologies.

I then copy in relevant code and design decisions we already made so it has the context. If it gets the answer totally wrong, I'll stop the generation and rephrase the question to keep things clean.

Lastly, I'll frequently ask it to talk about design first saying something like:

> We are going to start with the world map and dungeon generation to start. We'll add a character sprite and movement next. What's the best way to do tilemap generation and store the data? Don't write any code, just give me high level suggestions and your recommendation.

This lets me explore the problem space first, decide on an approach, and then execute it. I'll also ask for library suggestions to help with approaches, and I'm generally surprised by the suggestions. Like all software, once you know the design, the pattern, the goal, and have good tools to help you achieve it... the coding isn't all that hard.

Super useful, thanks for writing this up. I bet a short blog post with screenshots would go over great.
What happens when you ask chatgpt to create a game similar to one that does not exist?
If you can induce it to hallucinate, it should just do whatever it associates that the words in that title with.
Heck yeah, cool! Similar experience here too. In only a few hours I got a basic working custom JavaScript space shooter going, and I've since started a Whac-a-Mole style game.

GPT explaining it along the way and allowing me to have a reasonable conversation with it when something isn't working as-expected has been a rewarding and fun learning experience.

I'm thinking about doing this without any game dev experience as well. All I need is access to GPT4 now...
If you don't want to pay for ChatGPT Plus, you can use an alternative client (e.g. https://www.chatbotui.com) with an API key fairly cheaply.
Wait. I have an API key. Is GPT-4 available already?
You have to request the access for the GPT-4 API.
Only if you've gotten through the waitlist. I signed up at least a month ago, no word. There was a comment thread the other day about getting around the wait by selecting the option that you're looking to build plugins, which apparently gets you expedited.

I haven't tried it. As always, YMMV.

Aaaah it started working the same day I paid for (and cancelled) ChatGPT Plus and I probably missed the waiting list email!
I taught myself to code just to build a prototype of an app I wanted to create. My plan was to launch the prototype, get some market feedback, and then find a technical cofounder or hire someone.

It took me 8-10 months of learning to build a prototype. But then GPT-4 came along and I could suddenly ask it questions about features I wanted to add. I then realized that there were so many features I could build on my own.

It has made me far more ambitious as a noob programmer.

I am software engineer and I have certainly attempted use GPT for coding with mixed results.

But what I am really impressed using it for writing. I am writing the story of my abusive upbringing with a mental ill mother. I am not a writer, but this thing is awesome because I can ask it to give me prompts and it is jogging my memory more and more then I can give it rough outlines and thoughts and it will organize it into more of a literary style, then I can go through and update most of the wording to my own liking or leave as is as I see fit. I am easily able to produce much more and a better quality than without it.

I use GPT-4 for coding and technical tasks every day, its abilities to make ideas a reality which would otherwise take me days or weeks is astonishing.

I wanted to try to make real-world terrain in Unity - GPT-4 guided me to the USGS's LiDAR data, took me step-by-step through creating a mesh from a point cloud, and created several scripts to edit and filter the mesh programmatically.

There are some caveats and many dead-end conversation branches - GPT-4 seems to know 'about' more libraries than it actually knows how to use, so certain library choices tend to produce erroneous code.

GPT-4 sometimes picks a poor method, for example conflicting methods of moving an object in a single script, but can usually resolve the issue when notified.

Dozens of hours fiddling with technical details saved.

Very sorry to hear about your upbringing, btw. I hope writing your story helps.
> More importantly, it gives me the courage to dream and attempt things beyond my current abilities.

I am approaching this from the opposite background ( started with an arts background and learnt coding after ), but this resonates with me massively as well.

It took me a 2 years of tutorials before doing my own things became intuitive. Feel free to reach out if you want to discuss game design.

> Perhaps soon, documentation and APIs will become GPT-friendly first.

I can imagine documentation becoming ChatGPT plugin aware. Like, the automatically generated stuff that comes out of Swagger and the like. Maybe a killer feature for a new API documentation startup?

My dream is that we all adopt tools for detecting when docs have become stale. That risk is one of the big reasons for not writing extensive docs in the first place, so the whole dynamic could change.
I am happy that so many people get to experience the feeling me and other software engineers feel when we write code. OpenAI democratize some of this feeling and now people that never knew how to code can experience the rush of creating something new using code.

In a world where a lot of AI Researchers that develop these amazing models are slowed down by their lack of "normal" engineering skills I think it's very apparent that software engineering goes well beyond writing a snippet of code.

Like the internet, stackoverflow, forums and other advances in technology that opened new doors and opportunity and democratized the industry - this is another one, a big one! the smart ones will use this push as an entry point to the software development world rather than looking for an oracle function for software development (which does not exist yet)

> the smart ones will use this push as an entry point to the software development world rather than looking for an oracle function for software development (which does not exist yet)

Very much agree. I think mentorship becomes even more important now. I have a friends that's switching careers and starting to learn software engineering. Just for fun, I back-seated him while he tried to build a really simple app using GPT-4.

Even with really fine-tuned prompts, some of which I helped with, the code that was generated was either barely readable, had performance issues, and/or in some cases was just completely broken. At the time, I made the quip that for junior/entry-level folks it's like getting cybernetic implants in your legs before you know how to walk or run.

[flagged]
People who use ChatGPT to spit out code as a method of learning software engineering are going to be seriously deficient in fundamentals like performance.

I've already worked with way too many engineers who copy/paste code without understanding what it does.

The good news is that those copy/pasters are probably going to be copy/pasting higher quality code if they’re using GPT4.
I don't think this is good news, it's at best not-bad news. We're already inundated with content, most of it copycatting other content, and it's replacing meaningful things, like archetypal stories and philosophy. Look at how people describe Marvel movies and Star Wars shows - it's content, not stories. Scaling the ability to just repeat things without an understanding of those things will at best just add more content. It will likely contribute to the further creation of complex systems people don't understand and can't control.

"Um, I'll tell you the problem with the scientific power that you're, that you're using here. It didn't require any discipline to attain it. Ya know, you read what others had done, and you, and you took took the next step. You didn't earn the knowledge for yourselves, so you don't take any responsibility for it. You stood on the shoulders of geniuses, uh, to accomplish something as fast as you could..." (Emphasis mine).

https://www.youtube.com/watch?v=4PLvdmifDSk&t=61s

Just about any original scientific text or undertaking begins with a literature review.
But the awesome part is that you can ask it to explain parts and it usually does pretty well.

I was using it for debugging WINE - where I have no DirectDraw4 / DirectX6 experience, and it's much nicer than trying to trawl through ancient MS documentation myself.

I think this is currently an open question.

It may turn out that ChatGPT results in a new generation of developers who produce terrible code, full of flaws, with no understanding of how it actually works.

Or... it might be that ChatGPT helps newcomers get over that horrendous initial learning curve, start by writing bad code... and then get better at it.

I'm currently cautiously optimistic that the latter scenario is going to win out.

I share your optimism.

ChatGPT could also empower individuals who may not have considered learning programming to create practical programs that enhance their daily routines, similar to how VB6 significantly reduced the barrier to entry for developing various applications.

I'm on year two of my journey to become a game developer, i am focusing on programming and if i realize i don´t want to work with games in the future at least i have solid knowledge on how to deal with a broad area of software problems.

I don´t rely on ChatGPT to write any code for me but i do use it whenever there´s a concept i don´t understand and if there´s any problem blocking me from getting forward in my many programming books. Having a tireless teacher/mentor with extensive knowledge and who does not care however stupid question you ask is a very good tool for learning.

I don't think it will help people learn as much as having to write everything yourself. Sure it will get them productive 10x faster, as a shortcut. You can only get so good at riding a bicycle by watching others ride a bike. Remember that caching issue that cost you hours of debugging? You don't forget that. Maybe the generated code doesn't produce a bug this time, but the 5th or 6th time? It's hard enough to debug code you wrote yourself sometimes, let alone generated code.
In my experience newcomers and junior engineers don't get better by writing more bad code. They learn mostly by 3 methods. 1) finding flaws in their code the hard way (slow) 2) getting careful feedback from more experienced people (has to be done well) and 3) reading better code for a problem they already understand.

I'm not sure GPT helps with any of those yet, as it seems to be more likely to spit out incorrect-to-sortof-okayish so far.

It goes the other way too. I've had it generate code using better methods or features new to me, when I thought I knew the language well.
I'm the hallucinating LLM? And Other Such Crises it has given me.
I've seen similar results with teams I work with. The strongest engineers who can spot the deficiencies or errors in LLM generated code generally get a huge productivity boost, as they can compare the "shape" of the output to what they would expect for a given problem.

The junior devs, lacking the experience that provides the context or knowledge to analyze the "shape", let all manner of minor and major issues from the generated code slip past.

I really notice this particularly with say less popular frameworks or code libraries, where many LLM code generators appear much more likely to hallucinate invalid code. I see similar issues with DSLs too, where the LLM starts to just guess at the DSL syntax. I really hate when an engineer new to a framework just goes to the LLM first, without at least spending a little time learning the framework for the task.

All said, I suspect these code generation tools will get good enough that the rate of errors goes down enough it maybe won't matter in the longer term.

If performance is a concern, just re-prompt GPT if there are any performance concerns, and to propose fixes for them if there are.

This is called reflexion and has been found to be an effective way to improve response accuracy and usefulness (also reduces hallucinations).

https://arxiv.org/abs/2303.11366

You don't get that feeling around solving complex logic puzzles in your brain. You do get to copy and paste
I use GPT-4 for helping with my code all the time and I still get that feeling, because once the code base is sufficiently complex there's no avoiding the logic puzzles.

Maybe one day it can look at your entire code base and just fix it / writea new feature, but it's definitely not there yet.

The models AI researchers develop are cutting edge, and mathematically involved; the kind of thing I would expect an LLM to fare poorly at. And today's researchers are capable of implementing their models in pytorch and the like.
I don't like the use of the word "democratize" in this context, there's no secret authority of programmers preventing people from learning. You need only a computer, which is practically a commodity in first world countries; the users really have all the power and resources they could ever possibly need. I don't see how it could get more democratic at all.

The reason people can't code isn't because an external force is preventing them, it's because they aren't putting the work in.

I don't know how to paint, is the solution to "democratize" painting by waiting until an AI can do it for me?

What all are you using as your primary interface for ChatGPT et al LLMs? I've had some success with OpenAI's default UI but mostly I've been trying out various community Neovim plugins.

I feel strongly that I want an in-IDE pair-programming assistant, but so far I've had at least one or more blocking issues with many of the currently available open source options.

NeoAI is great - for example - I've had it working well on multiple machines before - but today after a Neovim / Astronvim update I'm getting errors about my quotas (which are fine) back from the plugin - and I don't really have time to debug that because I need to get some work done :/

I have heard good things about the Genie AI VS Code plugin. (I personally decided against installing it because it's closed source)
GPT-4 got me through porting a near SoTA image segmenter to the browser and building a prototype UX that uses the webcam to grab decals from the real world in a few hours that prob would have taken me at least 5x longer.
> Current documentation is written for human reading, with a mix of text and code blocks that makes copying a poor experience. Perhaps soon, documentation and APIs will become GPT-friendly first.

Yes.

I have recently annotated my Pydantic models and fields with the explicit intention to use the resulting JSONSchema to inform GPT how to structure some information (in effect, writing a one-off client for an internal API I'm creating).

As a happy side effect, this is now better document (information about semantics of the data structure elements is closer to the definition of the structure itself, not in some external Markdown text file or in some walled-off wiki).

I thought the point of GPT is to be human like and not that humans adapt to GPT.
Humans are limited in their language too, so that's still human :) It's just that you're surrounded by humans who speak your language.
It's a tool. Humans that adapt to any tool they use frequently.
ChatGPT has been useful to me for learning/looking-up a lot of things, although it sometimes drives me crazy. Often I'll want to use libraries which are rapidly developing, and the training data ending at 2021 kills the accuracy. A webcrawler + chatGPT would be incredibly useful. So far I've only found tools designed for the web admin (finetune on your support docs + make a chatbot for users) rather than something designed for the end user.
I have had success just pasting the relevant documentation for using the library into the chat and telling chatGPT to reference that.
I'm talking about stuff like Bevy where the docs are scattered across multiple web pages. ChatGPT can still be helpful but typically copying/pasting a whole doc, asking a question, reading the answer, is slower than just reading the page myself. And if it's the wrong page, then chatGPT won't help.
Take a look at https://phind.com

Being able to search the web allows it to deal with recent information: you can ask it to limit its search to the API documentation for the library you're working with.

Oh this is pretty good, thanks! I do have some non-developer use-cases which this may not work for, but definitely helpful.
(comment deleted)