The Unlikely Alliance of Functional Programmers and Anarchists
Why is this FunctionalProgramming meme funny?
Level 1: Unlikely Allies
Imagine two very different people finding out they have the exact same motto. One is a programmer who likes to keep their code super simple – they don’t use fancy categories (classes) or changeable settings (state) in their programs. The other is a person who doesn’t like hierarchies or big authorities – basically an anarchist who dreams of a world with no social classes (no rich or poor groups) and no government control. Now, it just so happens that both of them go around saying the phrase “No class, no state” as a summary of what they believe. Of course, they mean totally different things by it, but the words are identical. In the meme, we see a picture of two muscular arms (from a famous movie handshake scene) coming together in a powerful handshake. One arm represents the group of functional programmers, and the other represents the anarchists. They’re shown gripping hands in agreement because they’ve discovered they’re both cheering the same slogan. It’s like two people from different worlds suddenly realize they’re singing the same catchphrase and give each other a big high-five.
For someone looking at this without any tech background, the humor is in that unlikely friendship. The programmer’s saying “no class, no state” about coding style, and the anarchist is saying “no class, no state” about society. It’s as if a chef and a musician randomly find out they both live by the phrase “no forks, no majors” – the chef meaning they don’t use forks in cooking, and the musician meaning they don’t play in major key (totally different reasons, same words!). You’d laugh seeing them shake hands over it, right? Here, the developer and the anarchist are bonding over the identical wording of their ideals. The meme is funny because it’s a big coincidence and a play on words. It shows how a simple phrase can unite two completely unrelated groups, at least for a moment of shared enthusiasm. In other words, sometimes people from totally different areas of life can agree – or seem to agree – on something that sounds the same, and that surprise connection makes us laugh.
Level 2: No Classes, Just Functions
Let’s break down the phrase “No Class, No State” in programming terms. In traditional object-oriented programming (OOP), a class is like a blueprint for creating objects. For example, you might have a Car class that defines what a car can do and what attributes it has (color, speed, etc.). When you create a car object from this class, that object holds state – data about its current condition (e.g., the car’s current speed, its fuel level). State in programming refers to any stored information that can change as the program runs. If you have a variable that gets updated, that’s state. If an object’s field (like car.speed) changes over time, that’s state. OOP encourages organizing code by grouping state and behavior together into classes/objects. For instance, a Car object might have a method to accelerate() which internally changes the speed state of that car.
By contrast, functional programming suggests a different approach: avoid classes and avoid changing state. “No class” in this context means you don’t design your program around class hierarchies or objects. Instead, you focus on writing functions (just standalone blocks of code that take input and produce output) and using basic data structures like lists, maps, etc., without attaching methods to them. “No state” means these functions don’t rely on or alter any external data when they run. They don’t change global variables or object fields; instead, they take in all the data they need as arguments and return new data as a result. If a function needs to give you updated information, it returns a new value rather than changing an existing variable in-place. This is known as using immutable data – once created, the data isn’t changed, you just make new data.
Imagine you have to keep track of a count. In an OOP style with a class, you might do something like this:
# OOP style with a class and internal state
class Counter:
def __init__(self):
self.value = 0 # state stored in the object (value can change)
def increment(self):
self.value += 1 # method that changes the object's state
counter = Counter()
counter.increment() # counter.value becomes 1 (state changed inside object)
counter.increment() # counter.value becomes 2 (state changed again)
print(counter.value) # outputs 2
In the functional style, you might write it without any class at all, just using a function:
# Functional style with no class and no mutable state
def increment(value):
return value + 1 # this function doesn't alter any outside state, just returns a new value
value = 0 # start with an initial count
value = increment(value) # value is now 1 (original value wasn't mutated, we just set value to the new result)
value = increment(value) # value is now 2 (again, created a new number from the old)
print(value) # outputs 2
In the first example, Counter held a piece of state (value) that we modified every time increment() was called. In the second, there’s no persistent object holding state – increment() simply calculates a result, and we explicitly handle the returned value. The functional approach avoids any hidden changes; every change in “state” is made explicit by assigning the result to a variable. This makes it easier to follow what the program is doing, since you don’t have to remember that some object deep in the code is carrying a changing value.
So why do functional programmers prefer this no class, no mutable state style? A few reasons:
- Predictability: If functions don’t depend on external state and don’t change it, they always behave the same given the same input. This makes understanding and testing the code much easier. You don’t get those “it works on my machine” bugs caused by some hidden variable being different.
- Avoiding Bugs: A lot of programming bugs come from unexpected changes in state. For example, if two parts of a program both modify a global variable, it can be hard to know the final result or timing. By not allowing those sneaky shared states, functional code sidesteps an entire class of bugs.
- Concurrency: Immutability (no changing state) is great for multi-threaded or parallel programs. If nothing can change, two threads can’t conflict or corrupt a variable by writing at the same time. They’re just reading data and making new data, which is safer.
When it comes to “no class,” functional devs often find that they can compose programs out of simple functions and data types, without needing the abstraction of classes and inheritance. This keeps architectures flatter and sometimes more flexible. Instead of thinking in terms of “objects” that hold state and do things, they think in terms of data flowing through a pipeline of functions. It’s a different mindset, and when someone is very used to it, they might joke that they have eliminated the concept of classes entirely from their code. (In reality, many languages are multi-paradigm and you might still use a class or two, but the idea is to not rely on them heavily.)
Now, the hilarious twist in the meme is comparing this programmer mindset to anarchists with the phrase “No Class No State.” In everyday terms, social class refers to divisions like upper class, middle class, and lower class – basically groups of people with different socioeconomic status. And “the state” means the government or central authority of a country. Anarchists are people who believe that society should exist without these hierarchies: no divisions between rich and poor (no class structure) and no centralized government ruling over everyone (no state authority). They often use slogans like this to express their ideal of everyone being equal and self-governing. So an anarchist saying “no class, no state” has zero to do with programming — they’re talking about real-life society.
The meme finds it comical that functional programmers and anarchists use the same sounding phrase but mean such completely different things. It’s as if by avoiding classes and state in code, programmers are inadvertently echoing a revolutionary political statement! When you see the two beefy arms clamping together in agreement, labeled “Functional Programmers” and “Anarchists,” it visualizes this unexpected alliance. The common banner above their hands, “NO CLASS NO STATE,” is like the shared motto that they’re both cheering for — just in totally different contexts. For a junior developer or someone new to these terms, the meme’s joke comes from this double meaning: class can mean a programming construct or a social hierarchy, and state can mean a variable’s current value or a government. The functional devs mean the first, the anarchists mean the second, but hey, it’s the same words! It’s a pun and a nerdy crossover all in one. Once you know those two meanings, you can see why it’s funny that these two groups would high-five over “no class, no state.” It’s not that functional programmers are actually anarchists, just that their technical lingo coincidentally matches an anarchist catchphrase. And that coincidence is pure gold for TechHumor meme material.
Level 3: No Class Struggle
This meme combines two extremely different domains – programming paradigms and political ideology – and finds a common rallying cry: “No Class, No State.” For seasoned developers, this is a tongue-in-cheek nod to the zeal of functional programming enthusiasts who avoid traditional object-oriented classes and mutable state in their code. The left arm labeled "Functional Programmers" represents those developers who insist that software should be built with immutable data and pure functions. They often preach ideas like referential transparency (functions should behave like mathematical functions with no surprising side effects) and say things like “don’t mutate variables, return new values.” In their ideal world, a program has no global state lying around and no complex class hierarchies – which makes the code easier to reason about, test, and parallelize. Seasoned devs have heard this philosophy in conference talks, blog posts, and heated debates in the lunchroom. It’s a bit of a revolution against the older OOP ways, and functional fans can be almost ideological about code purity.
On the right side, we have the "Anarchists" – not in the tech sense, but literally people who believe in abolishing hierarchical social classes and the centralized state (government). “No class, no state” is a riff on a genuine anarchist slogan (similar to phrases like "No gods, no masters"). It’s the political rallying cry for a society with no rich-vs-poor class divisions and no big government telling everyone what to do. By itself, that has nothing to do with programming – it’s about revolutionary social change. But the humor here comes from the perfect overlap in wording with the functional programming mantra. It’s as if functional devs and anarchists accidentally showed up to a party wearing the same slogan on their T-shirts! The meme’s image (the famous muscular handshake from the movie Predator) is a classic template used to show two very different groups finding common ground on something oddly specific. In this case, that common ground is the phrase “No Class No State,” and the meme labels each arm so we know who these muscle-bound allies are. The dramatic, over-the-top handshake visual just heightens the silliness – imagining a mild-mannered Haskell programmer arm-wrestling and high-fiving with a hardcore political anarchist is inherently funny.
For experienced engineers, there’s another layer of chuckle: we’ve all seen how tech discussions can take on an almost ideological intensity. Language wars and paradigm debates (like Functional vs Object-Oriented Programming) sometimes sound as charged as political arguments. One side might quote the benefits of immutability and purity like they’re gospel, while the other side defends pragmatic use of classes, objects, and a bit of state (“we need to get things done!”) like traditionalists defending the established order. This meme winks at the fact that functional programmers can seem almost radical or revolutionary in the context of mainstream software development. They’re basically overthrowing the ruling class of objects and the tyranny of global state! It’s a playful exaggeration, of course. In reality, most of us blend paradigms when building software – even Haskell has the notion of state hidden in monads, and even anarchists have to organize something in practice. But the core joke lands because both the coder community and the anarchist crowd use similarly fervent language about eliminating “classes” and “the state,” each in their own sphere.
The text “NO CLASS NO STATE” floating above the clasped hands in bold white caps looks like a banner or motto they’re united under. For a developer in the know, those words immediately bring to mind FunctionalProgrammingConcepts: avoiding classes (meaning avoiding the whole inheritance and object model) and avoiding shared mutable state to achieve referential transparency. These are cherished principles in certain languages (like Haskell, Clojure, or Elm) and have become almost a cultural identity in programming — “No mutable state! Down with OOP!” is a refrain you might have heard from a passionate FP advocate. Seeing that phrase out of context, though, also evokes the image of a protest sign at an anarchist rally. The meme expertly relies on us having that dual awareness. It’s the intersection of tech humor and real-world ideology: two groups you’d never expect to see agreeing on something, gleefully grip hands over a shared tagline. And for engineers, it’s a reminder that sometimes our TechHumor borrows from grander themes — turning a dry concept like “no mutable state in my code” into a hilarious parallel with revolutionary slogans. In short, the meme is funny on multiple levels: it’s a clever pun, it pokes fun at the almost fanatical purity of functional programmers, and it exaggerates the idea of “coding style as ideology” by comparing it to actual anarchist ideology. Any developer who’s experienced the trendy push for functional patterns (or has struggled through a debate about OOP vs FP) will likely smirk and think, “Yep, I’ve met coders who would proudly chant this!”
Level 4: Separation of Church and State
In the deepest theory of computer science, functional programming draws its ideals from pure mathematics. Think of the lambda calculus (developed by Alonzo Church in the 1930s) – a formal system where computation is just applying and composing functions, with no concept of mutable state at all. In lambda calculus, a function’s output depends only on its input, and evaluating a function does not change any hidden context. This property is known as referential transparency: you can replace a function call with its result value, and nothing else changes. It’s like math equations – f(x) = x * 2 will always give the same f(3) = 6 every single time, with no side effects. There are no objects to carry state, no classes defining behavior – just pure transformations.
By contrast, the other classic model of computation, Alan Turing’s Turing Machine, is literally built around state: a tape of symbols that get modified step by step. Yet interestingly, Church’s stateless functions and Turing’s stateful machine were proven equally powerful (the Church-Turing thesis) – they can compute the same things, but their approaches differ radically. The lambda calculus achieves everything through stateless function evaluation, whereas a Turing Machine (much like imperative programs) changes state on its tape as it runs.
When modern functional languages (like Haskell or ML) embrace “no state,” they’re channeling Church’s mathematical purity. Even monads in Haskell, often considered an advanced functional concept, are a clever way to encapsulate effects (like I/O or changing values) without breaking the stateless functional model. A monad threads state through pure functions in a controlled way, so from the outside it still looks like nothing mutable ever happened. This is computer science embracing a kind of idealism: even when you must handle real-world change, you do it in a disciplined, almost algebraic manner to keep the core computation pristine.
Now, beyond computing, the phrase “No Class, No State” also echoes a well-known radical slogan in political philosophy. Anarchist thinkers envision a society with no social classes (nobody is “upper” or “lower” class – all people are equal) and no state (no centralized government authority). It’s a utopian, all-or-nothing ideal in political theory, just as absolute immutability and purity are utopian ideals in programming. Both functional programming theorists and anarchist theorists are, in a sense, striving for a form of purity – one in logic and code, the other in social structure. The meme brilliantly mashes up these two worlds. It highlights an academic truth (the beauty of stateless computation) with a dash of ideology (a classless, stateless society), showing how a simple four-word mantra can resonate in entirely different realms. The result feels absurdly perfect: the mathematical purity of code and the social purity of anarchism clasp hands over the exact same slogan.
Description
The 'Epic Handshake' meme format is used to show an unexpected agreement. The image features two powerful, muscular arms - one Black in a white t-shirt, the other white in a red t-shirt - clasping hands in a firm handshake. The left arm is labeled 'Functional Programmers', and the right arm is labeled 'Anarchists'. At the center, where their hands meet, the shared belief is written in bold white letters: 'NO CLASS NO STATE'. A small watermark for 'imgflip.com' is present in the bottom-left corner. The humor derives from a clever pun, where the phrase 'no class, no state' applies to both groups but with entirely different meanings. For functional programmers, it refers to the architectural principles of avoiding mutable 'state' and often favoring functions over 'classes' found in object-oriented programming. For anarchists, it's a political slogan advocating for a society with 'no class' hierarchy and 'no state' government. The meme hilariously unites these two disparate groups through this shared, context-dependent mantra
Comments
19Comment deleted
Anarchists and FP devs both agree: shared mutable state is the root of all evil, whether it's in your multithreaded application or the halls of government
Both groups agree that if your program - or your society - still has mutable global state, you’re probably about to debug a revolution
After 15 years of debugging race conditions and untangling inheritance hierarchies, you realize functional programmers and anarchists have the same solution: eliminate the ruling class and abolish the state. Though only one group means it literally, both are equally evangelical about their cause at conferences
When your functional programming principles accidentally align with revolutionary political theory - turns out both camps have been trying to eliminate class hierarchies and mutable state all along. Who knew that Haskell developers and anarcho-syndicalists would find common ground in their mutual disdain for inheritance?
Functional programmers and anarchists both want “no class, no state” - until the enterprise SDK sneaks in a mutable global singleton and you’ve reinvented government
FP and anarchism: both dismantle state and class, but one delivers monads while the other just endless debates
“No class, no state” - until the architecture review, where we rename them typeclasses and an append‑only log, then ship a “stateless” service with three caches
Anti-Anarchists: Pro-State Comment deleted
No class, state ownership: Rust users, socialists Comment deleted
Turned it into meme for you Comment deleted
kid named state monad: Comment deleted
The left left c++ for rust for this particular reason Comment deleted
the what what c++ for rust? Comment deleted
left left! hope that helps Comment deleted
no, it doesn't Comment deleted
I see, but don't get it Comment deleted
"The political left has abandoned C++ in favor of Rust for this particular reason" Comment deleted
aaah Comment deleted
translation in telegram also can't figure out the meaning of this message Comment deleted