3. Can take advantage of distributed code base development.
Point for ClearCase, though how many people really take advantage of this feature (we do not).
A large number of ClearCase installations use MultiSite. It works very well over unreliable networks (I currently use it with a VPN between the US and India) or with no network at all (before we set up the VPN, we did updates via sneakernetted CDs). It also aids in disaster recovery because you can physically destroy one site without affecting any of the others. Lastly, it makes backups dead easy to do.
4. Built-in triggering system for file check-ins and check-outs. This allows you to build scripts and such to do things when you check out/in a file or set of files.
I think you can do that with CVS too.
Almost any ClearCase operation can have preop and postop triggers attached to it. The last time I looked (about six months ago), there was a very limited set of CVS operations that could be triggered, and expanding that set was near the top of the to-do list.
6. Smart 'make' routine which can take advantage of compiled object files in other people's views.
Oh yeah, I'll bet a LOT of people really make use of that one.
In very large (>5 million LOC) projects, ClearCase's wink-in facility is essential. With something that big, you can't just work on your own little corner of things without regard to what the other 1000 developers are doing around you. You've got to be able to regression test the whole thing with your changes applied, and that means building the whole thing.
If your makefiles are written correctly, you get 100% wink-in of everything that doesn't have to be rebuilt as a result of your source changes. If your ClearCase environment is tuned correctly, you can wink in objects somewhere between one and two orders of magnitude faster than you can compile them from scratch, plus you don't have the overhead of initially extracting all the source from the repository.
(Yes, I know about Mozilla. I'm not saying you can't manage large projects using CVS or whatever, but ClearCase has capabilities that CVS could never emulate.)
If you weren't using clearmake and wink-ins on your project, then you were definitely wasting your money on ClearCase.
8. Ability to create branches from the code base for program maintentance, and bug fixing of releases, etc.
Which pretty much defines source control in my mind, again I'd have to give a hand to CVS for much easier branching. I could quickly create branches in CVS whereas in ClearCase it is a Big Deal to create branches, and the SCM people don't like it one bit.
Creating branches in ClearCase is as natural as breathing. All you need is a cohesive branch strategy that you apply across your whole source base, like "I want my version; if that's not available I want the version from the latest official build". The free-for-all "I want 1.1 of this, 2.3.4 of that 5.10.15 of the other" non-strategy will cripple ClearCase, but it will also cripple any SCM practice you try to wrap around CVS or any other tool.
You also forgot that ClearCase can provide build audit trails that are way more comprehensive and reliable than revision strings embedded in the source files. The speed with which that lets me diagnose build failures and related problems wins us back a good chunk of the cost of ClearCase in engineer time savings.
For that matter, the richer set of metadata types that ClearCase provides lets you use know why something happened the way it did far more easily than you could with plan version control.
I've done SCM with a variety of tools for about 13 years now, and without exception, everyone who complained about ClearCase either a) was not using the tool to its fullest, b) was mad because it didn't work exactly like Their Favorite Version Control System, c) didn't know the difference between version control and SCM, or d) was really complaining about having to have any process at all beyond just barfing out code.
There's a new crop of tools coming along that may knock ClearCase off its perch, and ClearCase is far from perfect, but as SCM tools go, it's still the king.
Why is everyone ignoring the most logical of offsite storage?? your work.
Because my employer is well within its rights to take anything of "mine" at work and search it. Even worse, consider having it read out in open court in case of a subpoena of all the company's "business records".
My critical data is also highly confidential, like my financial records and my personal business correspondence. Locking it in a bank vault keeps it much farther from prying eyes than putting it in my desk drawer at work.
If I have a fire in my house that's hot enough to melt aluminum[1], I'm going to lose a lot more than data. For protection against that sort of inferno, off-site backups are your only hope (we keep ours in a safe-deposit box at the bank alongside our critical documents, savings bonds, etc.).
[1] Some videos of the WTC fire showed molten metal dripping out the floors of one tower where the plane hit. It is believed that the metal was aluminum from the fuselage of the plane itself.
Here's the problem. Once you split it, the frags start spinning. Plus, they're still pretty big, so you have to split them again and again until they're rendered harmless. But by then there's quite a few of them, and it's hard to chase one down without knocking into another.
And if that isn't enough, this little bleeping thing comes on from offscreen and starts SHOOTING at you!
Dunno about being required to type papers, but in our town, "keyboarding" (what us Old Farts called "typing") is required in 4th Grade (9 years old). The real problem is that these kids will be taught that Windows IS computing, and that IE IS the Internet.
My son is three--I've got a few years yet to start combating that propaganda.
Worse than that, the more functionality that is placed inside the TV set enclosure, and the more uubiquitous digital cable/sat becomes, the less accessible the analog section is. If this keeps up, there won't be any way to capture the analog signal at all, at which point we are at the complete mercy of whatever DRM scheme is in place.
I wouldn't go quite that far. Everybody I know who has a Tivo also has a VCR (including myself). At least in our circle, the verb "to tivo" means to record on the Tivo, but the verb "to tape" still means to record on the VCR. "To record" is now ambiguous, but usually implies Tivo.
I don't know anyone who has a PVR other than Tivo, so I can't tell you if "to tivo" is also used to indicate recording on other PVR brands.
A pure expression of cutting-edge luxury, the Nokia 8910i takes the magic of multimedia messaging and elegantly sheathes it in a skin of real titanium. Extending a design aesthetic based on flawless form and extraordinary material, the Nokia 8910i offers a range of premium features...
Almost 20 years ago I wrote call processing firmware for telephone switches, e.g., the code that detects that you've picked up the handset and sends a dial tone your way. It was written in C. We used assembler for low-level hardware register manipulation and things like that, but there was never any compelling reason to use assembler for the bulk of the code. The whole thing fit into six 8Kbyte ROMs.
There is nothing magical about call processing code, as compared with OS kernels or applications or anything like that. The same arguments for using high-level languages in any other programming project apply here.
OK, you've clarified your point nicely, which gives me a perfect opportunity to switch topics:
There is an inherent flaw in the scratch-the-itch theory of free (libre) software. A lot of software ISN'T fun to write, even though it's a severe itch for a lot of people. Look at the state of gnumeric. It works for as far as it goes, but it's at nowhere near the level of its commercial counterparts like Excel. Why? Because writing spreadsheet software is BORING. And the people who need spreadsheets the most tend not to be hobbyist programmers anyway.
If we measure the itch by the amount of scratching, then gnumeric is a gnat bite and Enlightenment skinning (way fun and creative) is a full-body case of hives.
This is why I'll never be in the RMS/FSF free software camp, opting instead to encourage corporations to open the source to itches they had to pay employees to scratch (e.g., Korn shell). Let them keep their copyright, and open the source under licenses that are a good compromise between making their work available for others when it won't cost them anything versus giving away the family jewels.
The computer, network hardware, etc... are all tangible.
And your monthly Internet access, once you have all the hardware? If you don't ever call tech support, then it costs your ISP NOTHING but a few cents' worth of electricity to send bits your way every month. So for that, my question still stands: Do you believe it's wrong to have to pay for something that costs nobody anything to provide, by virtue of the fact that you're not going to make money from what you produce by using it?
I'm sure we could all point to nontrivially large projects that are stored in CVS. I can point to projects just as big which are stored in vanilla SCCS, which makes CVS look like ClearCase.
Nobody is claiming that you can't store large projects in CVS. I think it's a valid claim, though, that beyond a certain size and complexity level, you find yourself jumping through a lot of hoops to make CVS do what you need it to do. You either have to wrap layers of scripts around it, or you have to change CVS itself, or you have to simply give up on certain things that other (Big Evil Proprietary) systems support out-of-the-box.
Use the right tool for the job. CVS provides version control for certain types of objects. It never claimed to do anything more than that. If you need configuration management beyond mere version control, or you have to be able to store and version objects of any conceivable type, CVS probably will need large amounts of help from you to do that.
OK, before everyone runs off to Macy's to buy some uranium to eat your Crunch Berries out of...
Fiestaware containing uranium hasn't been produced since the 1950's. The stuff you get today will provoke less of a reaction from your geiger counter than the dust bunnies under your bed (which pick up radon from your basement).
Did I offend your smiley-impaired religion or something? It was a joke, Scrooge, and at least three moderators got it. At least you caught the Scrabble bit, but I bet you fished through Sourceforge and Freshmeat to see if there was some nifty new game you missed, before finally figuring that out.
Now promise me you'll switch to decaf. Here's a bingo-prone Scrabble rack to calm you down: AEHLOSS
Isn't that just a tad bit of a dichotomy? They "dictate" by paying you?
No, it's no different from the banner hanging on the wall of the bar whose right half advertises Naked Jell-O Shot Sports Bar Foam Party Nite, and whose left half is a Budweiser logo. They know the bar is more than happy to advertise for Bud in return for the distributor paying for the banner.
But is it realy ignorance of the law? Obviously eBay knows they can't infringe other people's patents. What hasn't been established at that point is that the patent is actually being infringed.
If there's any ambiguity in the way the patent is written, or what it describes, then it could be up to the courts to decide whether infringement actually occurred, and that wouldn't happen until the patent holder initiated litigation.
I wouldn't be in business if I had to do patent searches on every feature of my product and every aspect of its implementation, whether my taking bathroom breaks is a patented business method, etc. (stipulated, I do have to do due diligence on anything I ship, but you get my point), which is why I really hope that the burden of proof lies with the patent holder.
Interesting situation: eBay's IP lawyers tell management that they MAY be infringing someone else's patent. They contact the patent holder but negotiations break down. At this point, nobody has established legally that infringement is indeed occurring. Is it really eBay's responsibility to enjoin itself from further activity that MAY be infringement?
I think eBay did the right thing in approaching the patent holder, and I think they're also doing the right thing in waiting for the courts to sort it out. But, IANAL, so I don't know if refusal to voluntarily enjoin itself weakens eBay's position.
(On a side note, I always thought that it should be possible to contest the novelty of a patent by bringing in a competent engineer who is unfamiliar with the patent, and pose to him or her the problem that the patent solves. If they come up with the same solution in a short time, the patent fails the novelty test.
I got this idea from Hayes's patent on toggling command mode by typing +++ surrounded by one second of inactivity before and after. Around the time they patented that [unbeknownst to me], I invented and implemented almost exactly the same thing for a LAN product I was working on. Had the company survived, they would probably have been sued by Hayes over it, and given the timeframe, Hayes's claim would have had merit. But this doesn't seem to me to be a particularly clever solution--anyone could have thought it up.)
Point for ClearCase, though how many people really take advantage of this feature (we do not).
A large number of ClearCase installations use MultiSite. It works very well over unreliable networks (I currently use it with a VPN between the US and India) or with no network at all (before we set up the VPN, we did updates via sneakernetted CDs). It also aids in disaster recovery because you can physically destroy one site without affecting any of the others. Lastly, it makes backups dead easy to do.
4. Built-in triggering system for file check-ins and check-outs. This allows you to build scripts and such to do things when you check out/in a file or set of files.
I think you can do that with CVS too.
Almost any ClearCase operation can have preop and postop triggers attached to it. The last time I looked (about six months ago), there was a very limited set of CVS operations that could be triggered, and expanding that set was near the top of the to-do list.
6. Smart 'make' routine which can take advantage of compiled object files in other people's views.
Oh yeah, I'll bet a LOT of people really make use of that one.
In very large (>5 million LOC) projects, ClearCase's wink-in facility is essential. With something that big, you can't just work on your own little corner of things without regard to what the other 1000 developers are doing around you. You've got to be able to regression test the whole thing with your changes applied, and that means building the whole thing.
If your makefiles are written correctly, you get 100% wink-in of everything that doesn't have to be rebuilt as a result of your source changes. If your ClearCase environment is tuned correctly, you can wink in objects somewhere between one and two orders of magnitude faster than you can compile them from scratch, plus you don't have the overhead of initially extracting all the source from the repository.
(Yes, I know about Mozilla. I'm not saying you can't manage large projects using CVS or whatever, but ClearCase has capabilities that CVS could never emulate.)
If you weren't using clearmake and wink-ins on your project, then you were definitely wasting your money on ClearCase.
8. Ability to create branches from the code base for program maintentance, and bug fixing of releases, etc.
Which pretty much defines source control in my mind, again I'd have to give a hand to CVS for much easier branching. I could quickly create branches in CVS whereas in ClearCase it is a Big Deal to create branches, and the SCM people don't like it one bit.
Creating branches in ClearCase is as natural as breathing. All you need is a cohesive branch strategy that you apply across your whole source base, like "I want my version; if that's not available I want the version from the latest official build". The free-for-all "I want 1.1 of this, 2.3.4 of that 5.10.15 of the other" non-strategy will cripple ClearCase, but it will also cripple any SCM practice you try to wrap around CVS or any other tool.
You also forgot that ClearCase can provide build audit trails that are way more comprehensive and reliable than revision strings embedded in the source files. The speed with which that lets me diagnose build failures and related problems wins us back a good chunk of the cost of ClearCase in engineer time savings.
For that matter, the richer set of metadata types that ClearCase provides lets you use know why something happened the way it did far more easily than you could with plan version control.
I've done SCM with a variety of tools for about 13 years now, and without exception, everyone who complained about ClearCase either a) was not using the tool to its fullest, b) was mad because it didn't work exactly like Their Favorite Version Control System, c) didn't know the difference between version control and SCM, or d) was really complaining about having to have any process at all beyond just barfing out code.
There's a new crop of tools coming along that may knock ClearCase off its perch, and ClearCase is far from perfect, but as SCM tools go, it's still the king.
Just for starters, I have financial records which keep me from being completely fux0red if I ever get audited by the IRS.
Because my employer is well within its rights to take anything of "mine" at work and search it. Even worse, consider having it read out in open court in case of a subpoena of all the company's "business records".
My critical data is also highly confidential, like my financial records and my personal business correspondence. Locking it in a bank vault keeps it much farther from prying eyes than putting it in my desk drawer at work.
If I have a fire in my house that's hot enough to melt aluminum[1], I'm going to lose a lot more than data. For protection against that sort of inferno, off-site backups are your only hope (we keep ours in a safe-deposit box at the bank alongside our critical documents, savings bonds, etc.).
[1] Some videos of the WTC fire showed molten metal dripping out the floors of one tower where the plane hit. It is believed that the metal was aluminum from the fuselage of the plane itself.
Here's the problem. Once you split it, the frags start spinning. Plus, they're still pretty big, so you have to split them again and again until they're rendered harmless. But by then there's quite a few of them, and it's hard to chase one down without knocking into another.
And if that isn't enough, this little bleeping thing comes on from offscreen and starts SHOOTING at you!
Dunno about being required to type papers, but in our town, "keyboarding" (what us Old Farts called "typing") is required in 4th Grade (9 years old). The real problem is that these kids will be taught that Windows IS computing, and that IE IS the Internet.
My son is three--I've got a few years yet to start combating that propaganda.
If you ever dropped a 1000 card deck into a mud puddle, you REALLY know times have gotten much better.
Worse than that, the more functionality that is placed inside the TV set enclosure, and the more uubiquitous digital cable/sat becomes, the less accessible the analog section is. If this keeps up, there won't be any way to capture the analog signal at all, at which point we are at the complete mercy of whatever DRM scheme is in place.
I wouldn't go quite that far. Everybody I know who has a Tivo also has a VCR (including myself). At least in our circle, the verb "to tivo" means to record on the Tivo, but the verb "to tape" still means to record on the VCR. "To record" is now ambiguous, but usually implies Tivo.
I don't know anyone who has a PVR other than Tivo, so I can't tell you if "to tivo" is also used to indicate recording on other PVR brands.
A pure expression of cutting-edge luxury, the Nokia 8910i takes the magic of multimedia messaging and elegantly sheathes it in a skin of real titanium. Extending a design aesthetic based on flawless form and extraordinary material, the Nokia 8910i offers a range of premium features...
Are they describing a phone or a condom?
What benefit? As you suspect, none.
Almost 20 years ago I wrote call processing firmware for telephone switches, e.g., the code that detects that you've picked up the handset and sends a dial tone your way. It was written in C. We used assembler for low-level hardware register manipulation and things like that, but there was never any compelling reason to use assembler for the bulk of the code. The whole thing fit into six 8Kbyte ROMs.
There is nothing magical about call processing code, as compared with OS kernels or applications or anything like that. The same arguments for using high-level languages in any other programming project apply here.
Uphill. Both ways.
Shut up and leave me alone.
OK, you've clarified your point nicely, which gives me a perfect opportunity to switch topics:
There is an inherent flaw in the scratch-the-itch theory of free (libre) software. A lot of software ISN'T fun to write, even though it's a severe itch for a lot of people. Look at the state of gnumeric. It works for as far as it goes, but it's at nowhere near the level of its commercial counterparts like Excel. Why? Because writing spreadsheet software is BORING. And the people who need spreadsheets the most tend not to be hobbyist programmers anyway.
If we measure the itch by the amount of scratching, then gnumeric is a gnat bite and Enlightenment skinning (way fun and creative) is a full-body case of hives.
This is why I'll never be in the RMS/FSF free software camp, opting instead to encourage corporations to open the source to itches they had to pay employees to scratch (e.g., Korn shell). Let them keep their copyright, and open the source under licenses that are a good compromise between making their work available for others when it won't cost them anything versus giving away the family jewels.
And your monthly Internet access, once you have all the hardware? If you don't ever call tech support, then it costs your ISP NOTHING but a few cents' worth of electricity to send bits your way every month. So for that, my question still stands: Do you believe it's wrong to have to pay for something that costs nobody anything to provide, by virtue of the fact that you're not going to make money from what you produce by using it?
My time is not worthless.
So you shouldn't have to pay for your development machine ir Internet feed either?
I'm sure we could all point to nontrivially large projects that are stored in CVS. I can point to projects just as big which are stored in vanilla SCCS, which makes CVS look like ClearCase.
Nobody is claiming that you can't store large projects in CVS. I think it's a valid claim, though, that beyond a certain size and complexity level, you find yourself jumping through a lot of hoops to make CVS do what you need it to do. You either have to wrap layers of scripts around it, or you have to change CVS itself, or you have to simply give up on certain things that other (Big Evil Proprietary) systems support out-of-the-box.
Use the right tool for the job. CVS provides version control for certain types of objects. It never claimed to do anything more than that. If you need configuration management beyond mere version control, or you have to be able to store and version objects of any conceivable type, CVS probably will need large amounts of help from you to do that.
OK, before everyone runs off to Macy's to buy some uranium to eat your Crunch Berries out of...
Fiestaware containing uranium hasn't been produced since the 1950's. The stuff you get today will provoke less of a reaction from your geiger counter than the dust bunnies under your bed (which pick up radon from your basement).
Did I offend your smiley-impaired religion or something? It was a joke, Scrooge, and at least three moderators got it. At least you caught the Scrabble bit, but I bet you fished through Sourceforge and Freshmeat to see if there was some nifty new game you missed, before finally figuring that out.
Now promise me you'll switch to decaf. Here's a bingo-prone Scrabble rack to calm you down: AEHLOSS
OK, I'll stop fanning the flames now...
RMS, GNU, FSF: FOAD --Suckdot
Shouldn't that be GNU/BSD?
GNU/Apache
GNU/Mozilla
GNU/Scrabble Brand Crossword Game
OK, raise your hands, who wants to take one for the team?
Sigma Alpha what?
No, it's no different from the banner hanging on the wall of the bar whose right half advertises Naked Jell-O Shot Sports Bar Foam Party Nite, and whose left half is a Budweiser logo. They know the bar is more than happy to advertise for Bud in return for the distributor paying for the banner.
But is it realy ignorance of the law? Obviously eBay knows they can't infringe other people's patents. What hasn't been established at that point is that the patent is actually being infringed.
If there's any ambiguity in the way the patent is written, or what it describes, then it could be up to the courts to decide whether infringement actually occurred, and that wouldn't happen until the patent holder initiated litigation.
I wouldn't be in business if I had to do patent searches on every feature of my product and every aspect of its implementation, whether my taking bathroom breaks is a patented business method, etc. (stipulated, I do have to do due diligence on anything I ship, but you get my point), which is why I really hope that the burden of proof lies with the patent holder.
BTW, did you used to work at HP-FPK?
Interesting situation: eBay's IP lawyers tell management that they MAY be infringing someone else's patent. They contact the patent holder but negotiations break down. At this point, nobody has established legally that infringement is indeed occurring. Is it really eBay's responsibility to enjoin itself from further activity that MAY be infringement?
I think eBay did the right thing in approaching the patent holder, and I think they're also doing the right thing in waiting for the courts to sort it out. But, IANAL, so I don't know if refusal to voluntarily enjoin itself weakens eBay's position.
(On a side note, I always thought that it should be possible to contest the novelty of a patent by bringing in a competent engineer who is unfamiliar with the patent, and pose to him or her the problem that the patent solves. If they come up with the same solution in a short time, the patent fails the novelty test.
I got this idea from Hayes's patent on toggling command mode by typing +++ surrounded by one second of inactivity before and after. Around the time they patented that [unbeknownst to me], I invented and implemented almost exactly the same thing for a LAN product I was working on. Had the company survived, they would probably have been sued by Hayes over it, and given the timeframe, Hayes's claim would have had merit. But this doesn't seem to me to be a particularly clever solution--anyone could have thought it up.)