6 ms·
To this day I still can't believe the same person gave us Linux and git. The person might not be the most palatable, but what incredible feats of engineering he
by VeejayRampay 11y ago
To this day I still can't believe the same person gave us Linux and git. The person might not be the most palatable, but what incredible feats of engineering he's capable of.
- mbrock 11y agoYet in a way, both Linux and git are products of laziness... the kind of laziness that Larry Wall called a programmer's virtue. Linux is a pretty standard Unix kernel clone that got traction as an x86 kernel, combined with the GNU userland and various distributions. Git was intentionally designed to be "simple and stupid." It's extremely fast and reliable because of this simplicity, and because Linus knows how filesystems and kernel caches work. So I agree that Linus has helped bring about some remarkable things. But it's not because he's an ultra-productive genius. He has a knack for C coding, an impatient and "lazy" attitude, and a lot of help. And I think he belongs to this kinda older school of hacking, part of which is his rudeness toward bad patches. The GPL is also a big part of these success stories.
- TorKlingberg 11y ago> It's extremely fast and reliable because of this simplicity, and because Linus knows how filesystems and kernel caches work. I would add an additional reason that may be unpopular here: It is written in C. A version control system doesn't need to be in C, and indeed Mercurial is written in Python, but C makes it faster.
- randcraw 11y agoC also makes Linux uncomplicated in ways that hackers love. Because the language is simple and unsexy, the developer's focus is only on what you're doing. You don't have to learn someone else's model in order to add code -- a bunch of proprietary legacy data structures, conventions, and methods. You contribute directly to the koan of Unix in its native tongue, with minimimal mental impedence.
- mbrock 11y agoAnd with Git, for example, you know that the project you're contributing to won't be dependent on some strange runtime, so all kinds of people and projects will find it easier to trust it as a core part of their infrastructure... so long as the project can maintain a reputation of secure coding practices...
- ktRolster 11y agoCan you imagine if the kernel had been written in C++? With each iteration, C++ looks like a completely different language. If Linux had gone through those changes since the early 90s, it would look like a baroque conglomeration, like the strange twin-spires of chartres cathedral.
- xorcist 11y agoThe choice of language is uniquely important. Not so much that C "makes it faster", but it is so much more approachable. I believe that one reason that Linus started over with git instead of extending monotone was that the latter is C++.
- kbart 11y agoSimplicity is one of the main virtues of engineering. To solve a complex problem (version control) in a simple way that works (git) is a major feat of (software) engineering.
- mbrock 11y agoYep. Somehow I want to emphasize that Git-like quality isn't attained through extreme heroic efforts, but through having enough experience and good taste (and what else?) to get to the essence of the problem...
- masklinn 11y ago> and what else? Domain knowledge, or the genius to reinvent it from scratch (CAS and merkle trees for Git)
- andreasvc 11y ago> isn't attained through extreme heroic efforts "heroic" is ill-defined, so don't know about that, but the effort was arguably extreme, in the sense that Linux and git are among the best at what they do. Lots of other people who might have the same experience and abilities did not achieve things like that. I just don't see why you would want to minimize the achievement in any way.
- mbrock 11y agoI want more people to do Linus-style work, instead of endless growing slow heaps of complex overengineering, so somehow I want to encourage intelligent laziness rather than hard stupid work...
- tmoertel 11y agoOne of the overlooked reasons that Git has gotten so much traction is that Linus solved the right problem. While others were trying to make the ultimate DVCS, he was trying to make the Linux kernel development process easier.
- gkya 11y agoOr rather, that Linus solved the problem. If you or I published the git tarball two days before him, it'd be overlooked, and everybody would, IDK, use mercurial?
- smonff 11y agoI am a lazy person, which is why I like open source, for other people to do work for me. https://en.wikiquote.org/wiki/Linus_Torvalds#2015 https://en.wikiquote.org/wiki/Linus_Torvalds#2015
- digi_owl 11y agoThat may be his biggest virtue, his ability to be self-depreciating. Also leads to him being ready to admit mistakes. Maybe its a Nordic thing?
- smonff 11y agoYes, from a non-american point of view, people are not exaggeratedly self-confident and enthusiastic, for european, being a bit pessimistic can be considered as normal. And french criticize everything. Even self-criticizing is sometimes allowed.
- digi_owl 11y ago> Git was intentionally designed to be "simple and stupid." To bad there are a whole lot of stuff being "introduced" to Linux space that is trying for the exact opposite, being "complex and smart"...
- crdoconnor 11y agoGit is good under the hood but the interface is something of a mess of overloaded concepts, confusing terms and unexpected behavior. I'm somewhat disappointed that mercurial didn't become the de facto versioning standard instead.
- VeejayRampay 11y agoIt's likely that Linus built git around what worked for HIM and the LKML rather than for a wider audience. A lot of additional tools that you can plug on top of git-core make it more palatable. And that very plugging is made possible that the quality of the interface to the core.
- david-given 11y agoI use hg-git as my git client; I get to use the hg semantics and UI but still talk to, well, github behind the scenes. There are a few rough edges but it works pretty well. But hg-git doesn't talk to the git CLI at all --- there's a Python library which speaks the wire protocol. So it'd be entirely possible to build a git workalike with a traditional DVCS user interface which seamlessly interoperates with git repositories. I wonder if anyone's already done this? ...dammit, I have too many stupid projects on the go as it is.
- ktRolster 11y agoReally? Git and Mercurial seem about the same to me. Maybe I don't get down deep enough into the features?
- dankohn1 11y agoBut other than Linux and git (and a diving app [0]), what has Linus ever done for us? [1] [0] https://github.com/torvalds/subsurface https://github.com/torvalds/subsurface [1] https://www.youtube.com/watch?v=ExWfh6sGyso https://www.youtube.com/watch?v=ExWfh6sGyso