Copy of yes, and... with Carson Gross === Noel: [00:00:00] Hello and welcome to Pod Rocket Web Development Podcast, brought to you by Log Rocket. I'm Noel, and today I am rejoined by Carson Gross here to talk about a blog post he recently,~ uh,~ wrote, titled Yes. And ~um, ~it's kind of ~a, um,~ a discussion on. People thinking about AI from the perspective of ~kinda~ people looking to enter the field and make life decisions on do they want to go into software still?~ Is there something else that makes more sense? Um, and I thought it, ~I thought it was pretty good. I thought it was pretty insightful. ~Um, ~but anyway, welcome, welcome to the show, ~uh,~ Carson. I'm more excited to jump in. ~Um, ~what kind of,~ uh,~ I guess maybe just as a quick background,~ why,~ why did you think you were in a good position to ~kind of like ~write this article? Why'd you feel you needed to ~get your, ~get your thoughts down here? Carson: ~Well, it's a, I teach, uh, at Montana State, I teach computer science. And so, um, I've had students, you know, ask me like, Hey, you know, what's the deal with ai? And, um, we, you know. So, so that, that was part of it, the immediate. Um, I also, I have three sons and, uh, one of them at least has indicated they're interested in, uh, computer programming in some, some capacity.~ ~Um, and, uh. The, the, but the immediate motivation was I had a good friend who, uh, reached out to me and was like, my son is asking about computer per, he wants to be a computer programmer now. And what's, uh, you know what, what do I tell him? Given ai. I had been kind of saying, sort of, you know, I had been thinking about it and saying some things I, you know, I'm, I'm trying to figure out AI tools myself.~ ~And so, um, I just felt like it was time to write, you know, write something down. Often the act of writing helps you think, um, and get your, sort of, your, your thoughts on something formalized. So decided to do, to do an essay on it. So that was the, the immediate motivation was a, basically a, a question from a friend.~ Noel: ~Nice. Was there any, I mean, we could, we could kind of go point by point through the, through the blog, but I think it's,~ ~it's, I'm more, I'm more interested, like in particular, were~ ~there any, um. You, you mentioned that like, go, going through the, the process of writing it kinda~ ~helps, you know, like stratify, I get some of these thoughts figured out.~ ~Like~ ~were you, were you surprised at how, in any like, conclusions you drew or how it kind of oriented you when you went to get to get this kind of structured and all laid out?~ Carson: ~No. Um, you know, and that's always bad, you know, it's like if you, if you, what's the, something I've always like, tried to keep in mind is like, if there's, if there's nothing that you believe to be true that makes you a little uncomfortable,~ Noel: ~Yeah. ~ Carson: ~it's, it's probably not the truth that you're after,~ Noel: ~Mm-hmm. Right. ~ Carson: ~Um, and so, uh, you know, I think there's, there's, ~there's so much insanity right now around the ai. Like meme plex of like, you know, okay, we're not, we're never gonna need programmers ever again. ~Programmer~ programming is done to solve problem. ~Um, ~and then on the other side, like I'll never touch any software that has been touched by AI or ~like, you know, ~there's like very little rational discussion in the middle. And so at some level this was [00:01:00] my attempt to. I try and think rationally about the situation,~ um,~ with the admission that I'm not like an expert on ai. And,~ uh,~ I've been surprised at how much it's advanced in the last year in particular. ~Um, ~and so I can't, ~you know, ~I don't have a crystal ball or anything, but I just wanted to ~sort of ~have something that I could point people to and say, look, this is my reasonable, this is my rational, my attempted a rational,~ uh,~ way to address this problem or this situation. Your question. Noel: ~totally, ~totally. ~Um. Yeah. So I, I, I feel, again, I don't, I don't have good data here and I, I suspect there's not a lot of people, uh, I specific suspect there isn't much that exists. But~ I have a suspicion that even,~ um,~ like the more those who are more skeptical initially,~ and,~ and maybe more so, those who are more s skeptical of AI initially are ~kind of ~like they're faced with this thing that we've all ~no~ noticed in the advancements. Like how much better. Just like ~we, you know, ~the LLM sex generation has gotten over the past, ~you know, ~six months. ~So I, I feel it's a little bit, it's, it's a little tricky to kind of balance that surprise~ ~against this kind of like the, the, I dunno, air quotes, wisdom people have had that, like, no, not nothing.~ ~Like, we're not, we're not gonna hit a point where everything's replaced.~ Like ~how ~how are you kind of internally. Balancing this like surprise at the progress against this kind of confidence that there's still going to be, ~you know, ~work that needs to be done. Carson: [00:02:00] Yeah. ~Well, ~I think like in the article, one thing I touch on, and this is something that a lot of people say, is that going from. Going from programming in a high level language, and I would call, when I say a high level language in general, I mean something like in the family of C or Java or Python or something like that, where ~you're not, ~you're not at the assembly level. I actually, I teach the systems class. And the compilers class at Montana and Montana State. And so I'm pretty familiar with that world and exactly like what the transition between ~a, ~a high level compiled language and assembly is. And so what you'll hear people say sometimes is, okay, ~well ~this is just like us moving up from,~ uh,~ assembly to a high level language. Now we're moving from high level language to prompting ~or, ~or programming ~in, ~in the English language. ~Um. Uh, I, ~I don't agree with that. ~Um, ~I don't agree with that because while I'm not an AI expert, I know enough to be dangerous. I know enough to say that the content that comes out of an LLM for a particular prompt, it prompt is stochastic. Like you have no [00:03:00] guarantees of what you're gonna get in a way that's not true of a high level language being compiled to assembly. ~Um, when, ~when you talk about ~the, ~the compilation step, you're talking about it a deterministic. ~Uh, uh, ~situation and also ~the, the, the, ~the target architectures,~ the, the, ~the number of choices possible when you're talking about going from a high level language to an assembly language or to,~ uh,~ to a machine language target,~ uh,~ is relatively constrained in a way that's just not true with like general software. ~Um, ~and so I think those are two, two things that make that comparison or that simile, I should say, I guess can comparison as well. But the similes like that,~ I, I, ~I think those are two, two things that really make it dramatically different,~ um,~ and different in a way that,~ um, you know, ~one thing ~I ~I try and say ~in the, ~in the article is like, ~you know, ~juniors have to write code. I know this is Mo, mostly seniors, but seniors need to hear that like the juniors need to write code because if they don't write code, they can't read code. And if you can't read code, you're at the mercy of an LLM. And I know there's a, ~you know, ~there's a lot of vi like pure vibe [00:04:00] stuff out there right now and I've done some for like demos for classes and it's worked reasonably well. ~Um, ~but. For mission critical things and for, ~you know, ~business critical things, like you gotta understand what's going on under the covers. Now, do you have to, ~you know, ~again, I can be the devil's advocate here and say, ~you know, ~do people understand the assembly? That's ~like, ~ Noel: ~Right. ~ Carson: no, but ~that's, ~that's a different class of problems than, ~you know, ~allowing an LOM to generate, for example, your business logic. And I've seen enough like LOM. Just flat out lying, like for lack of, I mean, you can't lie. It's not sentient as far as I can tell. ~Um, but j~ but just like saying ~like, ~yep, I'm done. And then I go and look at it and I'm like, ~this is not, ~this is not what I was talking about at all. And,~ uh, if you don't know how to,~ if you can't read the code, you're not in a position to, to make that judgment,~ uh, in, ~in any meaningful way. ~Um, ~I do think that there's, ~you know, ~the possibility of ~like ~the way that programming. Is done changes. ~Um, you know, ~I think LLMs make certain, they make code very cheap. ~So, um, ~as an example, I used to be very down on unit tests,~ um,~ and I used to be very,~ like, I would, ~I would recommend,~ uh, uh, ~[00:05:00] integration tests, so like at the API level, ~you know, ~and then try not to mock things out too much. Noel: ~Mm-hmm. ~ Carson: get tests that hopefully stand the test of time and don't change. ~You know, ~my criticism of unit test has always been as your implementation changes, then you know, it Noel: Change one parameter. You've gotta change you 200 tests. Carson: E exactly. And ~you know, the, ~the, and the unit test people would say, well, you just throw the tests away. And that's true to an extent. But then the reality is ~like, ~particularly if you're new to a code base, like you come in, you break 200 tests, do I throw these away? Or did I really break something like ~it's, ~it's very Noel: and ~it's, it,~ it becomes hard to know ~if,~ ~if, if it's like,~ if there's enough complexity in those tests in the system overall. Carson: And ~uh, ~as I think Stalin said, quantity has a quality all its own. Like when you've got, when you've got too much, like you've got a bunch, it's just, it's got its own quality to it. So anyways,~ um, you know, ~and ~I, ~I wonder if. LLMs changed the calculus there because it's so easy to ~like ~regenerate a unit, test suite. So maybe [00:06:00] it's less difficult, it's maybe it's easier to analyze,~ like,~ okay, is this breaking because of an implementation detail or because I actually broke something fundamental. ~Um, and so I think it, it's, you know, ~I think it is gonna change,~ uh,~ the calculus on some of these things,~ uh,~ for sure. But,~ um, you know, I'm, I'm, ~I'm, as I say in the article, I'm less. I convinced that like coding,~ like, you know, ~coding's done or something, ~you know, ~coding's a solved problem is what you sometimes hear people. ~Um, ~I just, I don't know, man. Noel: Yeah. Carson: ~know, ~like someone's gonna have, someone's gonna have to understand the code and the, ~you know, and, uh, I,~ I think the way to under ~to, ~to be able to read code is to write code. ~You know, ~like you have to write code to learn how to read it. And,~ uh,~ so that's again why I say ~the juniors, ~the juniors have to, the juniors have to read the code, ~so.~ Noel: Yeah. Yeah. No,~ I,~ I think ~that, ~that ~there is a, ~there is a real risk there. ~You used, ~you used the,~ uh,~ the phrase or the term, the sourcers apprentice trap in the post. Did, I guess I'm curious, just real quick, did you, was that, is that like a known turn of phrase? I thought that was a very clever, Carson: No, that's just the thing that always, ~like, you know, the, ~the,~ uh,~ the vibe bros just ~like, ~it just in my mind every time for whatever [00:07:00] reason, like the scene from Fantasia just pops into my head of this person that has no idea what they're doing. But is like powerful for reasons they don't totally understand and then it gets completely outta control and they can't, ~you know, ~and there's a, ~you know, ~it's just confirmation bias, but I think like the head of safety at ~like ~Google's ai, ~like ~was like installed whatever the claw thing is and gave it Noel: is this the email thing? Carson: Yeah, and it just started deleting her emails and it's like,~ like, you know,~ Noel: ~Mm-hmm.~ Carson: it's confirmation bias. It's one of those things that's like almost too good. Maybe it's an AI story just made up to make me feel better about things. But it just, ~you know, ~that's a classic example of ~like, you know, ~this is,~ it's,~ it's cool. Don't get me wrong. It's really cool and very powerful. And I,~ uh,~ I, ~you know, ~I, in the article, I talk about how I've been using ai. ~Um, ~and I found it very effective. ~Uh, you know, it's, ~it's a, it's helped me improve my classes quite a bit. ~Um, ~and,~ uh,~ it's helped me plan changes that I wanna make, that ~I, ~I wouldn't have been able to plan otherwise [00:08:00] because I just don't have the bandwidth to ~like ~do the analysis and stuff like that. ~Um, so. ~Effective for me. I don't wanna say it's not like there's, I think there's definitely something there. ~Um, ~but,~ uh, you know, I, ~I just think,~ uh,~ I was trying to give a more balanced perspective on it and in particular. ~You know, ~and this is against my self-interest at some level. Like it'd be better if no one knew how to program and like you and I were the only people left that knew how anything worked. ~Right. ~Like that would it, it would be better. And maybe that's part of the motivation of some of the people out there who are like, don't be a programmer. ~Um, you know, ~it's like the hope that like we turn into these highly paid COBOL programmers or something like that. ~Um, but you know, ~I've, my kids and my friend's kids, like I care about 'em and I, ~you know, ~there's the, I think there's gonna be disruptions in the interest or in,~ uh,~ excuse me, disruptions in the industry. But,~ um,~ the,~ uh,~ the. ~The, ~the industry is not gonna go away. I have a hard time seeing that. And in fact, I could see it going the other way. I could see there being more need for programmers,~ um,~ because of the ubiquity of ai. ~Like ~what's one of the big stories right now in ai? ~Um, well, ~SAS is [00:09:00] dead. ~You know, ~everyone's gonna have their own, no one's gonna pay for anything because they're just gonna make their own SaaS thing. I think that's very shortsighted because. 70% of the value of SaaS is that you don't have to manage the dang thing and ~like ~deal with the bugs and all the rest of it. Now there's a lot of really bad SaaS software out there, very abusive user abusive SaaS software out there. And so maybe this is like a market dynamic that helps change that fact. ~Um. Uh, ~but if you,~ if, if that, ~if that thesis is true, then you know you're gonna have to have programmers. It's not gonna be ~a, ~a business analyst, like keeping up the certain mission critical piece of software that makes the business go. It's gonna be someone technical who understands what's going on, understands the deployment. So that's one thing I talk about in potential takeaways is ~like, you know, ~for lack of a better term. Working on systems architecture, understanding systems architecture, like how a deployment works, how a database gets backed up and communicates effectively with a middleware and all the rest of it. I think that's gonna,~ uh,~ [00:10:00] become more valuable over time. ~Um, ~and, ~uh. ~Maybe raw coding becomes less important. ~Um, ~I still think it,~ you,~ you have to write code. ~Um, ~and ~you know, ~so juniors have to write code to learn how to recode. Seniors have to write code so that they don't become dumb. Because if you don't exer, if you don't exercise your brain, you're gonna. ~You know, ~you're gonna just turn to,~ like,~ the MIT study already has shown ~like, you know, if you, ~if you don't engage with the material,~ you're, you're, ~you're cooked. ~So,~ ~um, ~so a lot of, it's just a lot of things like that,~ um, you know, ~that I'm trying to,~ like,~ in that essay, I'm trying to like, bring together and be like, okay, let's,~ like,~ let's analyze this in a rational way and think about the, like some of these claims from a rational standpoint. ~So.~ Noel: ~Yeah. Yeah. I, I'm, ~I'm with you on, I guess several points there. ~I kind of, ~I want to go through a few of these. ~Like at the beginning you mentioned how, um, I guess kinda in the, ~in the beginning of that explanation,~ you,~ you, were, ~you. ~Speaking to how, ~like~ we were talking about testing originally and how before it was like, well, there's a cost to maintaining tests because having to ~like ~write them and edit them is a lot of overhead. But now we have probably ~the most effective code writer, right? Like~ the most effective paradigm for writing code ever. But again, ~it's kind of at, at odds with this, it's,~ it's hard for a human to understand and go in [00:11:00] and read all of this ~thing.~ ~Still do you? As,~ as like an educator,~ you're probably,~ you probably focus on this problem more. Do you think, do you think~ Do you think, ~we'll see ~kind of ~an evolution of,~ um, like~ coding best practices as a result of most development work being like, ~you know, ~agentic or largely augmented in some manner? ~Like, was this,~ is this gonna change our paradigms and ~how, ~how we think about abstraction and all that stuff? Carson: Boy, I just don't know. I don't think so because I don't, I think, ~you know, ~there's ~the, ~the silver bullet essay that every computer programmer and probably every person in the technical industry should read the No Silver Bullet essay, and they talk about accidental versus essential complexity. And my, one of my arguments for in favor of high level programming languages is that they actually ~like ~eliminate most of the accidental. S ~uh, ~complexity when compared with like assembly programming, which is just miserable and you gotta keep track of a million things and all the rest of it. ~Um, ~and LLMs do nothing about accidental complexity. They just [00:12:00] make it easier to generate the solution. They don't eliminate. Accidental complexity, or they don't eliminate essential complexity from the problem. ~And, ~and e even worse, they're a stochastic solution. And so the cha, ~you know, you're, you're, you're, ~you're taking chance, like you're throwing chance in there,~ like,~ like quite explicitly. Like you set a temperature on the model and ~you, ~you just, ~you know, ~try and get it right for, ~you know, ~it's just, it's very different than the high level to assembly jump. ~Um, ~and ~so, uh. You know, uh, ~will that change the fundamentals of computer programming? I just,~ I,~ I don't think so. I think it's still gonna be, ~you know, ~controlling complexity. It is. ~Like, ~that's the big thing. That's the other main point that I make in the,~ uh, in, in the, ~in the article is that, ~you know, ~computer programming is about two things, solving problems with computers, and then doing so in a way that minimizes or at least manages the complexity effectively. Prompts don't necessarily do the second they or do the first increasingly effectively, ~but you know, ~it's not, it's usually not the first thing that matters. It's the [00:13:00] maintenance code is typically read more than it's written, at least it has been in the past. I don't know if that's gonna change. ~Um, ~but I just feel like it doesn't, ~you know, if you, ~if you buy ~the, ~the essential versus,~ uh,~ accidental complexity split as being like the core thing,~ um,~ I don't see LLMs. ~Uh, ~fundamentally changing that, and I do, I see a lot of situations where it's making things significantly worse ~because, ~because you're able to generate so much code, like you don't get that feedback loop that you used to get. ~Like ~there used to be. So complexity tends to grow exponentially, or at least geometrically, but ~I think, ~I think exponentially on most projects. ~Um, ~and you used to get feedback on that, like you'd hit this spot where it's ~like, ~ugh. ~You know, ~like ~it's really,~ it's really, this is really hard to make changes in this system and we've made some bad decisions. Maybe we need to decouple things ~and, ~and so forth. ~Um. ~And that level of that. And ~when you're, ~when you're just generating code, you don't get that feedback necessarily. You can ~kind of ~get lost in the sauce prompting a whole bunch. ~I, ~I've be, I've gotten lost in the sauce Noel: Oh, for sure. ~Mm-hmm. ~ Carson: but it's, you don't get that really [00:14:00] visceral feedback. ~Um, ~and ~so, uh, ~and what, ~you know, if, ~if there's a lot of accidental complexity bubbling around under the surface because of bad choices that were made by a. Again, a fundamentally stochastic system. Like it's, if you can't read the code,~ like, you know, ~I've, yeah, I think, ~you know, ~I think ~there's, ~there's you just still ~all the, ~all the old rules still apply, I think at some level, maybe different, maybe in a different context. And maybe not as much and so forth, but I think controlling complexity is still like job one for seniors in particular is ~like, ~okay, like we can't let this get out of control. We can't fall ~into that, ~into that,~ uh,~ sourcer as apprentice trap wear. Our code. ~You know, ~there's a term in football,~ uh,~ you've out kicked your coverage, like when the punter kicks the ball like too deep Noel: yeah. ~Right, right.~ Carson: and it just gives the guy a chance to catch it and read the field and ~like, you know, ~makes it much easier for him ~to,~ to return the punt. And,~ uh,~ I feel like it's very easy for that to happen. Now in computer programming you're just like, look at this thing that I built, and it's ~like, ~cool. Like how does any of it work? I have no idea. Noel: ~Right. ~Yeah. [00:15:00] Yeah. Carson: ~You know.~ Noel: ~I mean, I think, I think that, like,~ I think most would agree ~that ~that ~is a, is a problem, ~is a problem right now. And ~like ~is something, ~you know, to, ~to be cognizant of for sure. But ~I, I mean, I, ~I think where opinions more likely differ is like. ~Where, you know, like how, where, ~where along that line ~are, ~are we willing to have code that is ~like, ~eh, like I'm pretty sure that's right. ~Like~ ~I, I, you know, like I, the,~ the machine ~machine~ made reasonable decisions here. ~I kind of glanced over this section before~ ~and like, does that again, like, back, back to the prior question because I think it applies is like to, to what, to what degree do we care about code, I guess. Maybe, maybe let me back up.~ It feels like we've optimized a long time on kind of language paradigms and our,~ um, just kinda~ best practices being,~ um,~ oriented in such a way to minimize,~ um, kind. ~Complexity from the perspective of just like a human reading and writing code. Do you think that there's gonna be like any kind of fundamental changes there that may be like an easier abstraction? So it's like ~we can, ~we can understand what something is doing without needing to kind look through code like we did before because we're confident enough in what the LLMs spit out, or is it always gonna be LLMs writing code that we kind of designed to be human? Readable and writeable and then us ~kind of ~having to walk it ~or do, is there, ~is there a potential for ~like ~there to [00:16:00] be some separation? ~Like, ~eh, we'll trust the docs, or, ~you know, whatever, whatever, ~whatever the LM Carson: ~I,~ ~I, ~I think there's an argument for testing,~ like, we're gonna, we're gonna,~ you know, even if I don't understand the implementation. I'm gonna look at the tests and ~like, ~understand the tests and ~like, you know, ~I could see a world,~ I,~ I wouldn't wanna work at this company, but I could see a company that says ~like, ~look, your job is to understand the tests. Your job is basically to become more of a qa slash manager of these, rather ~than a, ~than a coder. ~Um. know, ~there's a part of me that dies inside thinking about that because I like writing code for the most part. ~Um, ~not always, but for the most part. And I like well-written code that looks right in my opinion. A lot of people don't like the way I write code, but,~ um, so, uh, you know, ~but I just, again, ~you know, ~I feel like if you can't, if you can't look at the code and see what, and understand what it's doing, ~like. You know,~ I don't know. Is that any different than using a library that you don't understand ~kind of ~'cause you're at some level more responsible for the code that's there? Noel: ~Mm-hmm. ~it feels different though. Yeah. Carson: feels different 'cause you're deferring to ~like ~an [00:17:00] actual expert, or at least in the past who knows now. Noel: ~Right, right.~ Yeah. you, assume the library's battle tested versus ~like, ~this is a vibe thing that is probably right. ~Like, ~Like, there, there's a, there's an interesting, like trust barometer. It's ~like, ~do you trust the library more or do you trust something that LLMs spit out And ~like, ~I'm not sure where that scale is right Carson: Yeah. Yeah, it is. And ~you know, ~again,~ the,~ the warning that I would put out to people to, especially business people that don't really understand or care too much about computer programming is like there's a complexity curve that goes at least geometric and probably exponential. And if you're LLMs, like I've seen this. And I, not my work environments, but friends have come to me and been like, these people in my company are just coming in with these ~like ~a hundred thousand line LLM generated prs that they're like, look, I fixed all this stuff. And it's like, don't even,~ like,~ that's crazy to Noel: Yeah. Yeah. ~Mm-hmm. ~ Carson: I'm not saying you can't do that with ~like, uh, ~what I think Lady [00:18:00] Bird. Someone redid their JavaScript implementation in rust using LLMs or Noel: yeah. What was that? It was CloudFlare. Oh, maybe this is something different. CloudFlare redid like Ave version of React. Carson: Okay, Noel: Yeah. Anyway. ~Yeah, ~ Carson: alright, whatever. And ~like, ~I'm not saying that ~like, you know, ~that can't be done. ~Um, ~but I would be very skeptical in most companies where you're not dealing with like super high-end engineers to let something like that in. Because ~like the, you know, you go from. ~You go from one state to another state, and I've just seen so many subtle changes, particularly like this. ~Uh, ~this was in a platform level thing, like it was something that the rest of the company was built on top of. And it's ~like, ~and then real money's involved just like that's, that is not a good idea. That is a bad idea. You guys need to be much more incremental and like much more. ~Like, you know, the, the, ~the term that I use in the article is deliberate, Noel: ~Yeah, ~ Carson: being deliberate rather than just fire off a prompt and ~like ~go do, should go shop on Amazon or [00:19:00] whatever, which I'm guilty of,~ like, you know, ~I'm guilty of it. ~Um, ~but ~uh, ~that, ~you know, ~I think like they're responsible. People need to look at that skeptic, very skeptically. ~Um, you know, ~there's been, I think there, ~you know, ~part of the problem is like, it's like there's always been this emphasis on speed in coding. ~Like, you know, ~particularly for, I think for juniors, like junior programmers are really impressed by people writing code fast. ~And I, ~and I think business people are really impressed by people writing code fast. And ~when you, ~when you get more mature and more of a senior, you're like, it's not really how fast you write the code,~ it's,~ it's how you write the code. It's the code that you write. ~Like ~what code do you choose not to write is often like one of the most important Noel: The code golf game is like a,~ yeah,~ Carson: Yeah. And not even golf, just like the willingness to say ~like, ~we're not doing that feature because I know it's a disaster and it's not gonna add enough value compared to the complexity of that feature. ~Um, ~and ~so, uh, ~that I think is like in the excitement right now. That style of thinking is, ~you know, ~and it, we go through, I feel like we've gone through [00:20:00] this probably four times in my career where ~like ~some revolutionary thing comes out and everyone's ~like, ~it's gonna change everything. I, this appears to be more revolutionary than those ones right now, from where I'm sitting, like it appears to be more significant. ~Like ~this appears to be, to me, as significant as, for example, garbage collection. Like garbage collection, ~you know, ~in the history of computing. What are like the big things that like made a difference? ~Like, ~okay,~ like, you know, ~operating systems with processing,~ uh,~ isolation. That was a big one. ~Um, uh, uh, ~high level languages, so moving up from assembly to like high level languages and then garbage collection and those three things are probably, oh, and then the function call abstraction. ~So, you know, ~it was ~kind of ~there, it was ~kind of ~there in assembly, but not really. You ~kind of ~had to make it up in your own brain, but then high level language has really formalized that idea. So those are like the big things where you really saw a 10 x in productivity, I think. ~Uh, ~the, ~you know, ~all,~ uh,~ for my career, like by the time I came in garbage collection, ~you know, ~was like pretty normal. I was, I started as a Java [00:21:00] programmer, so I was used to garbage collection and,~ uh,~ it's been like, ~you know, ~object oriented, programming's gonna. 10 x, everybody that didn't pan out, like ~test, ~test driven development's, gonna 10 x everybody that didn't really pan out the way,~ um,~ patterns are gonna, ~you know, ~pa the patterns movement is gonna, that didn't really pan out. So this may be the first time I've seen,~ uh,~ a technology that might 10 x people. But ~the, ~the 10 X I'm not super pumped on from what I've seen so far Noel: Yeah. Yeah. Carson: it doesn't feel to me like it makes. People like able ~to, ~to deliver 10 times the value, Noel: ~Mm-hmm. ~ ~Right, ~ Carson: ~10, ~maybe 10 times the code, but not necessarily 10 times the value,~ so,~ Noel: ~I mean, I, I think it,~ it does depend a little bit on domain. It's like ~the same, ~the same thing you keep seeing where there's like ad ad like just vibe coding advocates. ~Like, look how many, like ~look at this crazy project I spit out in an hour. And ~like, you, you,~ I think you can do that 10 times faster than before. But like an overwhelming number of those are ~like, I don't know, ~it's like landing pages and very simple crud apps and things like this, and ~they're, it's like as,~ as soon as you start ~kind of ~ramping up on that, the [00:22:00] complexity curve, I think, and even just anecdotally from having worked on all kind of spectrum of apps, we have like internal tools and stuff we're working on,~ it's~ ~like. Like you,~ as you start climbing that curve, you hit this point where it's like the returns diminish extremely quickly to the point that you're underwater. ~like, like, ~and ~it's, ~it's hard to know, I think where a given project falls. So that's like a muscle. We're all trying to ~kind of ~train right now to figure out like, when is this a problem I should delegate versus ~like, ~I need to go in and be intentional here. Carson: Yeah. No, I know. I think, and I, that's another thing that I say is ~like, ~I don't, I think we're still trying to figure this out. ~You know, ~anyone who's super convinced. About one thing or the other right now is ~I, ~I think, lying to themselves because I know for a fact the way that I code now is different than the way that I coded six months ago. Noel: Oh yeah, I've been saying the same thing. Yeah. Carson: particularly for,~ uh,~ for code that ~I, ~I just don't care too much about,~ like, you know, ~I don't wanna say I don't care about it, but ~like, ~demos for my students. Like it's,~ I, I've, ~I've had to change my brain because. It used to be, I'd be like, oh man, it'd be so great if I had a demo [00:23:00] for this. And now it's ~like, ~Dick Carson, there's no excuse for you to not have a demo for this, Noel: Yeah. Yeah. Carson: just literally type the words that you just said into a box and it'll create the demo. And the demo's gonna be right like 80% of the time, and then it'll be close enough. That you can probably get it to work out like another 15% of the time. ~Um, ~and so that's a very different head space to be in than I used to. ~You know, ~I used to live in ~like, um. Uh, uh, ~just la ~uh, ~last semester I teach, so my compilers class, we target the JVM. We, we target J Java Byte Code. And one of the things that's hard to understand in the JVM, the way JVM works is there's this thing called an opera stack, and they slots and ~like, ~that's what a frame, like an ac ~uh, ~a function frame looks ~like. ~And it's really, there's not, there's a couple of diagrams on the internet, but there's not really a good visualization of it. I know. Noel: ~Mm-hmm.~ Carson: That did this, but I don't know anything about Tuey and I don't want to deal with it. And, but I hammered,~ like, you know, ~in the background while I was doing other work, I hammered on Claude for, ~you know, ~a [00:24:00] couple days and got something that's very good, like very, ~you know, ~and ~uh, ~it's ~like, ~okay, like this is ~like, ~my students have a much better understanding now of the JVM because of that. And ~so, you know, ~I dunno what to say, like that's a thing that happened. Noel: ~It's hard and it's, it's, ~it's hard too, 'cause like those are low stakes. If there's a bug in there and some it's like, eh, whatever. ~Like, it's like~ it's better than having no demo. ~Um, ~and if you're not iterating on it long term, 'cause I feel like that's a thing that I'm struggling with is ~we~ ~have, like,~ I have some tools, stuff I've written for myself, and it's like when I come back to it and I'm trying to ~like ~pick it back up and I need to do like a refactor or add something kind of fundamental. It's hard, especially if I don't have a good like test paradigm set up. It's not well exercised. It's like weird stuff will start breaking again and in, in ways that I would never have expected it with human written code. ~Like,~ like this page just isn't wired up to do anything anymore. We just skipped the implementation and you said to do, but you never told me about it. ~Like,~ ~okay. Um, like ~that kind of stuff I think can be frustrating. Carson: yeah. It's exactly, it's like you have to, and ~you, ~you don't know in advance like what ~the, ~the maintenance. Calculus is for a particular piece of [00:25:00] software ~that's really, ~that's really hard to do. ~Um,~ Noel: It's like the estimating problem, ~like we've~ ~had, like~ this has been a huge problem in computer science forever. It's like ~where does the complexity,~ where's the hidden complexity? ~And it's like ~you kind of don't know yet. Carson: Yeah. I continue to believe that there's no silver bullet, Noel: ~yeah, yeah, ~yeah. Yeah. Carson: ~know, ~I don't know. I do, ~you know, ~one, one. So if you wanna start,~ like,~ I, ~you know, I, ~I'm trying to think. ~Like, you know, ~you try and think expansively about stuff. ~Like, ~okay, I tend to be pretty conservative and ~like, you know, ~I'm an old guy and so I'm grumpy and like all the rest of it, right? ~Um, but you know, ~you do, it's good, a good exercise to be like, okay,~ like,~ let's take a step back and think about what, like what are the weird, what are the weird possibilities that could come outta this? And I'm gonna offer you two weird possibilities. Number one, what if. Universities, which have not done a great job of providing a lot of value in computer science, in my opinion. ~I mean, if, ~if there's any profession where going to college is not necessary, if you're a smart person, you can figure out computer programming, and at least in the past, you can go out and get a job if you're willing to lie on your resume. That's probably still [00:26:00] true. Noel: Oh, for sure. Especially ~like if we're,~ if we constrain it to things we've considered, like, you know, engineering like fields kind of thing, right? ~Yeah, yeah,~ Yeah. For sure. Carson: And ~so, um, ~but I wonder if, ironically. If universities a university degree, and this is in my self-interest, so take it with a grain of salt, but I wonder if they might become more valuable over time if the universities commit to in-person testing because Noel: forced Carson: so easy to cheat. On everything now. It's so easy to cheat on everything code related that I wonder if university degrees and are going to once again become signals for competence in. Computer programming because like you're forced to ~like ~go and put your butt in a chair and ~like, ~that's what I did. I, this semester I switched to in-person quizzes, which I'd never, I'd always done online because like, why would you do this ~old, ~old timey? ~Like, ~it's dumb. And then I was like, I got kept getting the same answers and I'd see like LOM poisoning between questions. It was just like so disheartening to ~like, you know, ~see this [00:27:00] stuff. And I'm like, okay, I guess we gotta go back to in person. So that might be an interesting unintended. Like outcome that comes out of this like new like world. Noel: ~Do you, I guess, are you, ~are you thinking that that is strictly like Compsci or do you think ~that ~that's ~kind of ~just higher ed across Carson: I think,~ I think, ~if ~the, ~the higher ed, because it's such ~a ~a, a lumbering dinosaur has all this infrastructure. Available for in-person testing. ~That might be, ~that might be the only thing that can actually give you an objective like measure of like how competent someone is. Like by actually, it's just one of these ironies of history that like, by being so backwards in some ways, like actually having the desks and how, ~you know, ~like we've got a printer that's ~like, you know, ~an industrial printer. I feel like I'm back in the 1990s or whatever. ~You know, ~it's there. ~Um, ~so I wonder if that might be,~ uh,~ something that comes outta it. And another one, and this is a little bit spicier, is I wonder if the real danger for [00:28:00] AI is actually outsourcing. ~Like, ~I wonder if AI. Changes the calculus on outsourcing software development to other countries. ~Um, ~because ~you know, ~the argument in the past, and this isn't always the argument, but ~uh, ~has often been like, look, I can get 10 programmers and come country X for the price of one programmer in. In the us ~Well, ~okay, but like now, one programmer in the US with an LLM can produce 10 x as much code and you don't have this coordination problem with ~like, you know, ~timing and like people trying to ~like ~be up at night or whatever in order to communicate. So I wonder if it's gonna change the calculus there,~ um, uh, ~pretty significantly as well. ~Um, ~so a lot of like things that I don't see being. That's ~like, you know, ~that seems like that's a possibility to me. ~Like, you know,~ people, ~you know, ~and one thing I, at one point I make in the article is,~ um,~ business people saying, great, we don't need programmers anymore, but I can just as easily see a programmer going, great, I don't need a business person anymore. ~Like, ~I can have an LLM [00:29:00] set up,~ uh,~ a, ~you know, uh, ~set up ~a, ~a Google Ads campaign as effectively as anything else. ~Like, ~so ~what am, ~what am I, why aren't I doing it? ~So, ~ Noel: ~yeah. That, that kind of, I'm sorry, I don't wanna cut you off. Finish your~ Carson: ~It's okay. That's it. That's ~ Noel: ~no, that kind of, that kind of brings me, brings me out to a, like a kind of just to,~ I think ~this, ~this will ~kind of. ~Bring us back to where we started,~ um, in a, ~in a neat way. Again, gi given that the impetus for this post you wrote was ~kind of this like people thinking about what to get into.~ ~Like where, ~where do I spend my time and energy and I think. ~I mean, I, ~I don't think this is like a hot take, but I think engineers are probably having a little bit more intense and experience in, ~in like ~staring down the barrel of what AI is capable of because our tools as always advance more quickly because we're building tools for ourselves. We know. How we work. Right. So ~it's, ~it's easier for philanthropic to build tools for developers as the developers in philanthropic to build tools for developers than it is for accountants, just kind of innately, right? Like they ~kind of ~understand ~the, ~the game a little bit more.~ Do you think, I guess this my, my kind of my, I don't know.~ The way I've ~kind of ~tried to ground myself here is ~like. You know, if, ~if it's coming, if ~like ~this massive replacement and ~there's like, eh, whatever,~ we won't need developers anymore.~ I'm kind of sitting there like, ~if we don't need developers anymore, we're not gonna need ~like, ~information workers in any capacity anymore. ~Like, I don't, I don't, ~I don't see how we [00:30:00] would really Carson: that's capable of turning out a production SaaS system is probably capable of turning out a PowerPoint slide Noel: Exactly. Or doing your taxes or, ~you know, ~like you name it ~like, like,~ ~uh, ~like legal stuff. ~I mean, I, I don't, ~I don't know for certain, but to, to your point on ~like the, ~the business plan, ~it's like, well, I feel, you know, like if we, if, if the, ~if the,~ uh,~ near singularity. ~Can ~can pump out this a crazy complicated production SAS system. I would think it could also give me a pretty, pretty effective Google Ads campaign. ~Do.~ Do you think ~that ~that's true or do you think that, ~you know, ~software is a little bit more easily impacted by this? 'cause at the end of the day, we are just like writing text. Carson: ~Um, well, I mean, you know, ~lawyers write texts, ~uh. ~fundamentally work with numbers and write some text. ~I don't, ~I don't, ~you know, ~there's deterministic rules for accounting to an extent anyways. ~Um, ~like I don't see any knowledge based system being safe. ~From, ~from AI automation. ~Um, if, ~if that's, if the goal is, ~you know, ~human replacement,~ um,~ I, ~you know, ~one thing,~ I,~ I've said this before, I didn't say it in this essay, but I ~kind of ~imply it, but I prefer to think about human. ~You know, ~humans are an end. They're not a means. That's [00:31:00] something that appears to be Noel: Yeah. Yeah. Carson: deeply lost in our society Noel: Yeah. Yeah. Carson: at this moment in particular. Noel: think they should be the end, but you know, alas, here we are. Yeah. Carson: ~they, they, ~they're not means they're ends Noel: Yeah. Yeah. Carson: it's,~ uh,~ so ~like, you know, ~to me it's like great, we can make people more efficient and, ~you know, ~you can do your job more effectively. Not ~like, you know, ~we're gonna throw you out on the street. Good luck. ~Um. ~I do, ~you know, I, I, ~I don't have a crystal ball,~ so, uh, ~I can't say ~what I, ~what I can say and what I say in that article is effectively ~like, ~look, solving problems with computers is likely to remain a useful skill the way precisely that skill is exercised may change. But it's going to continue to be a skill and the world is very big and there's a lot of companies and like places that need people that can use computers to solve problems. And so I don't think that AI changes the calculus too dramatically as far as what ~the, ~the work and the mental. [00:32:00] Exercise necessary to get to be an effective programmer versus an effective, ~you know, ~prompter or manager of LLMs. ~Um, I, ~I do think it changes the flavor a little bit. ~Um, ~as I recommend in the article I say working on communication skills, like your ability to write,~ uh,~ just pros in general,~ um,~ is probably going to become more important. ~Um.~ Noel: Yeah. Carson: But,~ uh,~ but the, ~you know, ~the fundamentals of computer science ~or, ~or computer programming or whatever you wanna call it, of understanding what,~ like,~ exponential time is versus linear time or login or, ~you know, ~understanding ~like, ~okay, we should be using Redis for our cache for this database, or whatever. Those things aren't going away. ~Um, ~someone still is gonna need to understand that. And,~ uh, so, uh, you know, ~I think right now there is an a little bit of an existential crisis. I, ~you know, ~I, you can see it just,~ I,~ I'm off Twitter for Lent, but ~like right ~at the tail end, right at the tail end before I kicked off, before I just ~like ~closed the window. I just saw ~like, you know, ~increasing mental breakdowns Noel: Oh no. It Reddit's the same way. Yeah. it's the, just ~the, ~the online Carson: so it's ~like, ~[00:33:00] okay, ~you know. ~It'll, it's probably ~the, ~the skills that one picks up when learning to program computers are going to continue to be relevant. ~Um, ~and if they're not relevant in ~the, ~the way that they're currently, just like, you know, and this is one area where maybe the assembly,~ uh,~ maybe the assembly,~ uh, sort of, uh, ~metaphor does hold up. Like you knew how to program in assembly, so you had to learn how to program in C or Pascal or whatever. ~Um.~ Noel: ~Mm-hmm.~ Carson: I didn't notice fewer computer programmers after that transition. ~Um, you know, ~so ~there were, there were, ~there were more, and there was a lot more slop at the time. There was a lot more, ~you know, the, ~the,~ uh,~ the assembling programmers grumbled a little bit about the inefficiencies and all the rest of it. So maybe there is part of ~that ~that holds up. Although, ~you know, ~as I said earlier, I do think there are ~some, ~some pretty big problems ~with that, ~with that simile between those two things. ~Um, so, you know, ~for. ~Like, ~I'm comfortable with ~my, ~my son saying, Hey, I wanna study computer science. ~Um, so, you know, ~I've got skin in this game. And,~ uh, uh, ~the,~ um,~ I just think that, ~you know, ~that way of thinking ~the, ~the computer science mindset or the computer programmer mindset, the logical, being able to [00:34:00] structure large systems to, to effectively encapsulate things, ~you know, um, uh, is, ~is gonna continue to be relevant. Even if the way that we do things changes, I don't think it's gonna change as dramatically to some people, but I think it will change. Noel: ~Yeah. Yeah, I think that, um. ~I think that's probably,~ uh,~ a pretty wise outlook ~and I feel like that's kind of the, you know, ~PE people seem to be having ~the more, ~the more tempered kinda like things are gonna change anyone who's telling you exactly how is a little,~ like,~ is a little overconfident and you should be skeptical. Carson: Yeah. Yeah. I think there's more to it than,~ uh,~ object oriented programming. Noel: yeah. Yeah. Carson: but maybe ~less to, ~less to it than the function. Abstraction Noel: Yeah. Carson: if I was gonna, if right now if I was gonna pin it, I would pin it between those two as far as like how dramatically it changes Noel: ~yeah. ~yeah. And then how, and how quickly and all that. ~Um,~ Carson: ~Well, ~quickly is different. Quickly is ~like, ~this is as fast as I've seen anything Noel: ~is that Yeah, agreed.~ Agreed. Like again,~ I,~ I think ~people are, ~people are changing the way in which they do things very rapidly. ~Again, I'm not, I,~ I don't feel that I'm like, have a. A, a glut of extra [00:35:00] functionality that's been afforded to me just in my daily life or anything by LLM. So it's like ~the,~ will the impact be quick? ~I mean, I'm, ~I'm doing things differently because I'm prompting and stuff, but I don't feel like I'm using technology that's far and away better, kind of outside of that. Carson: Yeah, I think if I was to estimate what my,~ and,~ and I, ~you know, ~I think I'm in a pretty good position to leverage. I'm old,~ so, you know, ~old people aren't good at some things, but ~like, ~but ~I, ~I have a lot of experience programming and I would say that it's probably two x what I can get done. Noel: right. Yeah. Yeah. Carson: Not at quality, but it's two x what I can get done, and a big part of that two x is. ~Uh, ~software, I don't wanna call it throwaway, but software that I don't care is deeply about, like demos for students. That's the thing that like sticks out in,~ well,~ how would my life be different if I didn't have LLMs? ~Well, ~I would not have nearly as many good visualizations for students about computing. ~Um, you know, ~frankly it's a little bit of a failure on the part of computer science, so we don't have good visualizations for these things already. But ~like, ~okay,~ like, you know, ~[00:36:00] in the past that required ~sort of ~an artistic bent and like it was, ~you know, ~it was tough ~to do, ~to do well. ~Um, ~and ~you know, ~a lot of the visualizations that I have are pretty janky, but they're like, good enough. ~Um, ~and so that's where if you look at like extra, if two. Mainly content that I wouldn't have been able to create 'cause of time constraints. And it's not necessarily the highest quality X, like my best work is still, ~you know, ~working on lectures and getting the,~ like,~ organizing the lecture effectively, writing essays, working on HTMX, ~you know, ~which I'm not gonna ~like ~let an LOM like just rewrite all that stuff. ~Um, ~and I think that, ~you know, ~the APIs that. ~Uh, ~HTMX presents to the outside world. That's like something an LLM isn't gonna come up with, and I'm not gonna let the LLMs decide, make any decisions about that. I say that in the article as well. So that's about, and that's a big deal. That's a big deal. ~Um, ~but it's not a 10 x for me yet. Maybe I'm, ~you know, ~cooked and ~like, ~not whatever, but I feel like I'm in a pretty good position to, to take advantage of these [00:37:00] effectively. ~Um, ~and ~that's, ~that's I'd say ~where, ~where we're. Noel: Yeah. Yeah. Nice. Cool. ~Well, um, ~that feels ~kind of as good ~as good a point to wrap here as any,~ uh,~ Carson again. ~We'll, we'll, ~we'll,~ uh,~ we'll have you back for,~ uh,~ talking HTMX stuff, ~uh,~ as soon as we can, as soon as it makes sense. Is there anything else, ~I guess, ~you wanted to leave listeners with or,~ uh,~ do you feel like that was a pretty good. Carson: No, I think that's pretty good. ~You know, ~the only thing I'd say is like right now there's like a tremendous amount of stress in the world, and rightly ~so. ~And like just everybody give everybody a break, including yourself, ~you know, ~like it's gonna. Noel: feel it. Yeah. Carson: You are like, the sun is not gonna stop coming up. Noel: ~Mm-hmm. ~ Carson: ~you know, ~being a good person is gonna continue to be difficult. ~Um, ~and ~you know, ~so ~like, ~give yourself a break and,~ uh,~ especially give the ~people, ~people around you,~ uh,~ a break because it's just, I see a ton of stress right now around, ~you know, ~ai. Everything going on in the world and,~ uh,~ and all the rest of it. ~So, um, ~that's, ~you know, ~it's lent so I'm trying to like, really ~like, ~work on myself and,~ uh, you know, ~I think that's, we can't make, we can't make other people be good people, but we can make ourselves be a good person, at least to an extent. Noel: ~Yeah. Yeah. Perfect. Cool. Well, yeah, thank you.~ Thank you,~ uh,~ for the words and ~trying, I need, ~I need everyone telling me ~that I, ~that I should relax, that I can find right now. ~Yeah. Like, yeah. Yeah, yeah. No, it's, uh, it's good.~ It's good. I appreciate [00:38:00] it. Cool. ~Um, ~but yeah, thank you again, Carson. It was a Carson: Yep. ~Yep, ~yep. Have a good one. Bye. Noel: Yes. Yeah.