Code has always been the easy part

(laughingmeme.org)

76 points | by Ozzie_osman 3 days ago

26 comments

  • iainctduncan 12 minutes ago
    The thing that makes me crazy about this article, others like it (and so many of the comments in response to them ) is the naive assumption that whatever the author is used to is always the case.

    It's just not. I've been a developer for 25+ years, and in technical diligence looking at companies getting investments for seven, and have done diligence on 100+ companies. It's ALL OVER THE PLACE. It depends on the product, the company, the team, the way the company is managed, the business domain, etc.

    For some companies, products, and teams.. the code absolutely is the hard part, and building that insanely sophisticated software is worth millions.

    For others, the code is essentially commodity plumbing around some operational knowledge of a domain that makes nice dough with minimal code complexity.

    The world of software is vastly broader than the vast majority of programmers think. And there are a lot of very, very different ways to make money in it.

  • roxolotl 41 minutes ago
    People are missing the forest through the trees. Producing code which implements business logic has always been easy. This has always been true, even decades ago. As of at the early 2000s you could have spent around a rather small amount of money and gotten an app written for you based off of your natural language description by someone in a developing country. But what you got was a big ball of mud. It might correctly implement your ideas, it might not. I know this because I’ve helped make take these big balls of mud and turn them into actual software.

    The hard part is long term maintenance. The hard part is retrofitting new features. The hardest part of all is not building a big ball of mud.

    Mythical Man Month is still an amazing read. 9 agents still cannot have a baby in 1 month because the problem has never been the speed at which we type.

    • gogopromptless 10 minutes ago
      The literal writing of the code was hard. This revisionism about how we were all secretly shakespeare typing monkey scammers pulling the wool over the eyes of the economy drives me nuts. Choosing which words to put in the editor, how to express all these ideas in a limited syntax. That was the big skill.

      Sure, writing a program that makes a machine kind of do something was easy. Lots of people can do that. But then you ship a mobile app to a billion users and discover that people are genuinely wired differently.

      different cultures, different mental models, different expectations

      Now you have to accommodate and express all of that complexity in a language whose only reader is a machine that tolerates zero ambiguity. And you have to do it in a way that other engineers can read, reason about, and build on top of without the whole thing exploding. That's not requirements gathering. Its literally writing it down

      You're doing the thing where you read code like a fish breathes water and conclude it was easy to write. You can read a Nobel Prize novel in a weekend too. The readability is the achievement, not evidence it was trivial.

      Edit: I got pretty heated about this and wrote up a proper rebuttal: https://promptless.ai/blog/technical/writing-code-was-hard-a...

    • threethirtytwo 30 minutes ago
      This article is a coping mechanism. What it's really saying is this:

      "The thing that LLMs are taking over is easy, we humans still have agency over the hard part."

      That's what he's trying to say, and I can tell you, this is not true. Programming was the hard part. That's why we got paid so much. It's the easy jobs that are immune to AI: Gardening, construction work, blue collar jobs,... etc.

      Mind you not easy in the sense that the work isn't hard, but easy in the sense that anyone can do it. Those are the jobs that are ironically safe.

      • remuskaos 25 minutes ago
        Anyone can do construction, blue collar jobs? That hasn't been my experience with contractors.
        • JodieBenitez 6 minutes ago
          I don't know about blue collar jobs but I sure know not everyone can do construction or gardening right. And it's hard to it right. I known, I tried.

          Anyways, "programming" is a broad concept. It can be very easy or very hard, generalization makes no sense.

  • danielvaughn 1 hour ago
    It's very obviously not "the easy part", it's definitely hard. It's just not the only hard part. And there may be other parts that are harder in some sense.
    • jama211 1 hour ago
      Something can be hard and also be the easy part. Imagine you got to see into the future and use a popular app before it was released, and you decided to make it yourself and reap the profits. Would be an absolute cinch to copy it compared to trying to make a successful app from a blank page.
    • mountainriver 1 hour ago
      Also totally depends on what kind of coding you are doing.

      Yeah building a web app can become somewhat easy, but is distributed machine learning? What about low level kernel code?

      • skydhash 34 minutes ago
        Still easy. You just have to learned different concepts. Someone in web needs to be familiar with databases, some protocols like HTTP, DNS, some basic Unix admin,.. Someone in low level kernel code will need to know about hardware architecture, operating system concepts, assembly,... But the coding skill stays the same mostly. You're still typing code, organizing files, and fiddling with build systems.
    • jayd16 1 hour ago
      The easy part and hard are not mutually exclusive.
    • shadowgovt 1 hour ago
      Some code is hard. Most business logic (in the sense of pushing data around databases) isn't. The value is in analysis and action, which the system enablrs, not the machine itself.

      Creating a high performance general purpose database is hard, but once it exists and is properly configured, the SQL queries are much easier. They'd better be or we wasted a lot of time building that database.

    • habinero 1 hour ago
      Honestly, it really is the easy part of the job. Really truly.

      It's difficult when you're first learning but there are definitely much harder skills to learn.

      • 8n4vidtmkvmk 1 hour ago
        99.9% of the code i write is easy, but that's just because of the sort of work i do. Its not far from basic CRUD. Maybe with pubsubs and caching thrown in for fun.

        But that doesn't mean there isn't some tricksy stuff. All the linear algebra in graphics programming takes awhile to wrap your head around. Actually, game programming in general i find a bit hard. Physics, state management, multi threading, networking...

      • carlossouza 1 hour ago
        What's easy for some might be truly hard for others.
        • habinero 1 hour ago
          Sure; but I'm not humblebragging at how talented at coding I am. I'm good at it because I have a lot of practice and experience, but I'm hardly the best.

          It's the easiest part because the hard parts of the job are everything else -- you're a knowledge worker so people look to you to make decisions and figure it out. You figure it out and make it work for whatever "it" happens to be.

        • smrtinsert 1 hour ago
          The people for whom I've seen "coding is the hard part" are typically promoted out of the way or fired. They never entered a flow like those who considered it easy and addictive. The latter are the pillars of the eng team.
      • javchz 1 hour ago
        Totally. I would add that code that "works" it's easy to do. Code that it's efficient, easy to maintain and safe... That it's another story.

        But the sad truth is that most software can be or it's done with shitty code that "kinda works" as long as the CPU it's fast enough.

        • habinero 1 hour ago
          And if you're in one of those jobs, you don't get paid the big bucks.
  • Aqueous 2 hours ago
    If it was the easy part, then why did they pay us hundreds of thousands, sometimes millions, sometimes more - to do it? The fact of the matter is that it wasn't easy, not for a brain that's architected the way a human's is. The fact that computers can now do it much more quickly and arguably - in many cases - better doesn't diminish the act itself - it just shows how far AI has come, and how easily human intelligence will be dwarfed as it continues to make progress.
    • analog31 1 hour ago
      This has always seemed like a paradox to me. Once I got past the initial learning curve, coding seemed easy and fun. But most people can't or won't get past that learning curve, for reasons that I don't think we understand.

      But if coding were hard, then writing small pieces of code would be as hard as writing big pieces. To make an analogy, playing the violin in tune doesn't get any easier, the shorter the piece that you have to play.

      Developing software is hard. Some sort of "phase transition" occurs when a project gets big and complex, where coding is no longer what makes it hard. And writing software in a way that is not a net burden to a project or organization is hard, involving not just complexity but humanity. Most smart people in an organization have subtly arranged their affairs so that their career progress doesn't hinge on the success of a software project.

      I admit that I only say these things as an observer, since I can code all day, but didn't pursue a software development career.

      I also admit that I'm waiting for AI to handle the second two levels of software development. I'll concede that AI can develop software when The Mythical Man Month no longer reads like it was written yesterday.

      • cosmic_cheese 36 minutes ago
        Part of it is learning, but it's just as much coming into the right mental models for it.

        Programs are just virtual machines assembled from numerous smaller parts, not so different from a bicycle, car, or mechanized assembly line, but that's not at all how I thought of them when I was first getting into writing code. I'm not sure I even had a mental model at that point, or if I did it was too simplistic to build anything useful with. It was after my mind picked up the machine model when I started to become capable of writing code and eventually designing and build software from scratch.

      • jayd16 1 hour ago
        Honestly, it's not even the learning curve. It's easy. Most people can think precisely enough to program.

        The difference is that we enjoy sitting in a chair for ~8 hours a day laying dominoes. A lot of folks do not like that.

      • skydhash 1 hour ago
        > Some sort of "phase transition" occurs when a project gets big and complex, where coding is no longer what makes it hard.

        It's in the name. Coding is taking an algorithm specified in some manner (pseudocode, diagrams, natural languages, thoughts,...) and transforming it into a sequence of instructions, statements, and expressions, that can be executed by a machine (either directly or through an automated process).

        We have solved the coding difficulties on several front with things like programming languages (no need to type opcodes), syntax highlighting, linters, snippets, editors, IDEs,...

        But someone still have to come up with the "Algorithm", and that's where it's hard. Usually because it's a combination of two sources: The business domain and the technical constraint. That's where people are failing.

        But we did manage to create a lot of building blocks, like the standard algorithms and their data structures, libraries that provides an abstraction over a subdomain, frameworks that provides a scaffold to the thinking process,... But the developer still have to solve the system. And that system can get complex real quick if he's careless.

        I do believe if you fail at the coding part, that's easy to fix with a few courses (or books) and some practice time. But the system thinking and the solving part is not easily taught. It's not even related to technology other than the latter being the domain it's exercised.

        • Windchaser 23 minutes ago
          Or, abbreviated?:

          Coding is easy; design is hard(er).

    • paxys 1 hour ago
      You aren't paid to write lines of code, you are paid to build, ship and maintain products and services, usually in a complex corporate setting with ambiguous and ever-changing requirements. Code is a very small part of the overall picture.

      Why do you think in most technical organizations the higest ranking and highest paid engineers generally write the least amount of code (often none)?

    • tdb7893 1 hour ago
      My experience is that the higher paid someone is generally the less they actually code. I'm sure some places have very difficult code but in my experience there's a reason that engineers fresh out of college mostly code and the highest paid engineers do things like design, planning, and coordination.
    • raw_anon_1111 1 hour ago
      Most developers in the US are “enterprise” developers working in 2nd tier cities working in banks, government, airlines and unknown startups (including most YC companies) that will never make over $175K inflation adjusted their entire career. Hell the way enterprise developer comp has stagnated over the last decade, they may not see that in nominal terms.
    • jama211 1 hour ago
      They didn’t. No one getting paid that much was getting paid for their code.
    • jayd16 1 hour ago
      If they paid us for coding they would pay by LOC but that's not the case.
    • jppittma 1 hour ago
      coding is getting your foot in the door to software engineering, which is really like, computer systems engineering. We do so much more than code...
      • skydhash 1 hour ago
        Software engineering is more information processing engineering. Code is just the shovel with which we build the trench. Everything is about data, and we build the things that control and process the data based on various events according to some wants and needs.

        LLMs are more like a trench digger with a cat's personality. It can helps in some cases, but are more likely to destroy a field. And good luck if you have some difficult terrain to pass through.

    • habinero 1 hour ago
      Because SWEs don't get paid for code. The code is just one byproduct of making business wants into business reality. We get paid to go figure out how to turn a management wishlist into a reliable money machine.
    • 9rx 53 minutes ago
      Because they could.

      Try running a business that doesn't have the revenues to support high wages and you'll quickly figure out why you will pay as much as possible every single time: It means you can buy your way out of hiring the riffraff. Why do you think these high paying jobs were premised on weird trivia tests and other things that had absolutely nothing to do with the job? Hint: It was a social test to see if you'd fit in to the culture.

      There have always been legions of people in India ready and able to write code for practically nothing. It was never hard or expensive. But they didn't fit in socially.

    • echelon 1 hour ago
      Folks have little appreciation for how soon we're all about to transition to something new.

      I don't know what that entails, but something is going to happen.

      I got into a discussion with some Rust compiler folks yesterday. I called Rust the "final human language we'll serialize our thoughts to": it's easy to write for LLMs, is super type safe, ergonomic, easy for humans to read and reason about, and has really nice deploy characteristics - single binary, no GC, bare metal, etc. If Python and Rust are equivalently easy to emit, you'll probably choose Rust if you're not bound to other choices.

      People quipped back that this was absurd and that Rust is built for decades of future human use, that this kind of talk would put people off of Rust, and that they need to think of the future.

      As if anything will be human in the coming decades.

      Programming languages were punch cards.

      • 9rx 34 minutes ago
        > super type safe

        Maybe if you're willing to write insanity like this:

            struct Zero;
            struct Succ<N>(N);
        
            trait Add<Rhs> {
                type Output;
            }
        
            impl<M> Add<M> for Zero {
                type Output = M;
            }
        
            impl<N, M> Add<M> for Succ<N> 
            where 
                N: Add<M> 
            {
                type Output = Succ<<N as Add<M>>::Output>;
            }
        
        But even then it doesn't really work all that well for any practical use and you'll quickly hit a bunch of other roadblocks if you were to actually try to use it. You're pushing Rust to go well beyond what it is designed for. If we're being honest, in the real world you're going to write something like this instead:

            fn add(a: u32, b: u32) -> u32 {
                a + b
            }
        
        But then you give up the type safety. So it's not really a type safe language in any meaningful sense. Certainly not compared to languages that are designed to be actually type safe. If your only point of comparison is Javascript, then sure, Rust looks pretty super type safe in comparison to that, but in the grand scheme of things it's not type safe.

        If it is just as easy to emit a language that is type safe, why Rust?

  • mcoliver 1 hour ago
    Code was the easy part for people who wrote code day in day out with very strictly defined requirements. But even for someone like me that's been doing it for 30 years...new frameworks, languages, architectures, wiring up 3rd party apis, banging my head because I fat fingered something, greping debug logs, late nights, early mornings and lots of coffee. There were few times where I would call it "easy". I just ideated and built an app optimized for mobile and laptop, and deployed it globally in two hours and built a Roku companion app in a couple nights after the kids went to bed. I had never built a Roku app before and am pleased with the polish for something that went from an idea to launch in two hours.

    Yes I have 30 years of experience and there were still areas that were not easy but man it was fun. Writing the code, building and deploying product is easier than it was before by a huge margin.

    Skicamslive.con if you're wondering what I built. Feedback welcome

    • paxys 1 hour ago
      Small personal projects are really not comparable to professional software development in a corporate setting.

      In fact your example demonstrates what the article says. Yeah the LLM made coding easier, and probably reduced your shipping time from a few days to a few hours.

      Now - since you have solved the hardest problem and have all this valuable code - how long will it take you to turn your product into a business and generate enough money to support yourself?

      That's the hard part.

    • kranner 1 hour ago
      Happy for you, but GitHub has plenty of webcam feed URLs, webcam viewers, Roku code etc. You "built" it for some value of 'building' but it certainly doesn't seem the same kind of 'building' as described in the first three sentences of your post.

      It's nice you got something out of it in just two hours. If the LLM companies are doing their caching right, the next person to ask for this set of apps with prompts close enough to yours can get it in five minutes.

      Also there's a typo in the URL.

    • jama211 1 hour ago
      Well said. But, I understand what they meant, they meant from an organisation’s perspective. Either way, I’ve seen far too many people in HN who fear AI won’t write perfect code, forgetting half the code we wrote before was probably worse.

      I’ve also found joy again in building things, but I never fetishised the code myself anyway, I suppose I just wasn’t built that way, which might mean I was always biased to be like this.

  • mikert89 2 hours ago
    I strongly believe that this is a false and outdated take.

    Code being the easy part was predicated on how long it took to build a product, and the impact that had on product management, sales, and marketing.

    When the time to build collapses, all product/sales/design/martketing mistakes are forgiven. You can pivot so fast, that mistakes in other domains dont matter as much and are reversible

    All of the axioms we previously held true need to be rethought

    • jama211 1 hour ago
      >When the time to build collapses, all product/sales/design/marketing mistakes are forgiven

      I must be living in topsy turvey land because this is literally the opposite of what is true. When the time to build collapses, those things become the criticality of the entire product. From a customer perspective, those were always the things that mattered, the customer story. No customer cares how a thing was coded, they’ve ALWAYS cared about all those other things.

      • mikert89 1 hour ago
        nah youre missing it, if time to build takes 9 months, you better get the product right.

        if time to build takes 2 months, just build it and iterate.

        or just rebuild the product to the customers liking...

    • denkmoon 1 hour ago
      don't worry that we got the wrong requirements from the customer, chose an impossible deadline, priced it wrong, and there's no market, we can just vibe code our way out of it??
      • tylerrobinson 1 hour ago
        The point is that even in case of total product management failure, the cost of failing is much lower both in time and money.
        • denkmoon 1 hour ago
          I don't see it. In my experience with AI/Claude so far, building something with AI then changing direction half way through is a great way to generate garbage structure and garbage code. It takes time to dig yourself out of that hole, possibly more than if you had just slowly built by hand from the beginning all. Maybe I'm holding it wrong.
        • habinero 1 hour ago
          It might make failure faster, but that doesn't mean it's cheaper.

          Users will churn quick if you aren't reliable or useful and a security incident can be company-ending for a startup.

          • 8n4vidtmkvmk 1 hour ago
            Company-ending is a form of failure. The quicker you do that, the quicker you can start your next company.
      • jama211 1 hour ago
        In an odd way you’re absolutely proving the article’s point. The requirements, deadline, pricing, idea, implementation, customer story, these are the things that matter and are hard. Compared to that, code is easy.
    • Guvante 1 hour ago
      Because we don't need to worry about uptime, customer satisfaction, or data integrity.
  • 0xbadcafebee 1 hour ago
    > and nobody got into it because programming in Perl was somehow aesthetically delightful. (The language is referred to as write only line noise for a reason)

    Today we call it "vibe coding" when people use an AI to write software without reading the code, or even learning how coding works. But people have been doing that for ages. Most "Perl programmers" back in the day never even attempted to learn the language, and often weren't software developers. But despite their horrible coding skills, the Perl worked anyway. And thus the language got a reputation for being hard to read, despite it being amazing that it worked at all.

    Perl is still far and away my favorite language. I get things done so much faster in it, and programs I wrote 25 years ago work perfectly today on the latest systems. (Maybe that's the problem? If it were a real language, it would've broken 5 different times by now! And then I get paid to fix it... I think I understand software engineering now...)

  • galaxyLogic 1 hour ago
    It's a bit like saying "Writing English was always the easy part" vs. writing a book that becomes a best-seller or classic.
    • motoxpro 1 hour ago
      I think thats a great analogy. There are a lot more people who can dictate a story page by page to a "writing machine" and create a 300 page book than there are who can write a 300 page book of a the same quality without a writing machine.

      Same with coding. Most programmers, and writers, are average. They are not doing amazing work. They get paid 80-120k, same as the HR professional, or the account manager.

      Creating average work was always relatively easy for writing and coding and is now relatively easy for everyone.

    • jama211 1 hour ago
      Correct! I’d go further and say typing is the easy part of writing a book, and I absolutely agree with that
  • jppope 1 hour ago
    I've written these words multiple times here on HN, and have a draft blog by virtually the same title. I can't agree more with the sentiment, though I think theres some nuance the author is missing out on. Regardless, thank you for sharing.
  • g-technology 1 hour ago
    Like saying putting paint on a brush and wiping it on paper is the easy part of painting.

    Even with coding agents, there is still a need to understand what it’s doing, how it will interact with other systems, where bugs or edge cases will show up and many other aspects that become security risks when ignored by someone that YOLO’s their vibe coded app into production

    • jama211 1 hour ago
      There’s a need for something to understand those things, but from a user perspective it doesn’t matter if that’s a human or an LLM.

      Besides, loads of software that’s human written has people maintaining it that don’t understand what it’s doing or how it interacts with other systems or where bugs or edge cases will show up etc etc too. In fact I’d say most software is like this.

      LLM’s probably make less security holes than humans at this point.

  • Frannky 1 hour ago
    I think what it means is that coding is difficult but predictable — in the sense that, you can solve it by throwing enough money at it. Figuring out what to build in a way that actually leads to product-market fit, on the other hand, is something you cannot solve just by throwing money at it. So in this frame, coding becomes 'the easy part' — not because it's truly easy, but because it can be solved relatively straightforwardly with resources
  • sakesun 1 hour ago
    Easy or not, code is obviously a time-consuming part. Anything that can dramatically reduce the time surely have significant impact.
  • hnfong 1 hour ago
    Every time computers master a skill that was previously thought to require a lot of intelligence/knowledge/ingenuity, people suddenly claim that it wasn't that hard after all.

    - Non-trivial arithmetic

    - Puzzles involving combinatorics

    - Chess

    etc. etc.

    • 8n4vidtmkvmk 57 minutes ago
      When was chess ever not hard?

      Afaik the best AIs can win now but even they aren't playing 'perfect' unloseable games.

  • PROTechThor 1 hour ago
    As a junior dev, it wasn't so easy for me :/
  • hn_throwaway_99 1 hour ago
    Previous discussion from 2 weeks ago: https://news.ycombinator.com/item?id=46966753
  • jama211 1 hour ago
    Brilliant. You can already see the HN users in here with emotional attachment issues who are sad because of the issues you talk about, and it’s causing them to bury their heads in the sand.

    It’s going to be a hard transition, but we can’t pretend it’s not happening, that won’t get us anywhere.

  • tolerance 1 hour ago
    I’m out of my element here. At least I’m speaking as an observer and not a participant of the programming language debates that I feel are less prevalent in communities like here than they are in the past. Ostensibly due to the raise of LLMs and debates about them taking up most of the programming discourse now.

    I wonder if someone with real experience/insight thinks that this claim is revisionist.

  • SirensOfTitan 1 hour ago
    This meme is just cope at this point, and it’s frustrating to watch engineers pretend that it was actually the architecture that was hard or whatever.

    No author, this isn’t the same as SPAs and CI/CD.

    This isn’t just happy tools helping us focus on the business side.

    We’re devaluing all white collar work. The thing that keeps the US economy afloat. Even if this tech requires human oversight, why would companies keep you when they can hire someone overseas at 1/10th the cost and get to 80% of the productivity with AI.

    Anthropic just dropped their safety pledge. Do you think they’ll hesitate as they transfer wealth from workers to their shareholders?

    Please people. Stop being avoidant. Stop pretending it’s a meritocracy and you’re at the top. Stop pretending the one thing about the job AI can’t do is the job.

    • bendmorris 56 minutes ago
      This is a pretty defeatist take. Stop doing that, and start doing what instead?
  • LEDThereBeLight 1 day ago
    AI reduces the thinking time, too. And most of my time is spent either thinking or coding.
  • wewewedxfgdf 1 hour ago
    What a strange thing to say.

    Code was never the easy part.

    If it was, then AI and LLMs would have been of no interest for coding.

    Self evidently wrong.

  • straydusk 1 hour ago
    Lol. Lmao, even.

    Software developers have spent the last twenty years blabbing about how product management is useless and coding is the one true skill.

    • Windchaser 15 minutes ago
      Eh, in my experience, design has always been harder than coding. If I get my design right, the coding follows naturally and easily.

      Coding is hard when you're learning it. "How do I use templates in C++? How do I handle error checking in Python?" etc. But it's the most basic piece of software development.

  • citizenpaul 1 hour ago
    I do and always will belive this phrase to be wage suppression propaganda. I think the proof is self evident. ie salaries.

    I guess we just hallucinated leet code too.

  • adamnemecek 2 hours ago
    Did consider that your view might be skewed because you work in a CRUD app?
  • Jgrubb 2 hours ago
    ...to the person who knows how to code.
    • anonzzzies 2 hours ago
      Yeah, exactly. Most employed programmers I ever met in the past decades actually cannot code and really really struggled (not anymore with AI) to do anything. And yet, usually because of a degree of some crap college, they have a job as something they cannot actually do.
      • __float 1 hour ago
        Err, what do you mean they cannot do anything? Where are you meeting these programmers??
  • xnx 1 hour ago
    I can only assume so many people are repeating this as "cope".
    • jama211 1 hour ago
      Or perhaps you are the one who is “coping”?

      Ask yourself honestly, is this genie ever going back in the bottle? If not, you’re gonna have to find a way to come to terms with it my dude.

  • pts_ 1 hour ago
    Trivializing code has reached an insufferable nadir. It is like saying math or medicine is the easy part, or cooking or carpentry. Often those who say it cannot code or read code, and are good at marketing, so they simply keep on promoting it and be dismissive of other work. Disillusioned to see it at the top of HN, and hand waving away methodical and substantial activities can only bode badly.
    • Windchaser 12 minutes ago
      It's akin to saying "swinging a hammer is the easy part of creating a building". Or "inserting a needle into a vein is the easy part of medicine".

      Both are somewhat true, and yet, I'll still be quite happy if we have AI that can do them.

      I'm certainly not trying to trivialize the progress that LLMs are making. I'm trying to be realistic, noting both the strengths and weaknesses of LLMs, and what that means for the fields they touch.