Skip to content
DevMeme
5264 of 7435
Cross-Platform Without Browser Copium
WebDev Post #5772, on Dec 27, 2023 in TG

Cross-Platform Without Browser Copium

Why is this WebDev meme funny?

Level 1: Different Kinds Of Bridges

This is like arguing that the only way to cross a river is one famous bridge, while someone points out that trucks, trains, and boats cross rivers every day too. The famous bridge is useful, but it is not the only solution. The funny part is that developers sometimes defend their favorite bridge so hard they forget other people are already getting across.

Level 2: Many Roads Across

Cross-platform development means building software that works on more than one operating system or device type. Web apps do this by running inside browsers. Native apps do this by compiling or packaging versions for each target platform, often with help from shared engines, frameworks, or cross-compilers.

Games are a strong example because they often share most of their code and assets while producing different builds for consoles, PCs, and mobile devices. A game engine can provide common tools for graphics, audio, physics, input, and asset loading. The developer still has to handle differences, but they are not starting from zero for every platform.

Browsers solve a different version of the same problem. They provide a widely available runtime with HTML, CSS, JavaScript, networking, and sandboxing. That is why web apps are so popular. The meme is funny because it challenges the idea that browser compatibility is the same thing as cross-platform development itself. It is one powerful route, not the whole map.

The post message about games using browser-based menus also matters. It shows how blurry the boundary is. A native game can still embed web technology, and a web app can still call native APIs through wrappers. Real-world software is usually less pure than the argument people have about it online.

Level 3: Portability Is Not A Browser

The screenshot is a dark-mode social post from “valigo” saying:

Modern games are native apps that are being released for like 5+ different platforms, and yet web devs will scream that you absolutely need browsers or you can't be crossplatform. The amount of copium we inhale as an industry is insane

The joke attacks a common web development reflex: treating the browser as the only serious answer to cross-platform software. Browsers are incredibly successful portability layers, but they are not magic. They are large runtimes with layout engines, JavaScript engines, security models, rendering pipelines, storage quirks, device APIs, and compatibility bugs. Saying “use the web because it is cross-platform” can be true and still incomplete, the way saying “ship a game on five platforms” is true while politely hiding the certification, controller support, graphics APIs, save systems, storefront rules, and platform-specific crash reports in the basement.

The comparison to modern games is deliberately provocative because games are some of the hardest native apps to ship broadly. A game may target Windows, PlayStation, Xbox, Switch, macOS, Linux, iOS, Android, or cloud streaming contexts, often through an engine that abstracts rendering, input, audio, assets, scripting, and build pipelines. That is cross-platform development, just with a different stack. The post is not saying game developers have it easy. It is saying web developers sometimes confuse one convenient portability strategy with the entire category.

The caption adds a useful wrinkle by pointing out that plenty of games also use browser-like technology for menus or UIs. That makes the meme less of a clean dunk and more of an industry self-own. Native applications and web runtimes are not enemies; they are often layered together. A native game might use an embedded web UI for panels, a launcher might be Electron-like, and a desktop app might ship a full browser engine because the team wants HTML/CSS tooling. The real criticism is not “browser bad.” It is “stop pretending the browser is the only way to avoid writing the same app five times.”

The senior developer read is that every portability layer has a bill. The browser bill includes DOM performance, hydration bugs, sandbox boundaries, cross-browser differences, offline constraints, and the eternal sadness of debugging layout at 1.25 zoom. The native engine bill includes platform SDKs, packaging, input devices, GPU differences, store policies, and native crash behavior. Both approaches are valid. The “copium” is pretending one bill does not exist because your team is more emotionally attached to its favorite runtime.

Description

A dark-mode social media screenshot shows user "valigo" with handle `@valigo_gg` and a large Follow button. The post reads: "Modern games are native apps that are being released for like 5+ different platforms, and yet web devs will scream that you absolutely need browsers or you can't be crossplatform. The amount of copium we inhale as an industry is insane". The meme argues that browser-based delivery is not the only viable path to cross-platform software, pointing to modern games as native applications shipped across many targets. Its technical edge is the tension between web portability claims and the real engineering disciplines of native runtime support, engines, build targets, stores, drivers, and platform certification.

Comments

53
Anonymous ★ Top Pick A browser is not a portability layer; it's a second operating system with worse patch notes.
  1. Anonymous ★ Top Pick

    A browser is not a portability layer; it's a second operating system with worse patch notes.

  2. @Sp1cyP3pp3r 2y

    This can't be real

    1. @Dark_Embrace 2y

      https://coherent-labs.com/products/coherent-gameface/

    2. @Dark_Embrace 2y

      Look at the list: Minecraft Microsoft Flight Simulator Ratchet and Clank CONTROL Godfall World of Tanks World of Warships Player Unknown's Battle Grounds Black Desert Online Planet Coaster Sea of Thieves and many more https://coherent-labs.com/powered-by-coherent-labs/

      1. @callofvoid0 2y

        wtf how

      2. 扇子 2y

        lol no wonder sea of thieves' interface is so sloppy and unresponsive

  3. @pwnzkk 2y

    Quake LIVE was a legend 🫡

  4. @Sp1cyP3pp3r 2y

    💀

  5. @Sp1cyP3pp3r 2y

    Hell nahhhhhhh

  6. @Dark_Embrace 2y

    JS is the language of future. Stop wasting your time on C++ and other abominations like Rust, etc. Learn JavaScript 💪

    1. @Sp1cyP3pp3r 2y

      Real

    2. @callofvoid0 2y

      that browser is made by c++ ig

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

        He never broke that layer of abstraction in his life, he wouldn’t know /s

    3. @Sp1cyP3pp3r 2y

      What's 2 + 2?

      1. @callofvoid0 2y

        depends on...

      2. @Diotost 2y

        What is 1/"O"?

        1. @Sp1cyP3pp3r 2y

          NaN

        2. @callofvoid0 2y

          Fantasy way of writting I/O

    4. @CcxCZ 2y

      https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript

      1. @CcxCZ 2y

        And I can also walk you through how this would never work with current HW and how's that changing. - once I'm feeling slightly better

    5. @paul_thunder 2y

      sarcasm, I hope?

  7. @Sp1cyP3pp3r 2y

    Why I didn't know this

  8. @ercolebellucci 2y

    Kinda true, my friend in top 5 college said that too, js+python thats what you need

  9. @l94888u 2y

    Also, you can always use flutter or avalonia ui to build almost native apps

    1. @sylfn 2y

      you can use native toolkits to build really native apps

    2. @callofvoid0 2y

      you can use assembly to be 100% native

    3. @Nefrace 2y

      "almost" is the main word here

    4. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

      Yeah with 252837x the power consumption of a native app, no support for mouse and keyboard and controller either in all of the cases I have encountered.

      1. @sdkgourmet 2y

        Flutter has all of these(even g-tv) controllers support and will work tremendously faster than any frontend js poop. That’s ridiculous, google at least before stating sonething🤪

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

          Bruh are you really comparing a web browser to native UI? How insane do you need to be?

  10. @ercolebellucci 2y

    something like code design

  11. @Dark_Embrace 2y

    I love how this information ALWAYS makes people drop their jaws and shifts their world view 180 degrees. 😁

  12. @RiedleroD 2y

    …this isn't true at all nintendo only releases for the switch (mobile too sometimes) and good luck getting all games to run natively on linux

    1. @RiedleroD 2y

      not saying you need a web browser to be cross-platform, but games are one of the worst examples when it comes to that

      1. @RiedleroD 2y

        the worst example would be enterprise software. you know what is usually cross-platform? hobbyist software.

        1. @KrzysztofHajdamowicz 2y

          Unreal Tournament 2004 was quite cross-platform

          1. @RiedleroD 2y

            …yes, but most games aren't unreal tournament 2004

          2. @CcxCZ 2y

            https://github.com/Immediate-Mode-UI/Nuklear/tree/master/demo The thing you run into with these lightweight crossplatform UI toolkits is generally lack of accessibility hooks, input methods, et cetera. But for games that is rarely an issue.

    2. @chupasaurus 2y

      Nintendo lives in it's own bubble. Actually most of the work to port a game from Windows to Xbox is required to port the same game to Playstation because they both use similar x86 APUs that differ from PCs, which makes the whole comparison with frontend nearly irrelevant.

  13. @KrzysztofHajdamowicz 2y

    True

  14. @rrrrrrrrrrrrrrrrrrrrrrrrr_r 2y

    Sounds like the problem is in their development capabilities, some extra work on optimization and obvious performance problems and everything should work smooth...

    1. @CcxCZ 2y

      I suspect that it's that JS devs are just cheaper to hire. That and in case of Microsoft they're heavily invested in Electron already.

    2. @qtsmolcat 2y

      Different platforms have different APIs, graphics stacks, etc. Browsers abstract that so JavaScript and Co is a lot easier for devs to work with, without having to worry about working around the different platform limitations

      1. @sylfn 2y

        and you have to deal with different browsers

        1. @qtsmolcat 2y

          Most browsers including electron are based on chromium

          1. @qtsmolcat 2y

            (unless you count the browsers from gnome, kde, etc that basically nobody uses because they generally suck)

  15. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

    A network is a network. If you can’t make your developer teams agree on a protocol thats skill issue, not the lack of cross platformness. We don’t need 46263857 layers of abstraction

  16. @sdkgourmet 2y

    That’s you said clowny things about the big power consumption and absence various input support, not me. You contradict yourself now. Also flutter is not native UI. Btw you can run this thing on any common platform. Seriously suggest you to start googling before posting cringe.

    1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

      Bruh sure man. That’s a skill issue if you can’t make proper gui without frameworks in top of frameworks on top of frameworks…

      1. @sdkgourmet 2y

        That’s a major-major business knowledge issue if you don’t see a costs difference between bunch of standalone native apps and a single multiplatform codebase💀 Considering your gaps, I’m pretty sure you cannot deliver a quality product for a single platform, not even talking about multiple native platforms😁

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

          Sure man. Think whatever you want. I prefer native apps rather than bodged together web apps that just ignore all OS gui guidelines… We have different opinions and I don’t need to find yours even acceptable if it goes against my principles. Now go and program a beautiful gui using python running on gtx5099 at 7fps because its layout is calculated on the CPU. Bye have a nice day

          1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

            Real cross platform apps are if you have an adaptive OS. Which has it’s own gui guidelines

        2. @ZhongXenon 2y

          “Having one codebase is good” “So they can run on mixed bag of OSs”? Isn’t that the contradiction? Fix the first problem, which is having too many different OSs. Rather than porting some framework to all OSs. This is truly 2024 mentality… this is why our computers can calculate 69Terraflops of bits but then to re-render an apps GUI when you resize it takes multiple framedrops… and this is why we need a new phone every 3 years or so…

Use J and K for navigation