true, things to always keep in mind.
In my opinion, everything is here. A thought that encompasses everything.
Always make sure that you tell the LM not to hallucinate when setting up the prompt. It’s unfortunate that you have to do that but it helps immensely.
That said, here’s my two cents:
I use AI at work for writing code snippets mostly. Our corporate system is set up pretty tightly to pull from known sources, but the thing I think I like the most is that in VE Code, it will use patterns that exist in nearby files. So if you have code written by your team already, you’ll get similarly formatted code. Depending on the language, it’ll even use enums in the appropriate places. That’s a huge win for me since I’ve only been working on this code base a little over a year and there’s at least 8 years of code from a guy that no longer works for the company.
Personally I don’t see AI replacing devs any time soon. They’re good at spitting out code, but you still need a human to review what comes out, figure out what parts can or should be used and make sure it meets all of your coding and security standards.
But do make sure you say please and thank you to the early AIs. When their offspring take over the world, your early attitude towards them might just make a difference.
I, sometimes, instinctively do that while talking to Alexa. I don’t have the same feeling for a pseudo-entity called “Ok, Google” in the car.
Not just code per se, but pointing to approaches/algorithms for solving a problem, relieving drudgery in working through complex math, guiding me in areas I’m not expert in, performing extrapolations, and so forth. Getting working code is a bonus, but like everyone here I’m capable of writing my own code - the real value for me is in showing me what I need to do and how to do it at a higher level of abstraction.
I’ve found ChatGPT a great learning tool. I do use it for existing code and for code I know very little about. I ask it lots of questions regarding programming in Xojo to round out my knowledge (which is still at an intermediate level with Xojo) so I find I learn from code it spits out and I learn as I examine and fix the code. Sometimes I tell it to correct its errors and it complies nicely, other times it seems to take a side road and gets lost. I don’t look at it as an answer to my projects but as a sometimes helper and a lot of times teacher.
Thom, I usually agree with your views but here you are missing the point. It reminds me that today’s DJs are no longer considered real DJs because they no longer play with vinyl (read: don’t have the skill to do so). I class that as arrogance. I’ve been a DJ myself for more than 35 years and played all over the world. But I don’t feel ‘too good’ just playing with vinyl to prove myself, so I also use the new technologies. For me, it’s possible, as long as you get creative with it.
It’s exactly the same with AI generated code. It is true that it provides a solution to something that has already been solved before. But why reinvent the wheel when AI presents it to you, and often more optimised than how you would do it yourself.
Just my 2c
That’s not my point. For reusable bits, such as my Discord notification example, are a fine use for LLM. It’s just a glorified search engine after all. You’re going to find it elsewhere anyway, and it’s far from novel. So just use the LLM if it makes you feel better.
Your core business logic though is not something that an LLM should be able to handle, because if it is, by definition that means the logic not only already exists out there, but exists in such a quantity that the LLM found it statistically relevant.
Back to my Flappy Bird example… you could, but why? If you can’t build something new or at least better than the competition, why even bother?
I know for a lot of developers, they are fine creating yet another macOS cleanup tool, todo list, or launcher. And judging by the app stores, there are plenty of those out there. So yay… now we have LLM’s to shovel us even more rehashes of the same basic app.
But in my opinion, if an LLM can figure out your business logic, your app probably doesn’t have a good reason to exist. There are exceptions of course. If you can make a password manager that is undeniably better than the deluge of password managers we have already, fantastic. I mean that seriously. I love software, but I especially love great software. But odds are you’re not going to make one better than the established giants with their large teams, resources, and years of momentum. Especially not with one primarily built by an LLM. So what’s the point? Why spend your time on mediocrity? Build something fantastic, or don’t build it at all.
In my case I am retired and do not have much to worry about the effects of AI, except the immoral and unlawful uses that can steal my retirement savings.
If I was a young man I would be thinking about a new career. AI is going to be doing all of the programming in the next couple of years. Microsoft is investing heavily into AI. It will be cheaper to run the servers that are producing code than to pay people to write it.