3 ms·
Software development isn't housing development. You lay a concrete foundation knowing exactly what is being built on top. The typical way of developing software
by hot_gril 4y ago
Software development isn't housing development. You lay a concrete foundation knowing exactly what is being built on top. The typical way of developing software is like adding stories to your house until it falls over, then rebuilding it stronger, which is perfectly fine in the software world. Otherwise things get overengineered.
In practical terms, the makefile or whatever is usually good enough.
- IX-103 4y agoIf you're big enough to roll your own software ecosystem -- which means you have thousands of developers working on hundreds of closely coupled projects in a single code base -- and you need repeatable builds, then Bazel makes sense. Bazel isn't designed to make things easy. It isn't even designed to make things fast (though it is easy to add that on due to repeatable builds). Bazel is designed to prevent you from shooting yourself in the foot; providing strong controls on project dependencies, both dependencies of your project as well as other projects' dependence on your project. That means in 99% of companies the answer is no. You're better off with CMake or something thing like that.
- IshKebab 4y ago> then rebuilding it stronger That's a very rare occurrence in software. Honestly it's probably about as common as in housing. You can rebuild parts of a piece of software but the build system is generally really foundational and almost never changes in my experience. Especially if the software isn't a library so nobody except the main developers has to interact with the build system.
- hot_gril 4y agoThe build system can change with hardly any of the code changing. This is evident in how I've never even had to think about the build system at my SWE day job. It's evolved in the meantime. What's often impossible to replace without a full rewrite is a backend's DBMS, and people tend to underestimate how tight of a coupling that is. Only gets worse with abstraction.