Skip to content
DevMeme
5908 of 7590
IDEs Editors Post #6468 · source on Telegram

Parallel toolchain universes: three-step Linux vs Visual Studio's descent into madness

Description

White background meme with plain black monospace text. Top block reads: "linux toolchain" followed by a numbered list: "1. install packages", "2. compile", "3. run". After a blank line, second block reads: "windows toolchain" with list items: "1. install visual studio 2022" and "2. WELCOME TO HELL, BITCH." - the last line is fully capital-lettered for comedic aggression. Visually minimal yet highlights stark contrast: Linux development perceived as straightforward CLI package install, compile, execute; Windows workflow caricatured as enormous IDE install leading to complexity, bloat, and configuration purgatory. Resonates with senior engineers who have wrestled with MSBuild configurations, SDK workload sprawl, and 30-GB installers versus a simple `apt-get build-essential && make` flow

Comments

92
Anonymous ★ Top Pick Linux: `sudo apt install build-essential && make`; Windows: “First, reserve a weekend for the Visual Studio installer to finish, then debug why MSBuild thinks x64 is an exotic architecture.”
  1. Anonymous ★ Top Pick

    Linux: `sudo apt install build-essential && make`; Windows: “First, reserve a weekend for the Visual Studio installer to finish, then debug why MSBuild thinks x64 is an exotic architecture.”

  2. Anonymous

    After 20 years in the industry, I've learned that Visual Studio's installer size is inversely proportional to your will to live, while its dependency graph complexity rivals the observable universe's entropy - and somehow, you'll still need to manually configure environment variables like it's 1995

  3. Anonymous

    The real difference isn't the three steps versus two - it's that Linux's step 1 takes 30 seconds with apt/yum/pacman, while Windows' step 1 involves downloading 8GB of Visual Studio, wrestling with Windows SDK versions, configuring MSBuild paths, debugging why vcpkg won't find your libraries, and questioning every life choice that led you to need native Windows compilation. By the time you reach step 2, you've already experienced the five stages of grief and discovered three new ways CMake can fail on Windows

  4. Anonymous

    Windows: where cl.exe is easy to install and impossible to find; LNK2019 is just MSBuild’s love language

  5. Anonymous

    Linux: O(1) setup time. Windows VS installer: Amortized over your career in reboots

  6. Anonymous

    Cross‑platform standup: "Support Windows?" Sure - after a 3GB installer, finding cl.exe in the Developer Prompt, picking the right v143 toolset/SDK, and scheduling an LNK2019 exorcism

  7. @sylfn 1y

    windows toolchain: ziglang.org

  8. @RiedleroD 1y

    2022 is a bit modern, I remember having to install 2016 and 2010, even for modern software and god forbid I install a slightly wrong version

  9. dev_meme 1y

    windows toolchain: winget install LLVM.LLVM # compile # run

    1. @deadgnom32 1y

      LLVM.LLVM 🌚 why not org.LLVM.LLVM.package.distribution?

  10. dev_meme 1y

    better windows toolchain: wsl 1. install packages 2. compile 3. run 😁

    1. @Valithor 1y

      Except it doesn't support POSIX so if you need signals for anything you're fucked

      1. dev_meme 1y

        Source?

        1. @Valithor 1y

          Windows/Unix documentation

          1. dev_meme 1y

            And how does this relate to the WSL2? 🤨

            1. @Valithor 1y

              I'm a ReactPHP dev. It doesn't support the proper POSIX.2 signals under either WSL1, WSL2, or Windows directly so basic functionality doesn't work. Things like child processes and sigterm are completely unavailable.

              1. dev_meme 1y

                Can't you just install the PHP inside WSL completely? Or use Docker for PHP (in WSL or not)? I'm not a PHP dev so can't relate, but want to investigate 😁

              2. dev_meme 1y

                Gotcha. Signals and related APIs for your tasks exist inside WSL2 only, but if you run PHP directly on Windows it lacks support for POSIX features and interaction between Windows and WSL, which introduces inconsistencies (?). So, it's possible for you to use PHP directly in WSL2, but it doesn't address your concern because the problem is all about the POSIX-compliant process handling... You may be technically correct here

              3. dev_meme 1y

                Something's off... That should literally not be true. If you work entirely inside the WSL2 environment, your ReactPHP applications should function without any issues because the WSL2 kernel is fully POSIX-compliant, shouldn't they? However, if you're trying to interact between Windows (which lacks POSIX compliance) and WSL2, then of course you would run into problems. Am I wrong here? Could you elaborate?

                1. @Valithor 1y

                  There many showstopping issues, you should start looking into the compatibility issue for https://github.com/reactphp/child-process and it'll quickly open the door to the others

                  1. dev_meme 1y

                    🤔

                    1. @Valithor 1y

                      The notes are incorrect. Clue states in the issues that he does not develop on Windows

                      1. dev_meme 1y

                        I’m not a PHP dev, so I can’t verify the points you’re making. Therefore, I’ll trust your expertise. Let’s leave it at that. Thank you for the information!

      2. dev_meme 1y

        WSL2 literally runs a real Linux kernel inside a lightweight VM

  11. @Art3m_1502 1y

    In vscode they even added "code" at the end to indicate that the IDE is now actually suitable for development

    1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

      Its not tho 😭💀 vscode is absolute shit and only suitable for web dev stuff

      1. @x4erem6a 1y

        What's wrong with vscode?

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          Everything

          1. @TheFloofyFloof 1y

            At least it's not vim

  12. @Tnam0rken 1y

    You forgot about NET. Framework vX.Y🙃

    1. @RiedleroD 1y

      god I hate .NET

      1. @imfreetodowhatever 1y

        .Net is heluva drug🤓 C - shoot urself in the foot C++ - blow your head off C# - murder your entire company with interop Also: C union [StructLayout(LayoutKind.Explicit, Size = 8] public struct AUnion { [FieldOffset(0)] public int x; [FieldOffset(0)] public double y; } Not even the latest VS will hint to this struct's consumer what is up

        1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          This is because you have to exchange parameters between managed and unmanaged code. There are conventions in compilers how this is done. .NET is managed and uses it own conventions (MSIL) like many other managed languages. There are many advantages to why. In order to be able to do fancy things and call CLI functions you can use attributes in code to hint the .NET Interop class how it should align managed type's values to be passed to the cli function.

          1. @imfreetodowhatever 1y

            Umm...ikr? (If i did not know that then i wouldn't be able to write that struct that is packed like a C union)

        2. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

          Then I dont get this reference? Whats missing?

  13. @hy60koshk 1y

    Well, if VS and NET is hell for the author... what a nightmare should be java for him then?

    1. @Art3m_1502 1y

      Java has Intelij IDEA

      1. @hy60koshk 1y

        yep, so I can wait 2 sec lag after each key input, thanks.

        1. Mario 1y

          Buy a better cpu

          1. @RiedleroD 1y

            yeees, partake in consumerism

            1. Mario 1y

              The only way not to is to buy a risc-v cpu

              1. @RiedleroD 1y

                wha? that's still consumerism

                1. @RiedleroD 1y

                  I mean, less of it is going to some rich assholes, but still

                2. Mario 1y

                  That's open source at least. What's your solution, NOT having literally anything?

                  1. @RiedleroD 1y

                    yep. go to the woods. pick up a frog. a great time for everyone!

        2. @qtsmolcat 1y

          Never had that problem, even in a 6th Gen U series intel

      2. @TheRamenDutchman 1y

        And NET has Rider And Python has PyCharm And Rust has RustRover And...

    2. @RiedleroD 1y

      java is a hell I don't want to be trapped in ever again and I'm saying that as my current main job is writing object-oriented php

      1. @hy60koshk 1y

        my condolences

  14. @deadgnom32 1y

    still meaningless repetitions. is there another LLVM package?

    1. @kvassilisk 1y

      Clangd

      1. @deadgnom32 1y

        are there two clangd packeges?

        1. @kvassilisk 1y

          I think on Winget clangd is llvm.clangd and all the other stuff is llvm.llvm

  15. @deadgnom32 1y

    and they have no name collisions on any other system, but have to be placed inside of a namespace for some reason.

  16. dev_meme 1y

    LLVM can be installed with winget with just winget install llvm, he's true. it's my own thing to use the full package ID when installing something with winget. that's all

  17. @ognotme 1y

    \

  18. @Valithor 1y

    You do not understand what POSIX is if that's your argument, please Google first

    1. dev_meme 1y

      Bruh

  19. @Valithor 1y

    WSL2 is a VM running a Linux kernel, not POSIX compatibility for Windows

    1. dev_meme 1y

      Ofc it's not. So what?

  20. @Araalith 1y

    Linux toolchain 1. Install packages (3 days later....) 2. compile..

    1. @sylfn 1y

      dial-up or gentoo? why so long...

      1. @Araalith 1y

        If we are talking about Gentoo - forget what I said about 3 days. It can take much more...

        1. @andrei_nik_kolesnikov 1y

          just put a nix on top of it :)

        2. @andrei_nik_kolesnikov 1y

          also, binary cache exists now, if you don't want to tweak your USE flags

  21. @perunvolk 1y

    This is why I code in assembly

    1. @sylfn 1y

      which one

    2. @purplesyringa 1y

      I still have no idea how to compile assembly on Windows

      1. @purplesyringa 1y

        Do I just use nasm?

      2. @sylfn 1y

        step 1. open browser step 2. google "how do i replace windows with linux"

        1. @purplesyringa 1y

          that usually requires admin privileges 😬

          1. @sylfn 1y

            you dont need admin privileges if you can just switch the drive

            1. @purplesyringa 1y

              okay, I still need physical access

              1. @purplesyringa 1y

                that doesn't tend to work well when writing malware 🙂

              2. @sylfn 1y

                well then use https://lekkit.github.io/test/index.html

                1. @purplesyringa 1y

                  the fuck is this

                  1. @purplesyringa 1y

                    jesus...

                    1. @purplesyringa 1y

                      is that wasm?

                      1. @purplesyringa 1y

                        wow

                  2. @sylfn 1y

                    RVVM on WASM demo

                2. @RiedleroD 1y

                  nahh why do they remap the keyboard layout 💀

                  1. @sylfn 1y

                    direct input

  22. @perunvolk 1y

    Requires only a notepad (optional) and working computer

  23. @TheRamenDutchman 1y

    Also, Windows toolchain: 1. Google the installer 2. Click the right link, avoid clicking on links that pose as your tool but are malware 3. Run the installer, be hand-held tough a long, tedious process. 4. While going through, make sure to (un)-check any boxes that would lead it to install malware along your tool 5. Restart your computer. Don't ask, just do it. Windows might need to update for 20 mins too 6. Your tool is most likely installed, you may need to open a terminal to add it to PATH

    1. @leandrofriedrich 1y

      what does any of this mean

    2. @purplesyringa 1y

      I wouldn't expect that to be a thing on developer-oriented software

      1. @purplesyringa 1y

        Are you speaking from experience or parroting a meme?

        1. @leandrofriedrich 1y

          Probably

  24. @TheRamenDutchman 1y

    Man, Linux is easier to install software on

  25. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

    HAHHAHAHAHAHAHA

  26. @MrZarei 1y

    VS is definitely the best

  27. Mario 1y

    And consumerism isn't bad

Use J and K for navigation