Dr. Doofenshmirtz Discovers the Moral Quagmire of the JSON License
Description
This image is a screenshot of a tweet formatted as a monologue from the cartoon villain Dr. Doofenshmirtz. The text reads: 'BEHOLD! MY BINARY DATA ENCODINATOR 3000... mine is for EVIL. which specifically violates the JSON license... It's a real clause! look it up! You CANNOT use JSON for evil.' The humor is layered, referencing a character known for comically mundane 'evil' inventions while highlighting a real and notorious piece of tech trivia. Below the tweet is a screenshot of a Q&A forum answer, which explains the real-world implications of the JSON license's clause, 'The Software shall be used for Good, not Evil.' It details how this clause conflicts with the Free Software Foundation's definition of free software (which permits use for any purpose), leading distributions to sometimes unbundle JSON support from packages like PHP. The meme is a classic in-joke for developers, finding humor in the collision of moral philosophy, open-source licensing, and practical package management
Comments
46Comment deleted
The 'not for evil' clause in the JSON license is the only thing that has caused more pointless arguments in engineering meetings than tabs versus spaces. It's the perfect example of a feature no one asked for, creating a bug that affects everyone
The security team worried about supply-chain exploits; legal worried the app might conquer the tri-state area - only JSON manages to combine both threat models in one license clause
The real evil here is discovering your entire microservices architecture technically violates a license because Douglas Crockford wanted to make a philosophical statement about morality in software - meanwhile, your PM just classified the new dark pattern feature as 'ethically neutral user engagement optimization.'
Ah yes, the JSON license - proof that even in software licensing, someone tried to hardcode morality into the spec. Crockford's 'Good, not Evil' clause is the programming equivalent of a parent saying 'I'm not mad, just disappointed' - technically unenforceable, philosophically amusing, and practically a nightmare for legal departments. The FSF's response? 'Freedom 0 means ANY purpose, Doug.' It's the ultimate collision between idealistic intent and pragmatic open source philosophy, resulting in distros quietly yeeting php5-json like it's technical debt from a legacy codebase. Nothing says 'mature ecosystem' quite like having to fork a data serialization format because someone got philosophical about curly braces
Security and legal blocked the Encodinator 3000: the SCA report says 'JSON license prohibits evil'; we migrated to Protobuf and renamed it 'Telemetry' and procurement immediately approved
Legal flagged our JSON because of the “good, not evil” clause - so we renamed the service to “Compliance-Driven Binary Encoder” and suddenly the packets were morally acceptable
Legacy license alert: Still more enforceable than most microservices SLAs
translate from frontend language to backend pls Comment deleted
class Meme: public XPost { public std::unique_ptr<licenses::License<licenses::JsonLicense>> jsonLicense; public std::unique_ptr<licenses::License<licenses::FsfLicense>> fsfLicense; public Meme(){ jsonLicense = std::unique_ptr<licenses::License<licenses::JsonLicense>>(new licenses::License<licenses::JsonLicense>()); try{ fsfLicense = std::unique_ptr<licenses::License<licenses::FsfLicense>>(new licenses::License<licenses::FsfLicense>.from(jsonLicense)); } catch (ConflictingRulesException& exception) { std::cout << "in class Meme from function public Meme() [Error]: cant use JSON for Evil, hence not free software." << std::endl; exit(EXIT_FAILURE); } } }; Comment deleted
wtf? Comment deleted
backend language Comment deleted
cpp developer? 😃 Comment deleted
no Comment deleted
😒 Comment deleted
but it's C++ yes. I'm no {{specific_language}}-Developer I'm an IT Department in person. Comment deleted
I'm c/c++ dev Comment deleted
I can pray for your mental health 🙏 if you want me to. Comment deleted
😂 Comment deleted
no i don't need to pray, but why about cpp syntax, pointers and refresenes? Comment deleted
it's just way too overloaded with everything in the world, which results in reduced readability even in constructions designed for its improvement. you can really cut the language in 3-4 smaller languages with shorter syntax and it will only be better. well, basically that's what new modern languages practically have done, instead of trying to be able to solve every task in the world. Comment deleted
yep but from first times when they said c++ is powerful language, I learn it, and Im still enjoying when I write c++ code. I really love the low level/middle level languages like c,c++ Comment deleted
C lang was considered as a high level language in time :) It's all relative Comment deleted
wait, what? if C Lang is high level so what's the python and js? Comment deleted
A toy Comment deleted
stop thinking in absolutes Comment deleted
there's no "low-level" and "high-level" languages, it's a spectrum Comment deleted
Python > Go > Rust > C++ > C > Assembly > Machine code > ucode at least if we're talking about the software side; where you draw the line between high-level and low-level stuff is entirely up to you Comment deleted
personally I'm with @NickKhalow, I wouldn't even consider x86 machine code low-level these days tbh Comment deleted
tbf you can't even always compare languages like this. Rust is "closer to hardware" than Go, but also provides a lot more thought-out abstractions Comment deleted
abacus is too high-level, I code using individual pebbles and rocks Comment deleted
Average chad rock throwing enjoyer. Comment deleted
It's autistic :3 Comment deleted
yayyyyyyyy :3 :3 :3 Comment deleted
so is my autism Comment deleted
Key word is "was" considered Comment deleted
what's assembly then? Comment deleted
Other languages like python and javascript are good but not like the c++ Comment deleted
Quit C++, keep the C arc Comment deleted
I'm in both of them Comment deleted
better? Comment deleted
Yep Comment deleted
There was a clause in a JSON parser license that states it shouldn’t be used for evil which isn’t fully “free” Comment deleted
So this guy created his own parser without that clause Comment deleted
I'm specifically going to use JSON for evil purposes and noone can stop me Comment deleted
PHP is evil, got it Comment deleted
I am batman, the hunter of evil Comment deleted