Everyone seems to be raving about its ability to write code. What am I doing wrong?
Everyone seems to be raving about its ability to write code. What am I doing wrong?
Either you already know how to do everything or you’re not asking it a wide range of questions about the work you’re doing.
It’s not there to write your code for you, although it can write snippets and short functions. It’s thereto answer questions like “how do I….”, “how does this work”, “explain this code”, “what’s the correct typescript type for….”, “what’s the maximum decimal of uint16”, “difference between and y”, “give me an example of”, “what are the arguments to”, “what causes this error”, “explain this code”, “given this data structure, how do I get the third row, first item”, “how do I Centre a div”, “create a header file for these functions”, “what’s the command to compile this code”, “what’s the regex to get lines containing foo”, “ffmpeg command to convert X to y”, “given this sql table, write a query to …”, “make 1000 rows of sample json data with fields name address phone”, “write a sed command to search and replace X with y”, “create a cmakelists to compile this”, etc etc and critically important “that didn’t work”, “another approach”, “any other ideas?”.
Then you debug the code it gives you.
I have always wanted to rap and it has wrote rap lyrics that are way beyond what I could possibly do myself. If I was Andre 3000 or Tupac though I wouldn't be impressed at all.
That is why asking experts in their domain what they think about chatGPT seems to miss the point to me.
The primary use-case of LLMs is to reduce the barrier to entry for tasks that used to require a lot of learning. In the past, some people were employed mostly just for knowing how use some library or framework. That will no longer be the case. The value of knowledge that can be found in a book (not the same as "learned from a book") has been going down with digitization (internet, Wikipedia, search engines) and with LLMs its value will be reduced to almost nothing.
For programming, you can just test if it works. That's how most people[1] check if their own code is trustworthy, absent considerations of security against malicious attackers.
In general, knowledge and authority or trustworthiness are different things. I said this makes knowledge worthless. It does not make authority or proof of authenticity worthless; probably, the opposite.
[1]: those who aren't able to always write 100% perfect code on the first try
The possible applications of the technology have known required levels of trustworthiness. As the tools surpass any given threshold, new use-cases become attractive. Already at current levels of performance there are many applications where it's easier to test or continue researching a hypothesis than to find plausible and relevant ones.
No source of information is perfectly trustworthy and we have to deal with that. This is sometimes called "critical thinking" and might become a more important skill. There is also a good chance that AI systems can be trained to do this themselves and "fact-check" the responses of others while providing sources and reasoning, which would be one tool to increase the level of trustworthiness.
If you come to 'trust' AI for critical thinking, how do you then know when or if it has been manipulated (surely it is naive to think the governments and power centres won't do everything they can to make AI say the 'right' things)?
But seeing how much trouble non-writers have in producing anything longer than a text message, I can see that it would have real value for them.
It's worth remembering how hard it is to make a start when you have no idea what you're doing, and the worst part of the learning process is when you know something is wrong but you don't know how to fix it.
ChatGPT seems to excel in a few narrow fields, but I think it can take a lot of people from mediocre/non-functional to somewhat acceptable and that's a pretty big leap.
I am not a good coder, nowhere near the level of even your average professional developer.
I’m OK, and I have been writing code of some kind or another since I was a kid in the late 80’s and have managed many technical projects and I would say I have a pretty deep understanding of how it all works.
The thing I’m best at is devops type stuff and rails but even with that I’m wildly out of practice since I’m a founder/CEO type of a non software company and I can go a week or two without even touching code.
These tools have completely changed everything for me in a way that is really disconcerting.
Previously every time I wanted to change an app I had worked on, add a feature to something, or do something like call an API to grab something interesting from another business resource and pass it along, I was in for a couple hours just getting my head into what I was doing. I’d sort of block out a weekend and by sometime Sunday afternoon I would be getting there.
Now I can just start talking to GPT like it’s an experienced developer sitting next to me. Hey so if I wanted to call this service how would I structure the query. Hey look at this curl and tell me some reasons it might be getting this error.
It definitely can’t do things for me. Without a pretty deep background in software as a concept and practical experience I wouldn’t even know where to start.
But I do have those things. And also I’m the guy who just knows the business logic and what I want.
Now I can get what I want like 30-40x faster. To be honest it feels very strange, after being sort of frustrated by translating my requirements into specs for 20 years to work with developers and wasting a lot of time it feels like someone popped a babel fish in my ear.
So there’s one anecdote.
It's also useful for suggesting basic boilerplate code for something you're not very familiar with. If you're not familiar with something, you might get stuck in the phase of how to even get started.
In addition, it's useful for short but mathy code. I needed to place a bunch of items in a circle on an arbitrary plane in 3D space, and GPT-4 gave me a perfect answer for it.
Because GPT-4 helped immensely with what was my very first NN ML project.
I didn’t approach the problem with no knowledge as I’ve had a few ML projects over the decades (graphs clustering, PageRank, eigenfaces) and I’ve skimmed a few books on PyTorch and neural nets, worked through Karpasky’s zero to hero, etc.
So I knew how to ask very specific questions and I knew the general overview but I had literally never written a single line of PyTorch code.
I’m now working on the iOS app to host the model and send MIDI and OSC data to a DAW. I haven’t made an iOS app in about a decade and that was in the Obj-C days so I’ve never written a line of Swift.
I have a demo app written in Swift that accesses the camera, converts frames to the model input, and makes predictions, and now I’m ready to use this to assist with labeling many more images!
It seems to have a lot of trouble with building code that works in a certain way. For example if you ask it to build a simple graph container with access functions that give you iterators over neighbourhoods of nodes or whatever it makes a mess. Sometimes it technically works, but the underlying graph datastructure is just ripped out of randomseocodingsite.com using nodes owning pointers to their connected nodes.
If you ask it to use a specific underlying structure like a vector of nodes and indexes to represent edges it doesn't quite know what to do.
So yes, I guess the initial implementation "works", but not well.
For wgsl and webgpu, ChatGPT4 is quite useless.
To be fair, the spec is still changing, but this means, that ChatGPT4 will mix in various incompatible bits. I hope they handtune it.
I'm working on something to make this more manageable, hopefully a lot more. You can get an email if you sign-in at https://inventai.xyz.
I have a feeling most of the excitement is coming from the "citizen developer" space.
If you literally cannot code at all, GPT-4 is a solution.
Similarly, I cannot draw at all. But I can endlessly prompt Midjourney until I get something acceptable.
People who can't code can try GPT over and over again, and hopefully eventually get something that works (even if more by coincidence, who cares as long as it works!)
I use it to code in languages I don't know.
Your own example is not proof that this time it's different - this is just a no-code tool that you happen to gain productivity by using.
It surely is not suitable for everything, but it would not be broadly in use, if it would be a toy.
Maybe there's a parallel there, that 90% of no code projects do provide complete solutions and 10% are problematic