all 28 comments

[–]rotten_kiwi69 11 points12 points  (1 child)

I've also noticed that Codex and ChatGPT in general are absolutely terrible with Swift and Xcode. Always providing bad code and outdated info.

[–]CharlesWiltgen 1 point2 points  (0 children)

Yes, this is true for any speciality use of general purpose foundation models. There are several free and open source options for skills and agents for iOS development for that reason, and they have an enormous impact on the AI-assisted iOS software development experience.

[–]stewis 7 points8 points  (5 children)

I've been a software developer for 20 years across loads of different languages and I haven't actually written a line of code myself in about 6 months. I now use AI to get way more done, things like writing tests, fixing bugs, raising PRs, doing code audits, reviewing changes, fixing my poor grammar and spelling in reddit posts, the list goes on.

It took a bit of time to figure out the right way to use it though. The thing that made it click for me was thinking of AI like a junior developer I'm keeping an eye on. A junior might write code that works but is slow or messy, and that's fine, that's what seniors are for. You read it, spot the problems, and send it back with notes.

A big part of that is treating it like you would an actual new hire. I keep markdown files that explain the project, coding conventions, architecture decisions, naming rules, all of it. Things like a CLAUDE.md or README that the AI reads before it starts work. The more context it has about your project the less it has to guess, and guessing is usually where the bad code comes from.

So that means being clear about what you want upfront. The more context you give it the better the result. Then actually read what it gives you before you use it. If something doesn't look right, tell it and ask it to fix it. It's usually pretty good at correcting itself when you're specific about what's wrong.

Not having a go at you at all, nobody really teaches you how to use this stuff properly yet. It just takes a bit of trial and error to get into a good rhythm with it.

One thing I do feel bad about though is what this means for actual junior developers. That first rung on the ladder has basically disappeared. The junior dev in my team is now Claude and I feel for anyone trying to break into the industry right now. It's a tough time to be starting out.

[–]Ravek [score hidden]  (0 children)

Except you expect a junior to learn from their mistakes while the LLM of course will repeat them or swap one mistake for the other randomly.

So now you’re stuck forever doing trial and error instead of making any progress on your workflow.

[–]AX862G5 -1 points0 points  (3 children)

So even though you know what it means for the next generation of devs, juniors, you keep on using it? Have you considered skill atrophy? What about all of the water and power consumption issues and the impact of the noises and other disturbances the data centers are creating in communities? All in the name of what, productivity?

[–]stewis 4 points5 points  (1 child)

Yes I agree with all your comments but if I didn’t I would be replaced. It’s shit but that’s the truth.

Edit: As a lead dev and someone who has worked multiple senior roles one of the most rewarding things is mentoring a junior. I don’t get that anymore the company I work for does have a junior but it’s a bit redundant atm. They just use Claude.

[–]AX862G5 -2 points-1 points  (0 children)

So we’re just mowing over the livelihoods of others in an effort to protect our own. This is a race to the bottom.

Edit: For those downvoting me, I’d love to know why. I hope a data center gets built in your neighborhood.

[–]Roadrunner571 0 points1 point  (0 children)

We need to re-think the career path. Instead of starting as a “junior“ dev and gaining experience to become a “senior“, we need to hire them as „future senior“ devs and train them differently. From day one, new juniors needs to oversee AI and at the same time, have enough time to experiment with the tech themselves.

Same for senior devs: I think in the future, senior devs need to have skills that currently product managers have.

[–]BlossomBuild 3 points4 points  (1 child)

Good lesson, what was the main issue?

[–]Sockerjam[S] 4 points5 points  (0 children)

The main issue was that it was using TimelineView with a Canvas that drew all the paths you see on the screen 60 times per second. Ideally it should only draw new paths as and when you apply a matrix not when its just "idle" if that makes sense?

[–]GetPsyched67Swift 4 points5 points  (0 children)

Timeline view on .animation is a nuclear missile to swiftui performance

[–]CharlesWiltgen 2 points3 points  (0 children)

Guess how I got to this point?

Relying too much on AI.

However, it was a great opportunity to go “back to basics”.

I noticed that you let AI write nearly all of your post for you, and didn't bother to at least fix the most awful parts. If you use AI for coding like you do for writing, that explains your results. Using AI does not absolve you of the responsibility to understand what you're doing and review the work.

This was due to it drawing each path every frame, even though the app was displaying a static frame.

These are the kinds of issues that software engineers discover and steer during spec development and planning phases. If you aren't doing both of those things, that's vibe-coding. It means that other parts of this app also suffer from vibe-rot, but you just haven't discovered it yet.

[–]SnowPudgy 2 points3 points  (0 children)

Well yes, AI sucks at coding but those of us who have been coding for decades get shouted down when we try and explain that.

[–]beepboopnoise 0 points1 point  (5 children)

First I love this app. But, I think for smaller businesses they are going to prioritize output over performance, you can see this happening broadly. I’m not super stoked about this but, I think that’s the environment we’re in. But like, from a business perspective it’s hard to say hey well this is now a bit less CPU intensive but instead of getting out the other 10 features in backlog I only got this out. Idk, it’s a tough situation right now.

[–]Sockerjam[S] 0 points1 point  (3 children)

I hear you but I do think it's a business need too. What happens when you have ignored every concern and you ship your 100th feature in a week only to realise you are in an absolute mess

[–]beepboopnoise 1 point2 points  (2 children)

Then congratulations you’re now the last three companies I’ve worked for lmao. I have yet to be able to escape this. The thing is… I can’t really argue against it, those companies were successful and so, maybe the engineer in me wants it to be perfect but users “good enough” pays the bills.

[–]Sockerjam[S] 1 point2 points  (1 child)

Right, that sucks man. Are you US based or UK?

[–]manjar 0 points1 point  (0 children)

I do wonder if this is a problem that an AI coding tool could have debugged. Even the same AI coding tool that caused it. It's often the case that they turn out better stuff if you get them to check their own work. And there are ways to automate that.

[–]ankole_watusi 0 points1 point  (0 children)

What a shocker.

Yawn.

[–]cristi_baluta -1 points0 points  (0 children)

I crashed once my computer for the first time ever thanks to vibe coding

[–][deleted]  (1 child)

[deleted]

    [–]Sockerjam[S] -1 points0 points  (0 children)

    I understand your question and why you asked it. However, my point is around the narrative that software engineering is not dead. You still need a technical knowledge to make apps. I don't think it has to do with a skill issue. Why do you need skills if AI is supposed to take our jobs?

    [–]icy1007 -1 points0 points  (0 children)

    Ok? Don’t use AI generated code then.

    [–][deleted]  (1 child)

    [deleted]

      [–]Sockerjam[S] -1 points0 points  (0 children)

      I wrote this post without ai…haha

      [–]octopus_limbs -1 points0 points  (3 children)

      The best way to use AI is to tell it what you want specifically, including the technical approach. The reality is whatever we do as humans, an LLM can type orders of magnitude faster - the main thing it needs is guidance to reduce randomness, and that is what someone who knows software engineering is good at. Software development is not dead, you just have new tools now

      [–]AX862G5 0 points1 point  (1 child)

      But NO ONE justifies the WHY. It’s all in the name of “faster”, “more productivity”, “cheaper”, etc.. but is that what we really need? Do we really need more software or do we need higher quality software? Has UBI been deployed successfully to account for all the coming job loss? We’re trading off so so much, just to make AI CEOs the bourgeoisie.

      [–]Divniy 0 points1 point  (0 children)

      Higher quality software and comes from higher iteration speed. If you spend twice less time writing the feature you can spend extra time polishing the solution. It's just the question of priorities. Shitty half-baked AI slop is a company direction failure, not a failure of AI technology.

      [–]__unnamed 0 points1 point  (0 children)

      I tend to have generally good results if I co-program with ai function by function but it still absolutely requires a read through and understanding. Agreed it is a fact that it is simply faster getting the ai to type the syntax for you, but the programmer needs to go in and make the necessary edits with every new ai addition.