meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
nothingburger [2020/05/23 14:27] – [What is to be done?] revusky | nothingburger [2020/05/25 17:07] – revusky | ||
---|---|---|---|
Line 7: | Line 7: | ||
Practically everybody uses Git nowadays but back then the standard thing was CVS, which was what Java.net used. CVS may be more crufty and capricious than Git, but if it is a question of just getting an overview of the history of a codebase, CVS serves perfectly well for that purpose. | Practically everybody uses Git nowadays but back then the standard thing was CVS, which was what Java.net used. CVS may be more crufty and capricious than Git, but if it is a question of just getting an overview of the history of a codebase, CVS serves perfectly well for that purpose. | ||
- | Now, if I were a more masterful storyteller, | + | If I were a more masterful storyteller, |
//To all intents and purposes, **no** work had been done in those five years. **Nothing.**// | //To all intents and purposes, **no** work had been done in those five years. **Nothing.**// | ||
Line 13: | Line 13: | ||
Now, to be clear, that is not to say that there was no commit record. However, none of it related to the real core, the guts of the codebase. | Now, to be clear, that is not to say that there was no commit record. However, none of it related to the real core, the guts of the codebase. | ||
- | Well, what I am describing is actually a general phenomenon, and I had encountered it before. Still, at the time, I did not have any terminology to describe it, and if there is a generally accepted term out there, I am not aware of it. Here is what I propose: | + | What I am describing |
// | // | ||
Line 21: | Line 21: | ||
So, using this new terminology, | So, using this new terminology, | ||
- | ===== Some Telltale Signs of a Nothingburger project ===== | + | ===== Return to Planet of the Apes? ===== |
+ | |||
+ | It occurred to me recently that there is a science fiction genre that characterizes quite well this nothingburger state of affairs. In a post-apocalyptic, | ||
+ | |||
+ | Now, in this scenario, suppose somebody shows up (from the past somehow?) who really has the technical know-how to take these machines apart, fix whatever problem, and put them back together. How is this priesthood going to react? I think it is obvious. They' | ||
+ | |||
+ | ===== Telltale Signs of the Nothingburger project ===== | ||
- The project' | - The project' | ||
Line 28: | Line 34: | ||
- When very minor changes to the code are made, patches that, by the principles of [[https:// | - When very minor changes to the code are made, patches that, by the principles of [[https:// | ||
- | One could surely list other important symptoms of // | + | One could surely list other important symptoms of // |
- | Now, I suppose the most typical pattern by which a software project becomes a nothingburger is that the original author loses interest, drifts away, and none of the people remaining, now the ostensible maintainers, | + | At this point, |
- | Now, to be clear, a // | + | Now, to be clear, a // |
- | ===== Return to Planet of the Apes? ===== | + | Now, as for the other point I mention above, this excessive reverence for " |
- | It occurred to me recently that there is a science fiction genre that characterizes quite well this nothingburger state of affairs. In a post-apocalyptic, | + | Frankly, I have no more intention |
- | Now, in this scenario, suppose somebody shows up (from the past somehow?) who really has the technical know-how to take these machines apart, fix whatever problem, and put them back together. How is this priesthood going to react? I think it is obvious. They' | + | As for my final point above, that the extreme overvaluation of minor patches will lead to the nothingburger project having an absurdly high version number, this is a frequent symptom, but not really a //sine qua non// either. However, we do observe it in the legacy JavaCC project, which is apparently gearing up for an 8.0 release. The fact of the matter |
- | (I was trying to recall which science fiction classics have this sort of underlying theme. I vaguely recall one iteration of Planet of the Apes maybe... If somebody would write me and let me know, I would be grateful.) | + | ===== Think of an Army with no Soldiers ===== |
- | Now, the next point, this excessive reverence for " | + | I have no doubt that there are certain people who will jump at any opportunity to twist and misrepresent what I am saying here, so I feel I have to be very very clear about certain things. By no means am I saying here that the //only// thing anybody |
- | Frankly, I have no more intention | + | However, the real issue here is one of balance. Suppose you were a journalist assigned |
- | As for my final point above, that the extreme overvaluation of minor patches will lead to the nothingburger project having an absurdly high version number, this is a frequent symptom, but not really a //sine qua non// either. However, we do observe it in the legacy JavaCC project, which is apparently gearing up for an 8.0 release. The fact of the matter is that, in its 17 years of open source history, that project has not had a level of forward evolution that would correspond to a single point release (0.8 to 0.9 say) by the approximate rules of Semantic Versioning outlined [[https://semver.org/ | + | //This is an army with all officers and no regular soldiers.// |
- | ===== Some Needed Clarification ===== | + | Would that not be completely surreal? How much expertise in military affairs would it take for you to realize that there is something very screwy going on? Of course, we could also imagine a situation where the journalist realizes all this but keeps it to himself, since he realizes that honestly reporting on this absurd state of affairs might be career suicide. In this story, one is not claiming that nobody should be doing any office work. A modern army is a very large bureaucratic organization and it is inevitable that there are lots of personnel engaged in accounting and record keeping and such. However, an army in which every last person has a desk job is an utter absurdity regardless. |
- | Now, before continuing the discussion of // | + | ===== It's fun to be a superhero! ===== |
- | But, the issue nonetheless | + | We could shift that military metaphor a bit and get to another point, which is that the stance |
- | Would that not be completely surreal? How much expertise in military affairs would it take for you to realize that there is something very screwy going on? Of course, we could also imagine a situation where the journalist realizes all this but keeps it to himself, since he realizes that honestly reporting on this absurd state of affairs might be career suicide. | + | //Software, code, is not a **physical** machine.// |
- | Now that I brought up a military metaphor, it occurs | + | If your code is stored in a code repository such as Git, SVN, or CVS, you can restore |
- | On further thought, however, | + | I pointed out to him that the simile would be more applicable if, when you fell off a cliff at time t, and presumably broke all the bones your body, you had the capability of instantly restoring yourself |
- | However, the odd thing about this is that software is not a //physical// machine. If your code is stored in a code repository such as Git, SVN, or CVS, you can restore it effortlessly to any previous state it was in. So, actually, tinkering with the code is a no-lose situation. I recall on a mailing list hosted by Apache Software Foundation, this whole topic came up. It was about just how conservative | + | //In essence, hacking |
- | I pointed out to him that the simile would be more applicable if, when you fell off a cliff at time t, and presumably broke all the bones your body, you had the capability of instantly restoring yourself | + | Wolverine can be beaten, stabbed |
- | Thus, it is really quite a stretch to liken mucking with source code to a physically dangerous activity like rock climbing. No matter how irreparably you mess up the code, you can always | + | So, what is the agenda of somebody who likens |
+ | |||
+ | //But the analogy with the physically dangerous activity is completely nutso!// | ||
+ | |||
+ | No matter how irreparably you mess up the code, it can always | ||
This leads us to another frequent symptom of // | This leads us to another frequent symptom of // | ||
Line 70: | Line 80: | ||
//The insiders in a nothingburger project frequently **affect** that they don't understand how version control systems work.// | //The insiders in a nothingburger project frequently **affect** that they don't understand how version control systems work.// | ||
- | The // | + | The // |
- | If you are foolish (or masochistic) enough to be engaging these people in discussion and you point out the above, the typical result is that they simply walk away from the conversation. | + | - An extremely aggressive stance in terms of evolving the code forward, refactoring etcetera. (Because if you do some things that turn out to be a bad idea, nothing is lost anyway!) |
+ | - An extremely liberal, open stance towards letting people contribute. (Because newbie contributors can't really do any damage anyway! Especially, if you give them a branch to work on!) | ||
+ | |||
+ | Of course, a // | ||
+ | |||
+ | If you are foolish (or masochistic) enough to be engaging these people in discussion and you point out these things, the typical result is that they simply walk away from the conversation. | ||
===== What is to be done? ===== | ===== What is to be done? ===== | ||
Line 93: | Line 108: | ||
It could well be that a similar answer applies to // | It could well be that a similar answer applies to // | ||
- | Though admittedly, not as absolutely impossible as retrieving one's car keys from the bottom of the ocean, when a once healthy project has lapsed into // | + | Though admittedly, not as absolutely impossible as retrieving one's car keys from the bottom of the ocean, when a once healthy project has lapsed into // |
+ | |||
+ | ===== Passive Acceptance of Illegitimate Authority ===== | ||
In any Psychology 101 course, one typically learns about the [[https:// | In any Psychology 101 course, one typically learns about the [[https:// |