Skip to content
DevMeme
3194 of 7590
OpenSource Post #3515 · source on Telegram

The Infinite Proliferation of Competing Open Source Standards

Description

This meme is a composite of screenshots from a package manager's website, likely npm, showcasing the absurd proliferation of libraries all attempting to solve the same problem. It follows the lineage of 'EventEmitter' packages from version 3 to 7. 'EventEmitter3' claims it's faster than version 2. 'EventEmitter4' was created because the author 'did not particularly feel like extending' version 3. 'EventEmitter5' ironically aims to 'end the insanity and work together to fix the existing projects.' By 'EventEmitter6,' the creator acknowledges 'That's a hell lot of them' and aims to 'make EventEmitter great again.' The sequence culminates with 'EventEmitter7,' which features a screaming face emoji and the caption 'We need to go deeper.' This perfectly illustrates the classic XKCD comic #927 about competing standards: the attempt to create a single unifying standard often results in just one more competing standard. For senior developers, this is a painfully familiar satire of open-source fragmentation, NIH (Not Invented Here) syndrome, and the perpetual, often futile, quest for a definitive solution

Comments

17
Anonymous ★ Top Pick We had 14 competing standards for event emitters. Now we have 15, and the latest one is a unifying framework written in Rust that compiles to WASM and requires a Kubernetes operator to manage its sidecar
  1. Anonymous ★ Top Pick

    We had 14 competing standards for event emitters. Now we have 15, and the latest one is a unifying framework written in Rust that compiles to WASM and requires a Kubernetes operator to manage its sidecar

  2. Anonymous

    npm’s consensus algorithm is simple: disagree with the maintainer, increment the integer, publish “EventEmitter-N,” and call that a major version - Byzantine fault tolerance via namespace clutter

  3. Anonymous

    Somewhere out there, a senior architect is explaining to their team why they chose EventEmitter4 over EventEmitter3 in a critical production system, while secretly praying nobody discovers EventEmitter8 was released last week with breaking changes that fix the exact bug they've been working around for six months

  4. Anonymous

    This is the JavaScript ecosystem's version of the XKCD 927 'Standards' comic, but with more npm install commands. EventEmitter5 tried to be the hero we needed, calling for unity with zero dependencies - only for EventEmitter6 to immediately undermine it by depending on ALL previous versions, complete with a 'make EventEmitter great again' promise and a threat to make listeners pay for it. Then EventEmitter7 shows up with 'we need to go deeper,' proving that in the NPM ecosystem, the only constant is that someone will always fork your fork. It's like watching a recursive function without a base case - eventually you'll hit a stack overflow, but the journey there is darkly hilarious. The real kicker? Somewhere, a junior dev is trying to figure out which one to use while a senior architect is having flashbacks to the left-pad incident

  5. Anonymous

    At this point, npm i eventemitter6 is a consensus algorithm - it depends on 1 - 5 until it reaches quorum

  6. Anonymous

    npm’s approach to semantic versioning: fork EventEmitter, bump the numeral, add onAny(), declare “we’re faster,” and by EventEmitter7 the only event anyone subscribes to is “security advisory.”

  7. Anonymous

    npm EventEmitters: because Node's stdlib emit() was too pure - needed 7 impure forks to handle real-world listener leaks

  8. @pyproman 5y

    Soon: EventEmitter42069

    1. @NiKryukov 5y

      It is nice, but EventEmitter69420 is even nicer

  9. @FLIPFL0P_T 5y

    Every new commit comes a new EventEmitter...

  10. @FLIPFL0P_T 5y

    What the hell will happen, if a bugged commit comes in?

  11. @FLIPFL0P_T 5y

    EventEmitter 2 -> EventEmitter1.9 Bugs in 2nd version detected, we had to downgrade our product But we will make it great again soon!

    1. @RiedleroD 5y

      branching: EventEmitter2.1 - fixed the bugs from 2.0 EventEmitter2.0a - added missing functionality from 2.0 without the bugs EventEmitter2.0b - merged just the bugs, not the features from 2.0

  12. @erizpl 5y

    https://xkcd.com/927/

  13. @igordata 5y

    EventEmitter 3.0. The only EventEmitter that emits not only the events, but the other EventEmitters!

  14. @AaronDewes 5y

    https://www.npmjs.com/package/eventemitterx https://www.npmjs.com/package/eventemitter8 https://www.npmjs.com/package/eventemitter9

  15. @AaronDewes 5y

    https://www.npmjs.com/package/eventemitter10

Use J and K for navigation