Earlier quoted context omitted.
> The theory behind the microkernel is that operating systems are complicated. Seems like a blatant straw man to me.
The advantage of microkernels is that they can be extended with “untrusted” code like hardware drivers or file systems. This runs in user space and thus any bugs in such code will not crash the kernel process. So I agree with you that Linus is presenting a straw man and your comment shouldn’t have been downvoted.
Monorepo is great if you're really good
61–70 of 159 posts
Re: Monorepo is great if you're really good
#62Ugh I don't like his use of the word dumbass. Coding is hard, it's easy to break things. We've developed lots of tools of strategies so we don't have to rely on people getting it right every time. Branching: getting forked by your worst programmer This example seems contrived I've never worked anywhere where having a fork that works for some scenarios and not others is tolerated for long. This would be given the high…
> We've developed lots of tools of strategies so we don't have to rely on people getting it right every time. I think one of the points of the article is that this isn't (sufficiently) true; people will use tools incorrectly and make excuses for deviating from the strategy often enough that it's a problem. > Ugh I don't like his use of the word dumbass Substitute "well-meaning person who makes a totally understandabl…
Re: Monorepo is great if you're really good
#63> the entire code base got forked, and the entire org is now held hostage by the dumbass. > Of course in a Good team, needless dependencies would be weeded out in code reviews, and a Culture would evolve over time avoiding needless dependencies. Really, the one consistent thing is that if you have a good team, you'll make it work no matter what tech or decisions you make (assuming you're also good enough to know when…
Tooling CI into a monorepo can be nasty, too. Do I update my staging deployment for every job on every commit? You can slow down deployments pretty fast, too, and make integration a real pain.
There is a little bit of a novel problem in correlating N feature branches and cloning them, but it's not that much more complicated than correlating N subprojects in a monorepo.
Re: Monorepo is great if you're really good
#64Linus Torvalds said something about this, in relation to microkernels. But the gist is in how interactions between many pieces makes the whole thing complex. Here's the quote from his book "Just for Fun". "The theory behind the microkernel is that operating systems are complicated. So you try to get some of the complexity out by modularizing it a lot. The tenet of the microkernel approach is that the kernel, which is…
When you break up a problem the goal is to find clear bottlenecks of complexity such that you can abstract a thing to its inputs and outputs and ignore the complexity within. You reduce the amount of knowledge required from any given perspective, thus reducing peak cognitive load.
Sure the system is as or possibly slightly more complex, but there is a distinct advantage to reducing the peak complexity of any given sub-problem.
Re: Monorepo is great if you're really good
#65>>>* They don't like to have to clone lots of other repos, and to then worry about their versions (in part because the tooling support for this might be less than great).* I think this is the argument around which the whole post is made. Everyone does want to work in a small space where they control everything. I want to see git log with just my code commits - so I'll make a microservice out of it. All other argument…
Re: Monorepo is great if you're really good
#66> What do you do when you have a branch working on Android and another branch working on iOS and you have deliveries on both platforms? You postpone the merge, and keep the fork. Honestly, it never occurred to me that you're deploy from more than one branch. If you can't merge the branches into , then what's in the branch doesn't make it into a release (from my experience).
Release branches! Deploy 1.1 from the 1.x branch on the same day you deploy 2.2 from the 2.x branch. 1.x merges into 2.x which merged into master.
Re: Monorepo is great if you're really good
#67I don’t quite get the point of this article though. I am a very enthusiastic but not rockstar programmer, and I don’t have problems with a large mono repo.
Re: Monorepo is great if you're really good
#68My primary language now is Common Lisp and I have one mother of all mono repos for all of my personal Common Lisp code. I set the root of this repo as a Quicklisp load point so all my libraries and applications are available with a Quicklisp load. Life is good. I don’t quite get the point of this article though. I am a very enthusiastic but not rockstar programmer, and I don’t have problems with a large mono repo.
Re: Monorepo is great if you're really good
#69My primary language now is Common Lisp and I have one mother of all mono repos for all of my personal Common Lisp code. I set the root of this repo as a Quicklisp load point so all my libraries and applications are available with a Quicklisp load. Life is good. I don’t quite get the point of this article though. I am a very enthusiastic but not rockstar programmer, and I don’t have problems with a large mono repo.
Re: Monorepo is great if you're really good
#70Let's assume without proof that Glibc developers are good. Similarly, kernel.org developers are good as are the gcc.gnu.org people. Should glibc, gcc and the kernel be in a monorepo? (Cue laugh track ...)
Did you just invent the unikernel?