Linus Torvalds Receives IEEE Computer Pioneer Award
mikejuk (1801200) writes "Linus Torvalds, the 'man who invented Linux' is the 2014 recipient of the IEEE Computer Society's Computer Pioneer Award, '[f]or pioneering development of the Linux kernel using the open-source approach.' According to Wikipedia, Torvalds had wanted to call the kernel he developed Freax (a combination of 'free,' 'freak,' and the letter X to indicate that it is a Unix-like system), but his friend Ari Lemmke, who administered the FTP server it was first hosted for download, named Torvalds' directory linux. In some ways Git can be seen as his more important contribution — but as it dates from 2005 it is outside the remit of the IEEE Computer Pioneer award."
Linus Torvalds did not "invent" Linux. He implemented a POSIX kernel, working from basic UNIX standards and preexisting hardware (the 80386 MMU). UNIX was an invention. Linux was "just" an implementation. As it grew, there were various inventions going into it. But Linux "as such" was not an invention.
In contrast, Torvalds did basically invent Git. Its shape and functionality, as opposed to what Linux started with, were not predetermined.
I'll bite :-)
I used csv and subversion back in the day, switched to hg, and now switched to git. I manage a smallish project with 5 or so contributors and contribute to some other projects.
Git/hg vs csv/svn is all about distributed vs centralized. With git/hg, you learn to love branching and merging, and commit as often as needed.
Git vs hg is more subtle, but I am strongly in the git camp now.
In my perception, hg et al are about lines of code. You contribute code and the code is checked in. git is all about commits. Your work is in commits, and commits can be rebased, squashed, amended, etc until they are just right to express your contribution. Git is not so much about communicating with yourself about how you got to your code; git is about communicating to the rest of the team what you are contributing. In a sense, you are not (just) writing code, you are writing a commit history.
That said, what I miss in git is the "version history" of commits. I would like to see some sort of "is-based-on" link between the 'final' commit and the commits it is amended, rebased, and/or squashed from. I would love to be able to 'expand' a final commit to see the history that went into it, because now you are sometimes choosing between commit elegance and keeping track of development history (aka in the choice to amend a silly type you choose elegance; in the choice to -no-ff merge a branch you choose history).
You can tell whether or not someone was actually there by whether or not they mention things like "Minix" in a list of viable operating systems.
I was part of a project at the time that needed real networking and a real Unix development environment. We spent four months working to find an alternative, then shelled out for a series of early Sparc pizza boxes. SS2 boxes maybe? As I recall, we got four at nearly $15k each that ate up a huge chunk of our budget.
Two years later, we had liquidated them and were doing all of the same stuff on Linux with cheap 486 boxes and commodity hardware, and using the GNU userland and toolchain. People here talk about GNU as predating Linux while forgetting that prior to Linux, the only place to run it was on your freaking Sparcstation (or equivalent—but certainly not under Minix), which already came with a vendor-supported userland. GNU starts to be interesting exactly when Linux becomes viable.
All in all, the change was bizarrely cool and amazing. We were like kids in a candy store—computing was suddenly so cheap as to almost be free, rather than the single most expensive non-labor cost in a project.
STOP . AMERICA . NOW