25+ yr Java/JS dev
Linux novice - running Ubuntu (no windows/mac)

  • 0 Posts
  • 16 Comments
Joined 3 months ago
cake
Cake day: October 14th, 2024

help-circle
  • My guess is 25% of their developers use AI coding assist. Because as a developer who uses AI almost every day, I can promise you only the most pedestrian code can be written by AI. As autocomplete, it saves me some time typing. But actually writing code from scratch, no way.

    Yesterday, I asked it to write some particular code for me to do with multi-threading, and it constantly wrote things wrong, like initializing the access of a database client with the user of a request, which would mean every single user would have the access of the first user, not their own.

    I reviewed some code earlier this week that did the same thing with the GlobalExceptionHandler that I suspect was also written by AI. These are sort of insidious in that when you write tests to make sure the code works, the tests will pass just fine.

    You have to have a skilled developer to identify those issues because the code looks good, and just about any test an individual developer will throw at it will pass. That bug would have gone to production if I hadn’t caught it. And that’s on top of code that just uses the wrong class or confuses common methods from two completely different classes.

    And I couldn’t even get a job at Google when they interviewed me, twice. So you can’t tell me 25% of their code is AI-generated. It’s useful, and a time saver. But it’s not capable of generating reliable code on its own. Certainly not yet, and I believe not ever in this form of AI (maybe AGI if it ever comes about).


  • It depends very much on whether it violates SOLID. I do strongly encourage my teammates to use new language features when appropriate, but I would never fail a PR for it, just mention “here’s a better way to do this in the future.”

    But if someone is violating the architectural integrity of the application, that’s something else. If a field isn’t final when it could be, or is public when it could be private, or uses a class that technically works but is intended for a different purpose, or just adds unnecessary complexity, I won’t approve those until they are addressed.

    That being said, you do have to pick battles. The current app I’m working on is a bit of a mess, architecturally, and sometimes I’ll work with someone to try to adopt better standards and it turns out doing something the right way is just too far afield. Just this week I spent an hour trying to help someone get it right before conceding we should just do it quick and dirty and address the structural problems in a more deliberate way once the underlying structure was ready to support that.

    Coding is as much art as science. Sometimes we like code to look different, but at the end of the day if something is isolated and passes tests, it’s fine for now and can be rewritten in the future should that become necessary.










  • I think this is about as likely as other conspiracy theories: not at all.

    We’re going to find out that he’s just a guy. Which is disheartening when we imagine someone coming along and saving us and setting right all the wrongs.

    But also he’s just a guy. I’m not saying killing is the way forward, but he inspires the belief that we can change the world ourselves. We don’t just live in a world controlled by the rich or shadowy conspiracies; we live in a world where we can have an impact.





  • I’m my observation, as a nearly-30-year-vet in the field, it’s due to the same factors as always. The technology doesn’t enforce the standard. So people do any fucking thing they want because they honestly don’t know any better.

    I’m working on an app right now. On one of the controllers there is a single endpoint, out of about 30 (which should fucking tell you something right there) that conforms to restful standards. Every single other one of them is wrong. Because folks didn’t know better and leaders didn’t lead/teach/know any better themselves.