IT/Software career thread: Invert binary trees for dollars.

Haus

I am Big Balls!
<Gold Donor>
19,535
79,903
What impact do you think COBOL has on whether AI can take a Junior Dev role or not?
When those senior operators and coders who are writing and running those archaic systems retire/die this will pose problems for AI driven dev systems in that many of those old systems have evolved "organically" over time (i.e. horribly and often ill documented at best), and the newer devs have to learn not only how to code the language, but HOW and WHY the previous systems were written/architected how they were. I've seen examples of this still being a problem when some AI models asked to "Fix this code" or "Add this feature" to some of these entrenched systems. Maybe AI will advance soon enough that it won't be an issue. But I have that concern.

Or maybe AI will advance to the point that they'll point it at the system overall and just have it "Re-write this from scratch with modern coding practices, make no mistakes" to replace it. I think that will be a ways off still. So we'll still need some pipeline of humans for now.
 

Sheriff Cad

scientia potentia est
<Nazi Janitors>
32,853
78,574
Maybe it’s a difference in usage so pardon if this question seems ignorant… but why wouldn’t you just give it all the source code to look at? When I use Grok for legal stuff, I basically upload the entire case file (just the public stuff, we redact confidential/personal information) and say, I want to draft a response to this or that, here’s the points I want to make, etc. And honestly the drafts it comes out with are better than what I get from my junior associates.

Can you not do the same with code bases? Upload all the code base, say I need a library that transforms the output of function x to the inputs of function y, go - and then just slap that function in and start using it? Or do you give it more integrated prompts and it generates far wider-ranging things all at once?
 

Haus

I am Big Balls!
<Gold Donor>
19,535
79,903
Maybe it’s a difference in usage so pardon if this question seems ignorant… but why wouldn’t you just give it all the source code to look at? When I use Grok for legal stuff, I basically upload the entire case file (just the public stuff, we redact confidential/personal information) and say, I want to draft a response to this or that, here’s the points I want to make, etc. And honestly the drafts it comes out with are better than what I get from my junior associates.

Can you not do the same with code bases? Upload all the code base, say I need a library that transforms the output of function x to the inputs of function y, go - and then just slap that function in and start using it? Or do you give it more integrated prompts and it generates far wider-ranging things all at once?
You can. But with current coding technology that has it's issues.

With fresh "code from scratch" it seems to do much better than with "Maintenance coding" tasks. It's not the old language itself (COBOL) that I see as a problem. It's that a lot of older coding is, to say the least, somewhat difficult to follow. Plus many of the systems have "quirks" which are based on their age, plus pequliarities of their older operating systems, and complicated by the very bespoke nature of some of the more deep code in old apps.

Thinking of your example of case files. Imagine if the case files kept varying in format, and many of the citing of rulings weren't actually properly pointing to the original rulings, but back in the day when these were written people found it just "worked for them". Some judges had some "house rules" the cases in their court needed to go by, which some other courts didn't even though they were in the same jurisdiction. I don't know how much of that happens in your legal world though, so my analogy mapper probably isn't tuned well for this one. You could probably get an analysis done by an AI, but then you'd still probably need a paralegal to proof it out and sanity check it at the minimum, and if it was one of those older courts, you'd want one that knew about that judges quirks.
 
  • 1Like
Reactions: 1 user

Sheriff Cad

scientia potentia est
<Nazi Janitors>
32,853
78,574
You can. But with current coding technology that has it's issues.

With fresh "code from scratch" it seems to do much better than with "Maintenance coding" tasks. It's not the old language itself (COBOL) that I see as a problem. It's that a lot of older coding is, to say the least, somewhat difficult to follow. Plus many of the systems have "quirks" which are based on their age, plus pequliarities of their older operating systems, and complicated by the very bespoke nature of some of the more deep code in old apps.
It’s very likely that most of my programming experience is on these “older systems.” When I got my first computer job it was writing C code on OpenVMS/Dec Alphas. A ton of my experience was on Informix 4gl systems where I did C++ connectors to the 4gL programs. This shit is so legacy it was legacy when we were working on it in the 90‘S.

Given that I really have no idea what you’re talking about here. Can you explain in more concrete terms?
Thinking of your example of case files. Imagine if the case files kept varying in format, and many of the citing of rulings weren't actually properly pointing to the original rulings, but back in the day when these were written people found it just "worked for them". Some judges had some "house rules" the cases in their court needed to go by, which some other courts didn't even though they were in the same jurisdiction. I don't know how much of that happens in your legal world though, so my analogy mapper probably isn't tuned well for this one. You could probably get an analysis done by an AI, but then you'd still probably need a paralegal to proof it out and sanity check it at the minimum, and if it was one of those older courts, you'd want one that knew about that judges quirks.
Which code files change in format or don’t follow syntax rules? I’m talking about just giving the AI model the entire code base, why would anything be changing? Again, can you give some concrete examples?
 

Khane

Got something right about marriage
21,788
15,720
It would be faster and more cost efficient to use the loss of old COBOL developers as an excuse to modernize those systems. And use AI to do that faster.

That's more likely than someone trying to sit there and train AI on the custom COBOL codebases.
 
  • 1Like
  • 1Truth!
Reactions: 1 users

TJT

Mr. Poopybutthole
<Gold Donor>
46,852
128,261
It’s very likely that most of my programming experience is on these “older systems.” When I got my first computer job it was writing C code on OpenVMS/Dec Alphas. A ton of my experience was on Informix 4gl systems where I did C++ connectors to the 4gL programs. This shit is so legacy it was legacy when we were working on it in the 90‘S.

Given that I really have no idea what you’re talking about here. Can you explain in more concrete terms?

The question is really about narrow context. AI does extremely well when the codebase produces a mobile app or something that is just running on a phone. AI does poorly when it has to handle sprawling dependencies.

Take my work for example. The data platform is more of a philosophy than it is any one application. I have 5 different production code repos that support it, all of which have their own CI/CD. None of these different applications directly work together and it would be inefficient to make them work that way for various reasons. On top of that much of the cloud backend (on prem too) predates the concept of configuration as code, so the AI has no way to diagnose anything in it. You'd have to build more and more context for all of these things that it can't determine and those things are done by external teams so what do you do?

  1. Tell AI to make a calculator app and it will do that successfully in any flavor you want.
  2. Tell AI to diagnose this bug occurring somewhere in your infrastructure and you would have to first determine where it's happening in the first place. Which is a skill and experience thing on it's own. Then use AI to assist you with that.

What you're left with is needing to create a "concert" of AI agents handling their specific piece of the pie and another "conductor" agent to bring it all together and then a final "master" to work with all those pieces and do something for you. Not to say that this isn't possible or isn't what's coming. But it's a ways away.

Example of this principle:
 
  • 1Like
Reactions: 1 user

Noodleface

A Mod Real Quick
39,565
18,153
In my experience with how easily anthropic handles UEFI coding, none of this cobol stuff is a concern. The feature I'm the owner for is massive, sprawling internal IP and it can explain our entire code flow like it's been working on it for years. And the scary part is it's never wrong.

Now to be fair UEFI is open source, so I understand there's a benefit to any model you use. But our implementation is not.

COBOL has been this weird dinosaur tech that's been held over our heads as some mystical unicorn coding language but I think if you let anthropic in there with context to the entire source it could absolutely replace people.

I dont know if people realize how strong it actually is. Talking to my boss Friday we both agreed "scary" was an apt description. If you had asked me just a couple months ago I was on team "AI sucks".
 

TJT

Mr. Poopybutthole
<Gold Donor>
46,852
128,261
COBOL itself isn't the issue. The problem is often the mainframe it runs on. GM had some when I worked there that ran their plants. The problem is that these mainframes don't run on some variant of Linux or something, they have custom operating systems that exist on dusty old manuals made by IBM for that one machine. Along with decades of development on it that was never even in source control to begin with.

But sure, if you jerry rig a modernized github process onto it and extract all your system changes to the original mainframe OS over the past 50 years it can probably help you.
 

Kuro

Karazhan Raider
10,447
32,708
The EverQuest spaghetti coder who made it so that changing the name of A Muffin would break Bard spells was just ahead of his time fighting the AI menace
 
  • 1Worf
  • 1Like
Reactions: 1 users

Noodleface

A Mod Real Quick
39,565
18,153
The EverQuest spaghetti coder who made it so that changing the name of A Muffin would break Bard spells was just ahead of his time fighting the AI menace
Same with WoW where they said changing the starting bag to anything but 16 slots completely broke the game
 
  • 1Like
Reactions: 1 user

TJT

Mr. Poopybutthole
<Gold Donor>
46,852
128,261
In another episode of drama from my old job. One of my coworkers was fired in addition to my manager leaving a week after I did.

The dude had been underperforming for awhile despite being totally technically capable of the work. He had performed before. No idea what happened to his work ethic to put in the bare minimum. But he wouldn't update tickets, wouldn't do anything unless told directly, wouldn't respond to slack messages, nor attend any meetings.

After I left he had the bright idea to use the leverage of me being gone to get a promotion into an "AI engineer" role of some kind. VP fired him instead the same day. He hadn't progressed to a PIP or anything but it was being noted that he was underperforming and had been for IDK the last 5 months.

This chaos makes me feel like I was somehow holding it all together there. Lol.
 

Phazael

Confirmed Beta Shitlord, Fat Bastard
<Gold Donor>
16,181
36,406
In my personal experience, most companies will opt to limp along band-aiding existing systems rather than invest in something newer. They only move up the updated path if forced or if the newer option has rather immediate ROI (usually through reducing workforce or physical asset infrastructure, which is why Clouded shit took off) and usually just end up getting screwed once they are dependent on the new product anyhow (again Cloud ended up being like this). So the main motivation for moving to AI en masse is that a bunch of suits think they can cut costs with it like it is a magic wand, not even considering that like any good drug dealer the AI providers will jack the prices once they are hooked, exactly like how Cloud services worked out.

The other end of the problem has been touched on, which is to say a lot of these older systems have little to no documentation and even less public knowledge available. There is not a lot of data for AI to draw on for these older specialized systems, so any AI that actually can update them is going to be at a premium. Add that to the drug dealer first hit is free business model and factor in data poisoning going on, and it is looking dicey for AI on that front. Thats not even getting into all of the proprietary quirks of some systems out there that are completely unique because they are so old that they came from the wild west era of IT. AI is going to have a real hard time constructing solutions for shit that there is zero internet knowledge base for. Thats why what Khane Khane said is spot on, in that a lot of shit will need to be rebuilt from the bottom up, which is not cheap and can be very messy.

The lower/mid tiers of support IT are going to get phases out at some point, once the last of the older generations who want an actual non Poo human on the other end of the call die off or retire. Millennials and Zs are basically terrible with human interaction and were raised by AI/the Internet anyhow and probably prefer talking to the HAL 9000 all the time. Anyone who does not manage to update all of their shit by then (probably ten years from now) will be fucked because there will be no institutional knowledge of anything from prior to the dawn of AI. And if you don't believe me, ask yourself when was the last time you saw someone under 40 read a map, read a reference book, or even try to exist without their phone/internet? The feedback loop is already in place on that and anything that takes out our telecom grid probably ends the world now.