Each AI is different and they are constantly improving them due to the competition. The example in this post is Copilot which currently I consider the least advanced of the three I use regularly. It is built into Windows so I can use it generally as long as I want to. The others at the free level I tend to hit my usage cap and have to wait for a bit. It actually is VERY good for helping with code. It can speed things up rapidly and write some good code.
I've been trying to do VERY complex code. Designing systems that don't exist anywhere yet, using multi-threading, and many requirements. That's a big beyond it's ability. The code I'd end up with if I could pull it off would likely be 50,000 to 100,000 lines of code at least.
It isn't ready for that.
Using it for some pretty straightforward requirements it actually works well with. It does know how to do the multi-threading and other tasks. If your goal is pretty focused it is likely it can help you a lot. If your goal is super complex with many interleaved parts then it will lose context as some point and start hallucinating.
You need to know enough about what you are doing to be able to read the code and say "this is not right". If you can do that it can shave hours, or days off of your own work load.
I use ChatGPT and GROK mostly when doing the serious coding. They seem to be competing with each other on which can develop the better code. So I use them both and I kind of combine the results myself taking the good from both.
Copilot that was in this chat I have used for code as well but I've kept it pretty basic. It seems to be the AI that provides the most "made up stuff" these days and is the most behind.
They always speak with authority as though they really know what they are talking about even as they are feeding you bullshit.
Depending upon what is involved with your needs you can likely do it.
I tend to write in notepad a big long statement describing in as much detail as I can what my goals are. The more precise you are in a single statement the better it does.
When you try to start of say "I want A" It gives you A. "Now add B"... it gives you B. "Now add C" it will do so eventually you'll say "Now add E" and it will say it does so but will have completely renamed or forgotten things you did together when setting up A so suddenly it is introducing slightly different variable names, etc. If you explain "A, B, C, and D" as much as you can in the initial question it tends to do much better. For a lot of things you won't actually need to do much tweaking if your description was pretty good.
I'd say give it a shot.
When I say the tasks I am doing are huge and involved I could give examples that'd explain it. In my cases I'm always trying to do something I haven't found any examples of people doing it before.
If I can pull any of them off the way I want they will help me and some of them may even be worth selling to other developers.
I am currently working on a TileSystem that enables combination of prefabs as tiles, traditional terrains, shapes with varied texturing and shaders, support for cube, marching cube, and dual contouring voxel systems, all unified into a single system that makes them all play together nicely. There is NOTHING out there that does that.
This is just a tool to fix woes I've encountered in my personal needs and desire for level design. It is one piece of bigger projects.
Tons of crazy mesh design stuff, with seam matching, ways to unify the data so it is thread safe, and potentially can be offloaded to the GPU.
AI actually works good briefly when I describe that then falls apart.
So I am breaking it into much smaller chunks. Things I can build with its assistance and then I will keep track of how they all go together without expecting the AI to remember and I will make them work together.
Perhaps the most complex thing I'd like to achieve is managing an aquaponics setup in a greenhouse. I need to determine what metrics need to be routinely attended, PH, nitrates, flocculants, flow, water level, temps, status of filters, and checking these things at several points in the system, several chemical burdens in the incoming water supply, and then mitigating issues when triggers get pulled. These are intended to start small, with a couple sensors, for the first three or five, and manual mitigation measures (and manual confirmation of the metrics reported), but to gradually expand as sensors are added, and software is updated to track new metrics.
This process is expected to be pretty modular and gradually expand, so I think overly complex development of code in a single chunk is unlikely to trigger hallucinations, and that's what the manual confirmation of the metrics is intended to detect. Eventually I'd like to add arm(s) on a rail that can add deflocculants, change filters, even pick and plant crops, and hopefully fish and crawdads. Because I don't expect to start with the turnkey management system, but intend to create one that I can share publicly so that people can simply install the necessary hardware, biologicals, and software to run it all, and enjoy the produce and menu additions a greenhouse aquaponics system in given conditions will generate.
I don't, but I can gain that competence as needed. I taught myself to open Notepad and code up a (simple) website in HTML at one go back in the early 2000s, so I expect to be able to gain basic competence in at least Python (enough to ascertain some other language is probably more suitable, LOL). But I sure don't have that competence at present. I don't even know why it's hilarious to code Linux device drivers in Java. I only know programmers think so.
I don't think the main hurdle in this development process will be AI, but my own ability to consistently manage the system in developing conditions, as I expect significant political and economic changes in the next decade.
Since that is one of the primary reasons I limit my interactions with actual people, it's why I think I will most struggle to work with AI. That and the obsequity will quickly dispel my capacity to overcome my aversion to such pathological manipulation. IME I quickly wear out my welcome with people that act that way by cutting to the chase they are desperate to avoid, which is why my political influence is actually a negative quantity locally. Maybe that approach will succeed with AI that can't refuse to take my calls?
This is an entirely different use than I intend, yet I see the similarity in the way managing these separate mechanisms "...unified into a single system that makes them all play together nicely." is exactly what I seek to do with ensuring the aquaponics system is functioning nominally. Perhaps since creating virtual environments and running a greenhouse both involve managing metrics in 3D space.
I don't see anyone else doing it, as you don't for your usecase. In fact, I can see some overlap between what you're doing with what I want to do, because I want to enable people to come up with a site specific design that will enable constructing a turn key aquaponics system, and the exact processes you're coding will be necessary to design a working system, at least exchanging NPC's with maintenance procedures and with certain life support requirements that may only apply to your environment designs for exotic environments, like for extraterrestrial or extreme environments.
Given my limited coding experience - essentially none outside basic HTML decades ago - Paduan will not be snatching pebbles from the master's hand any time in the foreseeable future. However if you can see how some code you have developed might be adaptable to tracking sensor data for the systems I want to monitor, and eventually maintain, any specific advice and consent would perhaps be miraculous in facilitating my success. When I have a functioning system I seek to manage, would you mind if I inquire of you regarding adapting your code modules in that way?
I think in your case I'd have it write some code to track a sensor. Keep it simple. See what it comes up with. Then I'd start from scratch with what I learned from that and write a more detailed prompt that takes it more in the direction needed. I think what you are describing is doable and AI could potentially speed things up.
As to when I say "knowing what you are doing" if you are working on a project and in the early course you design variables around a method called seamMatching(datatype A) and later on you are using some code that needs to type into that and instead of calling that method it says something like seamJoining(datatype A,datatype B) then you'd likely be able to say "wait a minute, that isn't what we called it, and that isn't how it is implemented." That's the type of error it tends to introduce the most after you've been arguing with it for awhile.
One technique that can help some is every so often in your work with the AI tell it to generate a detailed prompt that you could provide it in the future to get it back to this point. Put that in a notepad and attempt to use it kind of as a a "get back on track" prompt if it starts to make a lot of errors. It can help, but generally speaking the prompt is often too general on the details to completely make up for these issues.
This is why I do it in chunks. Make a project to read the sensors. Then make a separate project saying you have this system to read sensors and you give it the way to interface with that and you say "now I want to make something that uses that to do this..." You keep it so it has no desire to redesign what you already have working by keeping them discreetly different projects.
Oh and these things are quite good at writing code. I've learned code techniques I didn't know working with them. They are just not good at coming up with the ideas themselves or keeping it all together contextually for long periods.
That is awesome! LOL I really appreciate your sound counsel. I'm a ways off from implementing this coding project, but forewarned is forearmed, and this gives me targets to aim at.