3 ms·
I think you and the author are both right. Given infinite time, would a company want to replace their build system and OS with something better? I think the a
by ghoward 4y ago
I think you and the author are both right.
Given infinite time, would a company want to replace their build system and OS with something better?
I think the answer is yes. Just look at Google: they implemented their own build system (Blaze/Bazel), they implemented their own Linux distro (Chrome OS plus their internal distro), and they're implementing their own OS (Fuschia).
So you could say that once Fuschia is implemented, Google's code has no [external] dependencies, which is what I believe the author is getting at.
Now, most companies won't get that far, but they may be submitting kernel patches for their servers, which means they are pseudo-writing their own OS, and they may have custom build systems. It all depends on how much effort they put in and whether they need those particular things.
Also, if a piece of software is written such that it is portable to all OS's, and perhaps even runnable on bare metal, I wouldn't say that the OS is a dependency; it's more an optional dependency, if that. I've written software like that, and while it is hard, it is possible, and it's more likely to be done the more effort is spent on the software. So I think the author's thesis still holds for the OS.
I'm also writing my own build system because I hate CMake, and that is the only viable cross-platform option right now.
In other words, yes, you are right in practice. But I think you being right does not mean the author isn't right either.
- klabb3 4y agoThat's a great point, and indeed happens at mega corps like Google. That said Google still ships software for iOS and their web apps are made to work with non-Google browsers. I guess the point is that software makers shouldn't strive to remove dependencies because some of them are there for pure interop reasons. Even Apple, which is capitalizing on every possible benefit of virtual integration, has large issues interfacing with the rest of the world, at the peril of their users. That's a business decision though, and suboptimal from an engineering perspective.
- ghoward 4y agoI think I agree with what you said. Not every dependency should be eliminated just because.