Skip to content
DevMeme
5373 of 7435
When scope creep ends in an impromptu Rust microservice rewrite
Agile Post #5892, on Feb 15, 2024 in TG

When scope creep ends in an impromptu Rust microservice rewrite

Why is this Agile meme funny?

Level 1: When You Get Carried Away

Imagine your job is to water the garden, and you have one garden bed assigned to you. Instead of just watering that section, you decide the garden’s layout is all wrong. You stay up all night replanting every flower, bringing in new soil, and basically redesigning the entire garden. The next morning, your parent or teacher comes out and asks, “Why did you redo the whole garden when I only asked you to water this part?” And you’re standing there, covered in dirt, exhausted, saying, “I… um… I guess I lost track of what I was supposed to do.”

That’s essentially what’s happening in this meme. The project manager expected the engineer to make a small, simple change (water the garden bed), but the engineer got carried away and started a huge project (redesigning the whole garden) without telling anyone. The picture from the cartoon shows a tired person doing something absurd (making pudding at 4 AM) and being asked “Why are you doing this?” His answer in the meme, “because I’ve lost scope of my Jira ticket,” is a fancy way of saying “I forgot my original task, and I went way too far.” It’s funny in the way it’s funny when someone builds a sandcastle so big and complicated that they forget they were just supposed to fill a small bucket. The humor comes from that relatable “oops” feeling — when you realize you’ve done much more (or something totally different) than what was asked, and now you have to sheepishly explain why. In short, it’s a joke about getting so absorbed in a project that you completely overshoot your goal, which is something even grown-ups (and certainly developers) do from time to time.

Level 2: Lost in Jira

Let’s unpack this meme in simpler terms, assuming you’re somewhat new to these software development concepts. The conversation in the meme is between a Project Manager (PM) and a senior software engineer during an ongoing work cycle (an Agile sprint). In Agile methodology, a sprint is a short, fixed-length period (usually 1-2 weeks) where a team focuses on completing specific tasks or features. These tasks are often represented by Jira tickets – think of them like digital index cards on a board, each describing a piece of work that needs doing. Each Jira ticket has a defined scope, meaning it clearly states what needs to be accomplished (and by implication, what is not to be done). For example, a ticket might say “Add a discount calculation to the checkout service” with acceptance criteria outlining exactly what that entails. The team plans these tickets at the start of the sprint, agreeing not to drastically change them mid-flight without good reason.

Now, in the meme, the PM is essentially asking, “Why are you doing something completely different from what we planned?” The senior engineer was supposed to be working on some task in one of our microservices, but instead, they’ve started rewriting that microservice in Rust. A microservice is just a small, independent application that is part of a larger system (imagine a big app split into many little apps that each handle one aspect – like user accounts, orders, payments, etc.). They usually communicate with each other over a network (for instance, an order service might call the payment service to charge a customer). Because microservices are independent, in theory one can be rewritten or replaced without affecting the others, as long as it behaves the same way from the outside. In practice though, rewriting one is a significant effort and not something you do on a whim during a sprint.

Rust is the programming language our engineer chose for this rewrite. What’s special about Rust? Rust is known for making very efficient programs that don’t crash easily. It’s a systems programming language like C++ in terms of being compiled to machine code (so it runs fast), but it was designed with safety in mind. One of Rust’s big features is something called memory safety. In simpler terms, Rust helps developers avoid mistakes that let programs mess up their own memory – mistakes that could otherwise cause random crashes or even security vulnerabilities. For instance, Rust prevents you from referencing memory that’s no longer valid (a common bug in C/C++), because the Rust compiler enforces rules about who owns what data and for how long. Rust also excels at managing concurrency, which means handling many tasks at the same time (important for a backend service that might be serving lots of users simultaneously). It has a reputation for being a bit difficult to learn at first (the compiler is very strict and will refuse to build your program until you fix all potential safety issues), but the trade-off is rock-solid, high-performance software when you’re done.

Now, imagine you’re the PM expecting a small change to an existing service. Rewriting that service in Rust goes way beyond the ticket’s original intent. This is what we call scope creep – when the work involved in a ticket or project starts expanding beyond what was initially agreed upon. Usually, scope creep is something teams try to avoid because it can jeopardize deadlines and make things unpredictable. In Agile, if scope needs to change, the proper way is to communicate and re-plan, not let it happen silently. Here, the engineer let the scope balloon without telling anyone until the PM discovered it. He admits it in a humorous way: “I’ve lost scope of my Jira ticket,” basically saying “Oops, the task kind of took on a life of its own beyond what I was supposed to do.” It’s a formal-sounding twist on the phrase “lost control,” which is exactly what has happened.

Let’s break down the roles and why this scenario is absurd (and thus funny) to those in the know. The PM (Project Manager) is responsible for making sure the team delivers value each sprint – that means getting the agreed tasks done, keeping things on track, and managing any changes to the plan. They don’t usually get into the nitty-gritty of the code; their perspective is the bigger picture: features, deadlines, and stakeholders’ expectations. The senior software engineer is an experienced coder who typically has a lot of autonomy in how to implement a task. But with that autonomy comes the responsibility to stay aligned with the team’s goals. If something in the codebase is really problematic (maybe the code is so bad that adding a small feature feels like walking through a minefield), a senior dev might decide some refactoring or bigger change is needed. The key is they’re expected to communicate that. In this meme, the senior dev did not check in with the team or the PM before undertaking a major rewrite; they just sort of… went for it.

Why Rust, and why would an engineer even be compelled to do this mid-sprint? Perhaps the existing microservice was written in a language or style that the engineer found frustrating – say it was in Node.js (JavaScript) and was running into performance issues, or in Python and was using a lot of memory. The engineer might have thought, “If I redo this in Rust, it will run so much faster and use memory more efficiently, and we’ll have fewer bugs. I’ll also address all these TODOs and hacky bits I see in the code.” In terms of technical improvement, that could be true: the end result might indeed be a better service. But in terms of process, doing all that work was definitely not in the plan for the current sprint. It’s like if you were assigned to repaint one wall in your house and halfway through you decided to tear down that wall and rebuild it with different materials because it would make the house sturdier. Even if you’re correct about the sturdiness, your family is going to be shocked when they see a giant hole in the house and a pile of bricks because they were just expecting a new paint color by evening.

The meme’s image underscores the comedic drama of this situation. It’s a frame from Rugrats, a 1990s cartoon. In that scene, the father, Stu Pickles, is awake at 4 AM making chocolate pudding in the kitchen. He’s got a vacant, tired look, clearly exhausted and not thinking straight. His wife, Didi, in her robe, asks him, “Stu, why are you making chocolate pudding at 4am?” And he replies, in a monotone, “Because I’ve lost control of my life.” This scene became a popular meme template for any situation where someone is doing something pointless or excessive as a result of being stressed or having a breakdown. In our developer meme, the dialogue is replaced: the PM asks why the engineer is doing this crazy rewrite now, and the engineer answers, “because I’ve lost scope of my Jira ticket,” mirroring Stu’s line. The humor comes from that parallel. Instead of “lost control of my life,” it’s “lost scope of my ticket” – which is a perfect substitution to apply the Agile software context to the original joke. The senior engineer is basically our Stu Pickles here: staying up absurdly late (or working in a daze) doing something that, to an outside observer, looks ridiculous — all because he got overwhelmed or over-invested in his task.

So, to put it simply: the meme is funny to developers because it shows a ridiculously exaggerated scenario of a task going off the rails. It combines a well-known cartoon punchline with software project lingo. You have the authoritative figure (PM/wife) confused and asking “Why are you doing this insane thing instead of what you were supposed to do?” and the culprit (engineer/Stu) basically admitting “I got in too deep and totally lost sight of the goal.” It’s a lighthearted poke at both the intense focus developers can get (to the point of making crazy decisions at 4 AM) and the kind of project management nightmares that give managers gray hairs.

Level 3: Mid-Sprint Mutiny

For experienced developers and tech leads, this meme evokes a mix of amusement and an anxious twitch. It’s portraying that infamous moment when a developer goes “rogue” mid-iteration. The text sets the scene:

PM: “Why are you rewriting our microservices to Rust in the middle of our sprint?”
Sr Software Engineer: “Because I’ve lost scope of my Jira ticket.”

Right away, this paints a vivid picture of an Agile project derailing in real-time. The Project Manager (PM) expected the team to be steadily churning toward the sprint goals — and instead finds a senior dev off in the weeds doing a full-on rewrite. This is essentially a mid-sprint mutiny against the plan, and it’s a scenario seasoned devs know either from personal experience or cautionary tales. The senior engineer, looking as sleep-deprived and wild-eyed as Stu Pickles in that image, gives an answer that is both hilarious and tragically honest. Saying “I’ve lost scope of my Jira ticket” is a dry, corporate way to admit “I completely lost control over what I was supposed to be doing.” It’s an admission of scope creep self-inflicted by the developer. And it’s the kind of line that could only be said by someone who’s aware they’ve messed up but is too far gone and exhausted to sugar-coat it.

Why would a senior developer veer off course so spectacularly? There are a few all-too-relatable reasons that industry veterans can infer here, each adding to the meme’s humor:

  • The Shiny New Hammer (Rust Mania): There’s a running joke in tech that every time a hot new technology emerges, some eager engineer will want to rebuild everything with it. Rust has been that shiny hammer for the last few years in systems programming. It’s modern, fast, and secure – a real “have your cake and eat it too” language. Our senior engineer might have recently fallen in love with Rust’s advantages (memory safety, fearless concurrency, etc.) and been chomping at the bit to use it at work. When they stumbled on a tough bug or performance bottleneck in the existing microservice, it probably triggered the thought, “You know, this would be so much easier/cleaner/faster in Rust.” One thing led to another, and next thing you know, they’re initializing a new Rust project and refactoring the whole service. It’s a mix of genuine technical enthusiasm and a bit of silver-bullet syndrome, where Rust is seen as the answer to all problems. The PM, of course, is not impressed by the cool factor of Rust — they just see a risk to delivery. This disconnect is comedic gold for those of us who have pitched a big refactor to non-technical managers.
  • Fighting the Tech Debt Dragon: Seasoned devs often have a love-hate with legacy code. Maybe the microservice in question was a gnarly behemoth of technical debt (ugly hacks, outdated libraries, lack of tests). When tasked to make a minor change, the senior engineer likely felt the weight of all that existing mess and thought, “We’re accumulating more debt by patching this. Let’s fix it at the root.” Rewriting the service in Rust could be seen as slaying that dragon once and for all—replacing brittle code with solid, safe, efficient code. That’s a noble intent, but it’s also the classic trap of over-engineering. Instead of a tactical fix, they opted for a full strategic overhaul on the fly. Every experienced dev knows the allure of refactoring something “the right way” versus duct-taping the “wrong way.” We also know how easily the former can balloon in scope. The humor (and horror) here comes from recognizing that impulse — to clean up everything — and wincing at the timing.
  • Tunnel Vision and the 4 AM Code Frenzy: The image of Stu Pickles is no accident. In that Rugrats scene he’s disheveled, making pudding at ungodly hours because he’s lost control. That’s a mood any developer who’s chased a tricky problem deep into the night recognises. The senior engineer likely started their day intending to do a small update, hit a snag, decided on a larger fix, got into the zone, and by the time they looked up, it was 4:00 AM and they had a whole new Rust microservice running locally. There’s a manic humor in that — it’s both absurd and strangely common in the world of programming. You get so deep into solving a problem your way that normal constraints (like time, other tasks, or the angry PM) fade away. Only when someone (like the PM, or the morning sun) snaps you out of it do you realize how far off-track you are. Seasoned devs joke about “coding fever dreams” where you emerge from a marathon coding session not entirely sure if what you built was brilliance or madness. Here it’s leaning toward madness, and that’s why we laugh.
  • Process and Communication Breakdown: Agile teams emphasize communication — if something is blocking you or if you think the plan needs to change, you’re supposed to speak up. The meme scenario implies that didn’t really happen here. The developer went full lone-wolf mode. Maybe in the daily stand-up they gave a vague status update like, “Working on the ticket, making some improvements,” while neglecting to mention those improvements meant a ground-up rewrite. The PM discovering this after the fact is hilarious to us because it’s a scenario we dread: the surprise late-stage pivot that no one was informed about. It’s the stuff of sprint retrospective legend. You can almost hear the post-mortem meeting: “So... about task JIRA-101: it says Done but also there’s a new 5,000-line pull request?” The lack of communication is a critical failure in process, but as a meme it’s funny because it amplifies the stereotype of the genius programmer doing things in secret, only to reveal a dramatic ta-da (or a mess) later.

To visualize the extent of this change, consider a simplified before-and-after of the code. Perhaps originally the service was a few straightforward functions in, say, Python:

# Original implementation (e.g., in Python):
def process_order(order):
    total = sum(item.price for item in order.items)
    return f"Charged ${total}"

And now, after the unsolicited Rust rewrite, we have something like:

// New implementation in Rust:
fn process_order(order: Order) -> String {
    let total: f64 = order.items.iter().map(|item| item.price).sum();
    format!("Charged ${}", total)
}

Suddenly, a simple one-liner became a more elaborate piece of code with explicit types (f64 for the total) and Rust’s syntax. This is a tongue-in-cheek illustration of how the scope exploded. The Python version might have taken a few minutes to tweak, whereas the Rust version likely involved setting up a whole new project, dealing with compiler errors, handling data types, etc. It’s not that Rust code is excessively verbose (it’s actually quite elegant, and that snippet is still pretty concise), but the context switch and reimplementation overhead are huge. The engineer essentially paused feature development to perform open-heart surgery on the service. SprintPlanning didn’t account for that detour!

What really seals the comedic deal is the tone of the engineer’s response. It’s an almost bureaucratic phrasing for a very human moment of failure. “Lost scope of my Jira ticket” is something you’d never formally report, which makes it meme-perfect. It parodies the jargon we use in software teams. Typically, one might say “this ticket grew in scope” or “I ran into unforeseen complexity.” Here, the senior dev essentially says “Yeah, I lost the plot” but couches it in project-management speak as if that explains everything. It’s like a chef calmly telling a restaurant manager, “I deviated from the recipe” after setting the kitchen on fire. That deadpan absurdity is what cracks up those of us who’ve been in similar shoes. We laugh because it’s a coping mechanism — better to find it funny than to cry about the death march that might follow to get back on track.

In a real software company, a situation like this would spark serious discussions. There’s irony in that the engineer probably did improve certain aspects of the service (maybe it’s faster or more stable now in Rust), but at the cost of blowing the sprint commitment to bits. Managers would question the lack of discipline, and engineers would debate if the rewrite was justified or a case of vanity and impatience. The PM versus Engineer tension is palpable: one side values predictability and meeting user commitments, the other side values technical excellence and long-term solutions — and both sides are right in their own way. That conflict, compressed into a single meme, is what makes experienced folks smirk knowingly. We’ve all navigated that exact minefield of “Is this improvement worth the delay it will cause?”

In summary, at the senior level this meme is funny because it’s too real. It captures the essence of an AgilePainPoints legend: the rogue refactor that derailed a sprint. It’s a reminder that even the best of us can get carried away by a technical vision (Rust all the things!) and momentarily forget the immediate mission. And it tickles us with the notion that sometimes the only explanation you can offer is a dull, corporate phrasing of “Yeah, I messed up,” delivered with the exhausted demeanor of a cartoon dad who hasn’t slept — something a lot of us have seen in the mirror at one time or another.

Level 4: The Second-System Syndrome

At the most intricate level, this scenario is a textbook case of Second-System Syndrome. A senior engineer has taken a detour from the planned work and decided to rebuild a component from scratch in a new language, convinced it will solve all underlying issues. This term comes from Frederick Brooks (of Mythical Man-Month fame), describing how an engineer’s second attempt at a system often becomes over-ambitious and over-engineered. Here, a mid-sprint Rust rewrite hints that our developer wasn’t content with incremental improvements; they went for a grand, clean-slate solution. It’s a bold move that screams “I can do it better this time”, and it’s fraught with classic pitfalls: unforeseen complexity, integration challenges, and the risk of simply trading old bugs for new ones.

From a technical standpoint, the engineer’s rationale might sound compelling on paper. Rust is known for its powerful features that address some deep software concerns. One of Rust’s flagship promises is memory safety without garbage collection. It employs a strict compile-time borrow checker that enforces rules preventing null pointer dereferences, data races, and use-after-free errors. In short, Rust guarantees that many memory-related bugs are caught at compile time rather than blowing up in production. For a system plagued by mysterious crashes or security holes due to memory corruption, rewriting critical components in Rust could theoretically eliminate those entire classes of errors. Additionally, Rust offers zero-cost abstractions – meaning you can write high-level code (iterators, generics, etc.) that compiles down to very efficient machine code, with no runtime overhead. And let’s not forget fearless concurrency: Rust’s type system ensures thread safety, allowing devs to avoid the nightmare of race conditions when multiple threads access data. To an experienced backend engineer, these features are like catnip. So if the original microservice was written in a language with a garbage-collected runtime (like Node.js or Python) or was a legacy C++ service with memory leaks, a Rust rewrite might promise improved performance and rock-solid stability. It’s the kind of backend upgrade that gets discussed in architecture meetings — typically not in the middle of a sprint, though!

Digging deeper into systems theory, rewriting a microservice in a new language also touches on the principles of distributed system design. Microservices communicate over networks, adhering to contracts (like REST APIs or message schemas). In theory, one service’s internals can be swapped out as long as it respects the same external contract. This decoupling is a selling point of microservice architecture – it gives teams freedom to use different tech stacks for different services. The senior engineer here certainly took that to heart. But theory meets reality in the integration phase: a new Rust service must exactly mimic the old service’s behavior, from HTTP responses down to edge-case logic, or else other parts of the system might break. Ensuring backward compatibility is an advanced challenge. Did our midnight Rust coder also rewrite all the automated tests for that service to verify it’s functionally identical? One would hope so, but given the ad-hoc nature of this rewrite, it’s doubtful every subtle behavior was accounted for. There’s a joke among seasoned engineers that replacing a working system with a new one will initially have all the bugs the old system had plus some extra. Rust’s type safety can prevent a lot of programmer mistakes, but it can’t automatically recreate years of bug fixes and hard-earned tweaking that lived in the old code. Those have to be re-implemented consciously. This is why complete rewrites are notorious – you throw away not only the mess, but also the wisdom embedded in that mess.

We can also view the humor through a theoretical lens of project management meets computation. The developer “losing scope” of the Jira ticket evokes the concept of an uncontrolled process. In computational theory, it’s reminiscent of the halting problem – the idea that it’s impossible to know, in general, whether a given program will finish running or run forever. Here the “program” in question is the developer’s task, and boy, it ran far beyond its expected end. Once the engineer started the rewrite, there was effectively no telling when that task would be “done” (certainly not by the original sprint deadline). The innate complexity of a full rewrite means the scope blew up to an immeasurable size. In Agile terms, this is a catastrophic scope creep – the kind that causes timelines to spiral. It’s as if a function that was supposed to run in O(n) time suddenly turned into an exponential O(2^n) monster; the sprint planning never accounted for that explosion in effort.

Speaking of explosions, consider the performance angle with some classic theory: Amdahl’s Law. This law states that the overall improvement gained from optimizing one part of a system is limited by how much that part is used. Let’s assume the motivation for the Rust rewrite was performance (a common love song: “Rust will make it blazing fast!”). If the microservice being rewritten was a small cog in a larger machine, even a dramatic speed increase in that one service might barely move the needle for users. For instance, if that service contributed, say, 10% of the request processing time in a complex chain of calls, even making it twice as fast would at best yield a 5% overall improvement. Meanwhile, rewriting it from scratch could easily take 2x or 3x longer than a targeted fix – a classic trade-off miscalculation. In essence, the engineer might have fallen into the trap of premature optimization (as Donald Knuth famously warned, “Premature optimization is the root of all evil”). They optimized something at the wrong time, and possibly the wrong thing altogether. It’s a highbrow way of saying the poor dev may have chased a performance ghost while real -life time was slipping away.

Finally, let’s talk about the deep ramifications in terms of technical debt and maintainability (another topic senior engineers lose sleep over). The existing service likely had plenty of technical debt – corners cut, clunky code, lack of tests – which is why the idea of a ground-up rewrite felt so alluring. And Rust, with its emphasis on correctness, could be seen as a way to not incur new debt. After all, Rust makes you handle errors explicitly (Result types), manage memory carefully, and generally write code that the compiler approves of (which often aligns with fewer bugs). In a perfect world, a Rust rewrite could significantly improve long-term code health. But in the real world, abruptly switching a service to a novel tech stack introduces a different kind of debt: knowledge debt and integration debt. Now the team has one more language and ecosystem to juggle. Tooling, deployment, and monitoring for this Rust service might need to be set up or adjusted (CI pipelines, container images, etc.). Other developers may need training to debug or extend this new service. If only one engineer understands it, the bus factor (risk of that one person leaving and no one else able to handle the code) just shot up. These are non-trivial costs often glossed over in the heat of an enthusiastic rewrite.

In sum, at this level of analysis, the meme is highlighting a collision between idealistic engineering ambition and harsh project realities. It’s funny because it exaggerates a truth: engineers do harbor grand visions of rebuilds with perfect technologies (like Rust), and those visions often clash with the practical need to ship on schedule. The senior engineer’s late-night Rust escapade showcases deep technical ideals – memory safety, performance, elegant design – barging uninvited into a time-boxed Agile process. And as any battle-scarred veteran will wryly note, Rust will protect you from null pointers, but it won’t protect you from your PM when the sprint ends with nothing to demo.

Description

The meme shows a white background with black caption text that reads: “PM: why are you rewriting our microservices to rust in the middle of our sprint? sr software engineer: because ive lost scope of my jira ticket”. Beneath the text is a Rugrats cartoon frame: a tired, purple-haired dad (Stu Pickles) stands in a blue-and-orange kitchen at dawn, mechanically stirring a pot while his red-haired, robe-clad wife looks on in disbelief. The visual exaggerates late-night developer mania - Stu represents the senior engineer deep-diving into a Rust rewrite, while the wife embodies the PM questioning the sudden pivot. The humor lands for seasoned engineers familiar with Agile sprints, Jira tickets, microservice architectures, and the temptation to over-engineer under the guise of “scope”

Comments

27
Anonymous ★ Top Pick It’s all fun and story points until your ‘small bug fix’ compiles into an entire Rust refactor before the next stand-up
  1. Anonymous ★ Top Pick

    It’s all fun and story points until your ‘small bug fix’ compiles into an entire Rust refactor before the next stand-up

  2. Anonymous

    The real reason senior engineers rewrite everything in Rust isn't performance or memory safety - it's that after 15 years of dealing with Jira's scope creep, sometimes the only way to maintain sanity is to create your own scope creep that at least compiles to something beautiful

  3. Anonymous

    Ah yes, the classic senior engineer move: 'I can't remember what this Jira ticket was originally about, but I'm 60% sure a complete rewrite in Rust will solve it. Also, I've already convinced myself that our Node.js services are now legacy code, despite being deployed last quarter. The PM will understand once they see the memory safety guarantees.'

  4. Anonymous

    Undefined requirements? Push the ambiguity left and let the borrow checker argue with your PM

  5. Anonymous

    The ticket was 'add a health check'; we ended up with a Rust rewrite, five new crates, and a meeting explaining how a 'spike' is a deployment strategy

  6. Anonymous

    Jira scope vanishes faster than a dangling pointer - perfect excuse to borrow-check the entire microservices fleet into Rust

  7. @Vlasoov 2y

    >senior >rewrite it's not possible to put these words in the same sentence

    1. @paul_thunder 2y

      why? seniors, if they are paid enough, will have the need to write better code, not the one corporates want.

  8. @Broken_Cloud_1 2y

    Rust is the best lol

    1. @mira_the_cat 2y

      no

  9. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

    Finally someone 💀😂

  10. Manuel 2y

    skill issue?

    1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

      From the developer who came up with such a syntax?

  11. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

    @dev_void

    1. @callofvoid0 2y

      ؟

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

        Votekick

    2. @RiedleroD 2y

      calling for reinforcements XD thank you!

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

        💀😂

      2. @callofvoid0 2y

        calling your brothers and sisters in arms legs

  12. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

    @ZhongXenon

  13. @sylfn 2y

    That's something new. However, a channel with only three subscribers and an all-caps message...

  14. @paul_thunder 2y

    is it ok to feel the need to write RUST code?

  15. @pyrogun 2y

    So you guys ban everyone who says that Rust is not bad? What a community of completely sane and normal people

  16. @MrStaudinger 2y

    I'm a noob, so I don't understand this basic thing, but someone pls explain, when you write and release a software, it should all be written in one language right??? How can someone just change portions of software and write it in another new language without re-writing the entire stuff again ?????

    1. @purplesyringa 2y

      no. one example is, on backend you often separate the large project into several microservices that talk to each other via some standardized protocol (often over network) like gRPC. what language/framework each microservice uses doesn't matter as long as the same protocol is used for cross-service communication. say, you can have an authentication server written in Rust, and the rest of the code in Python

      1. @qtsmolcat 2y

        Why do they even exist, besides to make everyone's life more complicated

        1. @purplesyringa 2y

          idk, i tend to get lost in monolithic projects, so SRP on steroids is useful

Use J and K for navigation