(this blog can be a bit rage baiting for linux users... I'm not responsible)
I have arch linux and windows 11 dual booted on my PC, most of my work is on arch but I study for the school in some platforms that doesn't work in linux, so I use windows for studying... I have gcc, make, cmake and other software development regular apps on my arch installation, I love that they are CLI based, I love the simplicity and minimalism of these tools and I HATE the bloated tools of windows, I hate telemetry and I hate that Bill Gates buys pizza using the money that he got by selling my data!
but once upon a time, I was really lazy to study, so I wanted to discover what microsoft provides in the realm of software development tools?
if there is no tools made by microsoft, I can download 3rd party tools. I had visual studio 2022 installed but I wondered what is the C/C++ compiler that actually compiles the code under the hood?
can I access it through command prompt?
I discovered that I can, more than that, I discovered that there is a COMPLETE ecosystem built for C/C++ development that's very mature and can overcome open-source tools!
I found cl.exe (C/C++ compiler), mt.exe (for managing app manifest), rc.exe (for managing app resources), NMAKE (GNU Make clone), MSBuild (a custom build system), dumpbin (for dumping executables and object files), WinDbg (windows debugger, thought it's not accessible through CLI), CMake and MANY MANY other tools!
it didn't take me one week to intuitively understand the basics of these tools and started working with them, integrating them is a piece of cake, and the results are really impressing!
why I'm saying that?
I don't mean microsoft is a good company or windows is a good OS, windows still a bloated spyware, and microsoft still relies on your data to fill up Bill Gates credit card!
but I'm saying that, at least you can change this by a bit simple work.. I really loved the vibes or windows-similar-to-linux experience!
- I even compiled neovim from source for the sake of doing so using CMake and it's working well up till now (but I think I needed lua installed or smt.. check the depdendencies)!
- I added the developer command prompt as a dedicated visual studio code terminal profile to integrate it in visual studio code, and it's working surprisingly well!
- CMake can make NMAKE files and visual studio solutions for you, it depends on whether you want to deal with visual studio or not!
- you can actually install clang compiler in windows via visual studio installer, while I didn't try it, I'm sure it'll be interesting!
a simple note that microsoft linker doesn't support linker script, this can be bad if you're working on a specific project that needs specific memory layout, but most of the use cases can be done through the command line arguments (microsoft uses /option instead of -option for most of the tools)
it's really an interesting and exciting experience, I suggest you to try it in a VM if you only have linux installed!
you'll have the advantage of fucking around with the OS freely!
a new UPDATE:
I don't know how I missed this, but since I have git bash installed on my machine, I already have most of the linux utilities I use in day to day work!
I have grep, tar, ls, less, which, wc, cat, du (disk usage), touch installed in C:\Program Files\Git\usr\bin... I just added this path to my PATH environment variable and I can use them ALL!
further more? that dir has bash.exe.. which means by simply typing "bash" in my windows terminal, I can use bash shell itself opened in the current dir and ready for work!
there are some conflicts that will happen, windows has find command and that dir contains a find.exe file.. the solution I made is that I added C:\Program Files\Git\usr\bin to the system PATH and I added it bove system32, by this, windows will first see the utilities from git before its own utilities. I don't know the side effects of this but it works pretty well for me!
No comments:
Post a Comment
any inappropriate comments will be deleted and the commenter will get blocked permanently unless I'm free to fuck him.