Linus on Subversion, GPL3, Microsoft and More 350
victor77 writes "Linus has repeatedly slammed Subversion and CVS, questioning their basic architecture. Subversion community has responded...how valid is Linus's statement?" This and many other subjects are covered in this interview with Linus.
Can't RTFA... (Score:3, Interesting)
Re:Can't RTFA... (Score:1, Interesting)
Since as you must know that makes SVN totally different from the others like git, mercurial and bazaar.
And if you want to get into things that CVS and Microsoft's crappy VSS can do but SVN can't - how about aliasing files and directories such that X trees share some common files that must be in sync yet managed? The very SVN model prohibits this without some messy client or server side scripting.
Re:SVN vs. CVS (Score:5, Interesting)
Simply move the directory you're working in and type 'git init' and you're off and running. If you're developing the same code on multiple machines, it's simple to develop on them independently and still sync relevant changes. Frustrating.
With SVN, you have to set up a central repository (not difficult, but tedious) and if you're working with the code on multiple machines that aren't always on the same network you either have to have a SVN repository on each one and manage syncing them somehow, or one machine can't make commits when the other isn't on the network. Frustrating.
I still find git to be a little confusing (especially in regards to warnings seen when pushing or pulling changes from one repository to another and merging branches), but I've decided that even if git isn't the best answer, a distributed version control system is closer to the Right Thing than the old way of doing it (for my purposes, at least).
Re:Article (Score:1, Interesting)
Re:Article (Score:5, Interesting)
But SVN is limiting. For example I have a fork of the Second Life source, and SVN was PAIN for that. I ended up switching to SVK because it was the first thing I found that could sync with a SVN repository (which is what LL hosts), but Git would probably be also a fine choice as well.
SVN's problem is that when you want to branch somebody's source but still follow it by merging improvements it becomes really painful. You have to use svn-load-dirs, which is a hack. You have to give it megabytes of source to process, which can suck really badly when you've got your SNV repository hosted externally so that other people can access it.
Re:Can't RTFA... (Score:5, Interesting)
For instance, the comment from the Subversion team states that they hope the kernel dev team find some VCS that they like. They already did and it was git (http://git.or.cz/), a program that Linus Torvalds wrote himself.
As a side comment, I like git over Subversion for a number of reasons. First it has data verification in the form of checking SHA1 (note that this isn't for repository protection from attacks but just for verification from corruption). It's distributed, and doesn't blow up the repository size when the repository gets large. SVN keeps a
Even if that's not much of an increase in space, it's ugly and it makes the repository (just files) hard to copy (have no idea why they implemented it this way). Of course there's a backup feature in the program so there's no reason to copy by hand, but still, it's inelegant.
Important Differences (Score:3, Interesting)
This, people, is the key difference between Linux and Microsoft, and even Apple. Steves Ballmer and Jobs both want to be seen as visionaries, as all-knowing technological sages of our time. That isn't neccessarily a bad thing, as we've seen with the way Jobs has turned Apple around since he took over, but it does explain the difference between the philosophies of the groups: Apple and Microsoft take the approach of throwing new features in whenever they find them, so as to be seen as forward-thinking and 'next-gen', and sometimes that works and sometimes it doesn't - Spotlight being an example of something that does work (yeah, there had been desktop search before, but nothing quite that efficient and right-on-the-desktop in what can be called the 'Big 3' operating systems), and things like the are-they-in, are-they-out dropped features from Vista being an example of something that doesn't.
Linux, however, taking it's cues from Linus, approaches things from an engineering perspective. Visionary? That's all well and good, but will it run the risk of breaking? Yes? Then it's not going in. When you don't have a product to sell, it's a lot easier to base your development priorites on a more sound engineering base. Therein lies the difference; Jobs and Ballmer see themselves as visionaries, while Linus - who, whether he likes it or not, is the 'spiritual leader' of the Linux community - sees himself as 'just an engineer'. (Of course, the point could be made that Linus has the luxury of only being concerned with the kernel, where security and stability are the key things and form over function is rarely if ever required - do the likes likes of Mark Shuttleworth, Matthew Szulik, etc see themselves as engineers, or as visionaries?)
if it isn't broken (Score:3, Interesting)
If CVS isn't broken, I have a three-legged ladder I'd like to sell you. I'll even set it up in the parking lot and, with but a modest presence of mind, balance myself motionlessly on the very top step to prove how very not-broken it really is. On one foot. And I'll juggle, too.
CVS is what happens when you've roped yourself up into some high, awkward, inaccessible place, then you discover you brought along the wrong toolbox. Subversion is a fancy pair of vise-grips with rubber handles: doesn't hurt your hand so much when you have to grasp with extreme force the bolt head with no remaining flat edges, because you're too damn lazy to rope yourself back down to get the tool you should have used in the first place.
Re:GPL Comment (Score:1, Interesting)
Re:Linus would not be pleased... (Score:3, Interesting)
But to be sure, allow me to draw a parallel to help illustrate what I understood:
It's not that Walmart is a crappy store... it's not and they generally have some pretty good stuff there. It's the people who shop at Walmart that gives Walmart its reputation.
Is this pretty much what you're saying about Microsoft stuff? It's not that the products are bad--they're not. It's the people who use Microsoft products that give Microsoft its bad reputation.
I think there is a lump of truth to this assertion. Microsoft is a lot more ubiquitous and available than many competing products. Certifications demonstrating expertise typically only require enough money and a list of answers to acquire.
I think this is an assertion that requires some meditation: It's not the products, it's the users...
well, here's my take on the Linux kernel (Score:1, Interesting)
Re:Can't RTFA... (Score:3, Interesting)
The problem is you can have "everything is a file" or you can have "inconspicous metadata".
This implies a return to the structured-data days and an end to the 'Unix Philosophy'. And you kind of have that these days, with microsoft's offerings. And we all know how much you love the Registry.
Re:Why Indians Don't Contribute Much to Linux (Score:3, Interesting)
I work for a company that got burned on outsourcing its support to India. That said, the one guy we hired off of the outsourcing company knows more about Linux than the rest of our system administrators put together. To this day, if anybody has a question that we've found unanswerable by an American employee, we will send him a message.
Re:PARADIGM SHIFT! (Score:5, Interesting)
And do try to go easy on the phrase "paradigm shift" in your explanation even if this is one; marketdroids love over-using it and it's come to be a code phrase for "same old, same old". Focus on how things have changed for you and you'll get a better response.
Re:Can't RTFA... (Score:3, Interesting)
Re:Not everyone is a Linux kernel developer (Score:2, Interesting)
Re:PARADIGM SHIFT! (Score:4, Interesting)
In exactly what way does a distributed source code management system change the way you work?
It gives you private branches and commits, which allow you to work with the power of a VCS, but without having to pollute the main repo with dead ends, poorly written changes, and experiments. It also allows for true disconnected operation, and allows any developer to "pull" from another developer, again without having to pollute the master repository.
And specifically with git vs. SVN, git offers true branches and tags (unlike SVN's bizarre, nonsensical "simulations"), and true merges.
And do try to go easy on the phrase "paradigm shift" in your explanation even if this is one; marketdroids love over-using it and it's come to be a code phrase for "same old, same old". Focus on how things have changed for you and you'll get a better response.
It (git and distributed VCS) is a "paradigm shift" the same way that, say, the relational model is a paradigm shift over the network model. It generalizes the problem and strips it down to certain fundamental concepts, and makes those concepts available to you directly, instead of under a layer of ill-conceived and limited operators.
For instance, in SVN, how do you move a changeset from the tip of one branch to another? You can't. It's not allowed by the model, even though in terms of more fundamental operations, it's easy to describe. But in git, you can. Just cherry pick it to the new branch, then move the tip of the old branch back one changeset (the "dangling" changeset on the old branch will eventually get garbage collected). You could also write your own "git-move-changeset" command using the existing low-level git commands.
Instead of considering the deeper, underlying issues, the SVN team just cloned CVS's behavior and made it cleaner. Too bad.
That's exactly what a "paradigm shift" is: finding the deeper, fundamental operations and then showing how the existing systems are just subsets of that functionality.
Re:Linus isn't "Good Enough" (Score:1, Interesting)
Re:Can't RTFA... (Score:3, Interesting)
I think most criticism of svn comes from thinking that ALL it ever intended doing was to reimplement CVS in a better way. That was kinda the 1.0 goal - things have been moving on since. The svn developers have been discussing ways of making it a bit more "distributed" or able to work better in a decentralised manner.
And as you say, when subversion is "good enough" for someone the good cross platform support, wide support from 3rd party tools, friendly easy to understand interfaces for version control newbies and Windows users etc etc make it a good choice overall. It has successfully brought open source tools (often dragging Apache with it) into previously MS only development shops and displaced a lot of VSS installations. It has opened the eyes of a lot of Windows developers to the world of open source.
Re:Article (Score:3, Interesting)
To some extent, the heavy influence of India-based developers on the kernel is due to IBM having a major lab there, which is being emulated by a number of other Linux-backing corporations. The quality of technology education seems exceptionally high from what I can see, and to be honest, the Indian culture seems to be oriented towards higher things than money.
Re:Can't RTFA... (Score:3, Interesting)
Re:So negative: Think so? I don't... just opinion! (Score:1, Interesting)
He's VERY relevant, & in 1 regard (imo, @ least) - because Mr. T. holds the dev team to a fairly 'small' (purely relative term) on the CORE development, & the kernel of the LINUX(es) in HIS control?
SMART!
Imo, Linus T. keeps what happened to UNIX's from happening to LINUX - fragmentation, SO bad, that one binary on 1 version of *NIX won't run on another version of *NIX...
I.E.-> IMO? Mr. T.'s control @ the "kernel/core level" of the Linux OS helps (partially @ least) to keep Linux from splintering into a "bunch of warring factions" that cannot "get along" basically...
& THAT is what happened to UNIX in general!
(E.G.-> Between Bell Labs original & say, BSD variants (this particular *NIX variant case in particular bugged ME recently - I saw that the multiplatform CIS TOOL (a security benchmark) would run on FreeBSD, but not OpenBSD... though they come from the SAME BASE CODETREE (Berkeley code)), Solaris, SCO, HP-UX, IBM AIX, Linux etc. et al...)
Imo? Guys, today??
We should ALL have been running some form of UNIX on our PC's, but this 'war for domination of the PC OS market' (for lack of a better expression on my part, but this WAS what it was no doubt about it between various *NIX vendors on ALL hardware platforms) did THAT concept, right in...
Good opening for Bill Gates & crew, really...
They took the biggest share of the market, with inferior OS @ the time no less, in DOS, & even later in Win3.x/9x! UNIX & Os/2 were technically superior... IBM ditched out on Os/2 imo, & UNIX vendors could NOT agree on std.'s & a unified point of control (& thus, today you have what you have, between *NIX's: binary incompatibilities)... Linus T. stops that for Linux @ least.
However/today? Windows NT-based ones ARE DEFINITELY "on par" with any *NIX, & better in many respects (including device driver capability, more refined applications base, & probably larger than on *NIX in general + of higher quality & compatibility with the majority of users out there & what tools they use, & overall development for the Microsoft Windows NT-based OS platform (where the MONEY IS MADE TODAY, mostly - & money? TALKS LOUD! They say, "talk's cheap", but... not when money does the talking!))
Money... it spurs developers & companies to create product, more than anything imo, because we all have to eat/make bills/plan for our future & those of our family etc. (big motivator).
All in all? L.T. & the folks working on Linux are good people, who must REALLY believe in what they're doing... they kept @ it, to compete with Windows, where even HUGE CORPORATIONS LIKE IBM, who had Os/2 which WAS a 'better DOS & better Windows' & better OS period, than Win3.x by a LONGSHOT, gave up.
Pretty impressive that, imo @ least.
I personally think Mr. T. is positive on many notes, very thoughtful, and very, VERY intelligent... from a number of his statements in said interview in fact.
My fav. being this one:
"Linus: I've never been much of a visionary -- instead of looking at huge plans for the future, I tend to have a rather short timeframe of 'issues in the next few months'. I'm a big believer in that the 'details' matter, and if you take care of the details, the big issues will end up sorting themselves out on their own"
Because, that man's RIGHT AS RAIN & you can tell he is of a developer's mindset: The "devil's ARE in the details"...
Without working on them? YOU CANNOT SOLVE THOSE 100,000 foot view visions/problems others have. Every BIG problem, has its roots in MANY smaller ones.
AND, largely imo?
Well, & others MAY disagree with me here:
I think ANYONE can 'do the broad strokes' & spot a problem or whatever...
HOWEVER
Re:Can't RTFA... (Score:3, Interesting)
I tried DARCS awhile back (like you, I was awestruck by the feature set - especially distributed version control and Haskell)
It seemed dog slow even for a small repository, and was clunky to use (coming from CVS).
Like I said - this was awhile back - so maybe they've fixed those issues, but following the tutorial, I was up and running with Git in no time and the commonly used commands are more or less identical to CVS/SVN (though it is a bit idiosyncratic in that it requires something like "git commit -a" where you would normally just use "cvs/svn commit").
Re:PARADIGM SHIFT! (Score:3, Interesting)
Re:PARADIGM SHIFT! (Score:3, Interesting)
Re:Can't RTFA... (Score:5, Interesting)
the promise of NT and Cairo.
Meanwhile, Microsoft successfully marketed a desktop, and took over a market many feel a free Unix could have occupied. Of course, in that case you should blame X-Windows and the slow development of broadly supported GUI toolkits. Both of those run on both Linux and BSD, so I don't see why this should be blamed on Linux. I guess Linus should have written a BSD-licensed version of KDE to make you happy?
Once again, technical superiority is not the only thing that matters. It isn't true in business, and it isn't true in the open source world. Building a healthy community and a working development process is just as important for long term success. And, like in business, sometimes a little competition helps, as it spurs development that might not happen in a pure monopoly.
Solaris Desktop (Score:3, Interesting)
Re:PARADIGM SHIFT! (Score:3, Interesting)
Because they usually don't know the tool or the tool's potential.
"if they just checked their experimental/broken stuff in, other devs would complain"
I've been working both on Subversion and CVS (among others) and never experienced it. Why? Maybe because I knew about the use of the tool; about how to deploy "this_is_head" moving tags and how to properly use branches, so one developer's experiments doesn't break other's work and still they are "near enough" to main development lines to merge frecuently as needed (and no, abandoned branches were not a problem since they can be pruned out when needed no more).
"Same for creating branches in the central repository, if you are doing it for you own experiments you will get unpopular fast."
That's even more extraneous. Why other developers should have to give a damn about branches they don't use? Clearcase, for instance, is mostly based on the "developer branch" concept to great amount and while the product isn't the most popular among developers, it is not because the "developer branch" concept which is the one they tend to like the most.
"So what happens instead is, a dev makes changes to their checked out copy and does not check in for days or weeks at a time"
Because:
a) They ignore the tools possibilities
b) Their company ignore the advantages of founding proper SCM (people, tools and time) and the SCM tool manager only too often ends up being one of them, or someone without the knowledge and too overburden to do a proper work.
"then bits of this work get lost for one reason or another"
And then the proud git user's hard disk fried and his git repo is lost all the same. And then the devolper gets hit by the bus, or resigns and nobody understands what's the hell on his harddisk.
"Meanwhile, development on the trunk eventually orphans the experiment, merging is too much work"
That's just the natural outcome of a too long lived branch, no matter is you use a central or a distributed repo. It is the code the one that distances, not the tool that manages the code.
Subversion should have proper branching and merging. CVS should properly manage whole hirarchies. Both of them should properly handle deltas. But they are all limitations of the tools, not flaws on the paradigm. Surely distributed SCM has his place but centrally managed SCM has it too and it's much more important the former than the latter in corporate environments. Maybe in a future there will come a tool that will allow seemlessly for proper central or distributed SCM, and I can tell I'll be glad for it, but I can assure that the central paradigm will stay strong within corps, because that's what's needed.
Re:Can't RTFA... (Score:3, Interesting)
Re:PARADIGM SHIFT! (Score:3, Interesting)