Some of the work people put into getting Stable Diffusion to create the results they want takes plenty of time and skill. But event then I would say that putting in time and skill is not strictly required to make art.
You can absolutely be an artist using generative AI, but you of course wouldn't be a painter if you use generative AI.
In this example you can be an application developer but still not a programmer.
There are two answers:
a) No, that only proves you can type. b) Yes, you are an artist just like everybody else.
People can stretch the definition however they like since there is no hard acceptance of where the line is drawn. Sure the general term musician means a person who plays/creates music. A person who hums can be a musician.
However in my own opinion, I disagree. DAWs are not instruments in themselves. The main functionality of a DAW is in recording, arranging, and mixing audio. They are the digital equivilent of a tape recorder and manual cut/splice process. They have evolved to include many software add-on emulations of instruments and packages around the production process: synths, pianos, mastering tools, additional recording tools, etc. Using a DAW does not make you a musician, but using provided instrumentation in a DAW can make you become a musician.
Doing so helped me become a better assembly programmer.
Consider the Python function 'max', which, given an iterable, will return the iterables biggest item. Now suppose I ask ChatGPT to generate a function (in whatever language you like) called 'max' that does the same thing and it returns a block of code that I copy and paste.
In what way is Python's 'max' meaningfully different from ChatGPT's 'max'? It seems to me that these are essentially both just higher-level abstractions.
Is someone a plumber if they followed step-by-step directions to replace the flush valve in their toilet, without understanding how any of it works, or what the parts are for?
Where is the boundary? To me, it boils down to two things - do you spend the majority of your work time on it, and do you understand how your tools work? The former is necessary because even though I was an electrician’s apprentice as a teenager, and can explain how pretty much anything electrical works, it’s not my primary job, so it would be weird to claim that. The latter is necessary because otherwise, you’re diluting the title for those that have it. I can explain how max() works (or at least, an implementation of it). I can give pros/cons for functions.
I'd say the label programmer has far more in common with guitarist than with electrician and I think calling it a title is muddying the waters, even though it can also be a title. (I also think because we use the term that way, some people prefer other titles that make it clear they are professionals.)
However, the point I was making wasn't that people who have used ChatGPT but otherwise haven't programmed necessarily are programmers, but that: (1) Code isn't fundamental to programming. We can imagine programming interfaces other than code that people--even people who spend most of their work time doing it and understand their tools--can use to create programs. (2) A ChatGPT-derived copy-and-paste language is not fundamentally different than other higher-level languages in that it is simply an abstraction.
<programmer friend> == human => ?
<programmer friend> == ChatGPT => ?
In your example the human and ChatGPT are interchangeable. In my example, they are also interchangeable. Your situation yields a "probably not" answer. My situation yields a "probably" answer. These answers contradict each other, despite their identical basis and despite both being correct answers. Therefore, it must be that this human/ChatGPT comparison must not be the locus of the difference between the answers.
I think people ought to take a breath and think about what is actually fundamental about programming. It might be "code"; but then we've sort of just kicked the can down the road, because now we've got to figure out what's fundamental about code and how that means something is or isn't programming. And without this sort of definition, it really isn't meaningful to ask whether this or that thing is programming.
But I havent seen a fully blown app running a business written by chatgpt.
To me, chatgpt is still a next generation wizard, like using a wizard from Lotus Approach.
or, to put it another way, if everyone is a programmer, the word is meaningless.
We've been raising the level of abstraction in code for decades and it looks like LLMs might just be the next level up. Yes, using LLMs will put more complex code within reach of more people but I'm sure it won't be nearly everyone, and I bet that it'll raise the ceiling of what the best programmers can do at the same time.
Of course, we're free to redefine what "programmer" means at any time as well, if a new definition proves to be more useful.
To apply the same system to programming, one is a programmer if they dedicate themselves to the study and mastery over their computer, usually in a particular discipline. The disciplines of programming may be defined around the abstraction level. While everyone specializes, programmers also have general skills that the average person lacks. I would argue that the most important of those general skills is understanding the relationship between instructions, execution time, and memory usage as well using that knowledge to weigh different approaches. How do we separate a hobby programmer from someone who regurgitates AI responses with no understanding? I don't know. Maybe their ability to derive new answers if the AI didn't give them a correct answer.
Words do have meaning and we should be careful not to degrade the meaning down to anyone who is capable of asking an AI questions but I doubt we'll ever have a non-fuzzy definition of programmer