this post was submitted on 26 Feb 2025
120 points (95.5% liked)

Programmer Humor

21165 readers
1311 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

I didn't see this coming and I think it's funny, so I decided to post it here.

top 50 comments
sorted by: hot top controversial new old
[–] xmunk@sh.itjust.works 45 points 1 week ago (1 children)

Nano services are microservices after your company realizes monoliths are much easier to maintain and relabels their monoliths as microservices.

Unironically. I'd put a significant wager down on that being the source of this term.

[–] LemmyRefugee@lemmy.world 4 points 1 week ago

That’s exactly what happens at my job.

[–] LeFrog@discuss.tchncs.de 30 points 1 week ago (3 children)

This "article" was written by AI, wasn't it? This is just throwing vague buzzwords around

[–] criss_cross@lemmy.world 3 points 1 week ago

I dunno people were doing that long before AI

load more comments (2 replies)
[–] princess@lemmy.blahaj.zone 26 points 1 week ago (1 children)

quantum services

take your source code and put each character in its own docker container

this gives you the absolute peak of scalability and agility as every quantum of your application is decoupled from the others and can be deployed or scaled independently

implementing, operating and debugging this architecture is left as an exercise for the reader

that will be $250,000 kthx

[–] Horrabin@programming.dev 10 points 1 week ago

implementing, operating and debugging this architecture is left as an exercise for the reader

Challenge accepted by a reader using AI, what could go wrong? xD

[–] sirdorius@programming.dev 23 points 1 week ago (3 children)

I was going to write that every function should be a service as sarcasm, then I realized that's exactly what this article is proposing. Now I'm not even sure how to make a more ridiculous proposal than this.

[–] zlatko@programming.dev 10 points 1 week ago (2 children)

It's probably AI-supported slop.

[–] sirdorius@programming.dev 4 points 1 week ago

Ah, you're right

[–] bitcrafter@programming.dev 2 points 1 week ago

Yeah, I had been willing to give the author the benefit of the doubt that this was all part of a big joke, until I saw that the rest of their blog postings are also just like this one.

[–] fibojoly@sh.itjust.works 5 points 1 week ago (1 children)

IaaS Instructions as a Service

Want to know if a value is odd? Boy have we got the API for you!

load more comments (1 replies)
load more comments (1 replies)
[–] Nougat@fedia.io 19 points 1 week ago (1 children)
[–] bitcrafter@programming.dev 5 points 1 week ago (1 children)

My services are so small that it is impossible to know just how fast they are running!

load more comments (1 replies)
[–] PieMePlenty@lemmy.world 19 points 1 week ago (2 children)

Cant wait to set up a docker container for a service which takes a string input and transforms it into a number as the output. Full logging, its own certificate for encryption of course, 5 page config options and of course documentation. Now, you want to add two numbers together? You got the addition service set up right?

[–] normalexit@lemmy.world 8 points 1 week ago (1 children)
[–] PieMePlenty@lemmy.world 3 points 1 week ago

Oh yeah, this is the stuff business dreams are made of.

[–] zlatko@programming.dev 4 points 1 week ago

left-pad as a service.

[–] nick@midwest.social 15 points 1 week ago* (last edited 1 week ago) (1 children)

You know what they say: micro services, macro outages.

[–] psud@aussie.zone 3 points 1 week ago (1 children)

At least you can accurately point the finger at who's responsible

load more comments (1 replies)
[–] billwashere@lemmy.world 13 points 1 week ago (1 children)

Announcing FemtoServices™ - One Packet at a Time!

In an era of bloated bandwidth and endless data streams, today we proudly unveil a groundbreaking approach to networking: FemtoServices™ – Connectivity, one Ethernet packet at a time!

[–] zlatko@programming.dev 8 points 1 week ago

(Not to be confused with our premium product, ParticleServices, which just shoot neutrinos around one by one.)

[–] zea_64@lemmy.blahaj.zone 13 points 1 week ago

We already have nanoservices, they're called functions. If you want a function run on another box, that's called RPC.

[–] billwashere@lemmy.world 12 points 1 week ago (3 children)

I’m trying to understand how this is different than a concept I learned in computer science in the late 80s/early 90s called RPCs (remote procedure calls). My senior project in college used these. Yes I’m old and this was 35 years ago.

load more comments (3 replies)
[–] thesmokingman@programming.dev 11 points 1 week ago (1 children)

This is just distributed functions, right? This has been a thing for years. AWS Lambda, Azure Functions, GCP Cloud Functions, and so on. Not everything that uses these is built on a distributed functions model but a fuck ton of enterprises have been doing this for years.

[–] icerunner_origin@startrek.website 9 points 1 week ago (1 children)

What's next? Femtofunctions

[–] smeg@feddit.uk 5 points 1 week ago

You only need two of them, one for 1 and one for 0

[–] NigelFrobisher@aussie.zone 7 points 1 week ago* (last edited 1 week ago) (1 children)

Tech moved in cycles. We come back to the same half-baked ideas every so on, imagine we just discovered the idea and then build more and more technologies on top to try to fix the foundational problems with the concept until something else shiny comes along. A lot of tech work is “there was an old lady who swallowed a fly”.

[–] fckreddit@lemmy.ml 9 points 1 week ago (1 children)

I always keep saying " You cannot plan your way out of a system built on broken fundamentals." Microservices has it's use case, but not every web app needs to be one. Too many buzzwords floating around in tech, that promise things that cannot be delivered.

[–] Whirlybird@aussie.zone 4 points 1 week ago

Yep micro services are great, but monoliths are just as great and don’t let anyone tell you otherwise. It all depends on what the system requirements are.

[–] Star@sh.itjust.works 6 points 1 week ago

I think it’s just serverless, right?

[–] db2@lemmy.world 5 points 1 week ago (1 children)

Soooooo... Linux with extra steps.

[–] princess@lemmy.blahaj.zone 4 points 1 week ago (1 children)

brb deploying each bin from coreutils as a separate aws lambda function

[–] db2@lemmy.world 2 points 1 week ago (1 children)

Found the OpenAI employee 🤣

[–] psud@aussie.zone 3 points 1 week ago* (last edited 1 week ago)

I work in government IT, and AWS is used there too. I prefer working with a team delivering a COBOL data cruncher service, though the build people have it easier when the job is just connecting a source to a sink in AWS

[–] tyler@programming.dev 5 points 1 week ago (2 children)

we've been using nano-services for the past 6 months or so. Two different reasons. A codebase we absorbed when a different team was dissolved had a bunch of them, all part of AWS AppSync functions. I hate it. It's incredibly hard to parse and understand what is going on because every single thing is a single function and they all call each other in different ways. Very confusing.

But the second way we implemented ourselves and it's going very well. We started using AWS Step Functions and it allows building very decoupled systems by piecing together much larger pieces. It's honestly a joy to use and incredibly easy to debug. Hardest part is testing, but once it's working it seems very stable. But sometimes you need to do something to transform data to piece together these larger systems. That's where 'nano-services' come in. Essentially they're just small ruby, python, js lambdas that are stuck into the middle of a step function flow in order to do more complex data transformation to pass it to the next node in the flow. When I say small I mean one of the functions we have is just this

def handler(event:, context:)
  if event['errorType']
    clazz = Object.const_set event['errorType'], Class.new(StandardError)
    raise clazz.new.exception, event['errorMessage']
  end
  event
end

to map a service that doesn't fail with a 4xx http code to one that does fail with a 4xx http code.

You could argue this is a complete waste of resources, but it allows us to keep using that other service without any modifications. All the other services that depend on that service that maps its own error types can keep working the way they want. And if we ever do update that service and all its dependencies, now 'fixing' the workflow is literally as simple as just deleting the node and the 'nano-service' to go along with it.

I should note that the article is about the first thing I discussed, the terrible codebase. Please don't use nano-services like that, it's literally one of the worst codebases I've ever touched and no joke, it's less than 2 years old.

[–] Valmond@lemmy.world 4 points 1 week ago (9 children)

This looks like hell.

I'm a C/C++ developer though.

[–] Xanza@lemm.ee 2 points 1 week ago (1 children)

I’m a C/C++ developer though.

Ya feel good about yourself, slugger? /s

[–] Valmond@lemmy.world 3 points 1 week ago

Yeah, I kind of am. Just found a 33% time job so that I can gradually leave software engineering 😁

load more comments (8 replies)
[–] zea_64@lemmy.blahaj.zone 3 points 1 week ago

Sounds like a distributed monad

[–] bitcrafter@programming.dev 4 points 1 week ago (1 children)
[–] Horrabin@programming.dev 2 points 1 week ago

I can't agree more!

[–] fl42v@lemmy.ml 4 points 1 week ago

Neovimservices ftw

[–] vrighter@discuss.tchncs.de 4 points 1 week ago

gotta keep wirth's law going strong

[–] technocrit@lemmy.dbzer0.com 3 points 1 week ago

Infinitesimal service. It's effectively no service but it pays better.

[–] Sprocketfree@sh.itjust.works 3 points 1 week ago

This is just the Linux way but with... Rest? Seems slow.

load more comments
view more: next ›