5 ms·
You feel comfortable with git because someone put a lot of work into making its source code and ecosystem portable. https://github.com/search?q=repo%3Agit%2Fgi
by alganet 2y ago
You feel comfortable with git because someone put a lot of work into making its source code and ecosystem portable.
https://github.com/search?q=repo%3Agit%2Fgit+WIN32+OR+mingw+language%3AC&type=code https://github.com/search?q=repo%3Agit%2Fgit+WIN32+OR+mingw+...
If no one had done that work, you'd have to port it yourself.
Cosmo provides a development environment that can ease this work. It's not only about the fat binary.
- nox101 2y agoThat's a good point. I guess I'd be more likely to pick some library because even if the binary is portable, the OS is not. Understanding where to store user preferences for example. (unix usually puts them in ~/.somefolder but on Windows it's somewhere in LocalAppData and on mac it's often in ~/Application Support). Understanding that paths have different parts, ... I'm sure there's more. I don't know to what level C++20 does all this now with filesystem and threads etc... There's also things like libuv, Abseil, etc. But, maybe I'll check out cosmo next.
- yjftsjthsd-h 2y agoEven if you have to do some runtime detection/self-configuration, cosmo is great because it lets you pack that logic into a single binary and pick it at runtime, so the user experience is still "download a single file and run it and it works" regardless of their OS.
- alganet 2y agoThere are all sorts of issues in trying to come up with a single abstraction for multiple platforms. It's an impedance mismatch problem, there is no single best solution. I like where cosmo is putting effort. The self-hosting toolchain and build system for example. That was always a knowledge barrier for me (I'm a webdeveloper, I know nothing). Personally, it was so different and shocking, that I started to understand a lot of things by the contrast it created with other code. Cosmos's Makefiles were different, the linker was being used in a way that made me notice it as a distinct part of the toolchain, the demos actually worked, etc. It made me interested in that stuff, made it more acessible.