After seeing so many "dump and run" code drops on sourceforge, and now on github
I think the big difference between the two sites is that it's much easier for these types of projects to gain momentum and continue being updated on GitHub.
On SourceForge, a project would linger with no activity, bugs and feature requests would pile up, and creating a new project for a fork was a pain. I've checked out project CVS/SVN trees from SourceForge to fix things and since the projects looked dead, I never contributed the patches anywhere. I certainly wasn't going to create a new SourceForge project just to host my one patch. The few times I've created bugs for the patches, they never got any attention.
With GitHub, it's much easier to fork a repo, fix a bug, and push the fix back up for everyone to see, even if it never gets turned into a pull request or accepted upstream, lingering in your own git repo never to be touched again. Since GitHub shows your fork on the original project's fork tree, it's easy for other users to find your fork with your bugfix and continue that momentum by forking your fork, fixing their own bug, and so on.
But how often have you looked for a program that does something and found a dozen that only do 3/4ths of what you wanted? Just search for open source CD rippers for example, the few good that exist are swamped with results for crappy ones that somebody hacked together in a weekend.
Do people find value in unmaintained codedumps? I registered a dedicated github account last year for all the small stuff I wrote during train rides (I do a lot of them, 5 hours apiece) and never really finished. The idea was that I put a README on each of those and just leave it there for anyone to look at. But most of them are just tiny experiments in Ruby, so I decided not to release them for precisely the reasons mentioned in the parent post.
I really like reading other peoples code (even more when the topic/language/whatever is interesting to me) even if it is only some small proof-of-concept or idea / unfinished code, i.e. not really useable as-is.
I do, sometimes. I've learned from toy/unmaintained/experimental projects. If I'm trying to learn how to effectively use some library or framework that isn't hugely popular, I'll look at any code I can get my hands on, even if it's from some random codedump.
We do this with the Seattle Clojure group. We frequently live-code collaboratively on a small problem that can be tackled in 2 hours. Usually it's silly and useless, but a few have been picked up or at least come in handy to point others to as an example of a certain technique: https://github.com/Seajure
I've certainly found some like that useful. Admittedly for didactic purposes--when I'm learning something new, I like to look at existing code. I've also sometimes found solutions to problems I'm having from random projects which just happened to solve the same problem.
Admittedly it doesn't happen often, but it does, so you may as well put them out there :).
I's like to open source my cancelled game, Shadow Physics, at some point, as well as with a bunch of other small games and prototypes, but I'm also not a fan of "dump and run" code drops. I guess I could pull out the novel and interesting stuff and gut or at least clean up all the cruft and hacks, but once you've already abandoned a project it's hard to find the motivation to clean it up to so other people can learn from it.
I've debated doing this a few times, but the stuff I haven't released is usually such a mess of undocumented code that's been rewritten a few million times I'd be afraid it would make me look bad. Congrats for having the discipline to keep even the stuff you aren't releasing in good enough order to be able to do something like that.
In case there's any doubt, the above statement is 100% sincere and includes no sarcasm.
You know, I used to worry about that too. Now I realize that I was maybe a bit arrogant--in the first place, almost nobody is going to read my code! In the second place, when somebody actually does read my code (e.g. a potential employer or friend), they don't mind if I have a bunch of projects with dubious code quality. I think every programmer understands that bad code is unavoidable; sometimes it's even the best option! (Trying to write a 20 hour project in a 16 hour hackathon does not leave time for neatness.) As long as you have something to show you can write good code (a halo project, of sorts), it should be fine.
And, given this, there is no reason not to release your little projects. Let the rest of the world back them up for you ;).
Nice gesture from an accomplished programmer. Makes me be appreciative of the field I am in. SO much of what I have learned over the years has been the same way. I always say Github has been the most humbling experience of my career. Just when I start to think I'm the smartest guy in the room I'll crack open a project I haven't seen before and be amazed at what other people have thought of that never even crossed my mind before, yet I'll see the immediate benefit in it.
This is seriously one of the cooler things I've seen any engineer do. Thank you!
Way to be! I like this attitude because it's like if you're not going to maintain it or try to profit from it then why keep it to yourself? I'm much the same way. I'm sure we all have little projects that have the potential to make us a few bucks but if you're not willing to keep them up and follow through then you might as well share. Either way it's not like you were going to do anything with them.
And you never know who might want to take over or what kind of great new enhancements someone else might contribute that make you proud that you started the project to begin with. Even if the code languishes on github or sourceforge at least there's the possibility for someone to pick it up. What's more, you never know who's picking up abandoned projects and using them privately. Just because there's no cmaintainer or community activity that doesn't mean there isn't the odd person here and there who finds an abandoned project and uses the hell out of it. Contributions from the open source community isn't the only measure of a project's success or usefulness. Individuals finding a use for abandoned projects without contributing back is still a great thing in my book.
I don't know about everyone else but I do it for the love of the game, not to see my name in the source code of another project that uses my code. As far as I'm concerned, unless I'm planning to make a profit (in which case I wouldn't publish the source), you can fork, close, distribute and charge whatever you want with my code.
The Cassandra project was in really bad shape when FB open sourced it, and it languished like that for several months before Jonathan Ellis picked it up and ran with it. Now it's a thriving Apache project, with contributors from many companies, and even commercial support through DataStax.
Yeah. My favorite example is JS-2 mode[1]. It's a brilliant mode for editing JavaScript released by Steve Yegge. However, it had some shortcomings and (minor) bugs; Yegge did not have time to support it any more.
Then somebody cloned it on GitHub[2], changed the indentation, fixed some bugs and added some features. In the past, using JS-2 mode was a bit of a compromise--intelligence at the cost of weird behavior. Now there is no compromise at all.
Miranda IM (nee Miranda ICQ) didn't become usable or popular until after I gave up on it. I think it's been abandoned at least once again. Several complete different sets of people have been working on it.
Do you also count partly finished projects? I listed some projects [here](http://news.ycombinator.com/item?id=3713240). Most of them were extended/improved a lot, e.g. by porting them to other platforms, etc.
The GP never said that open sourcing prevents turning a profit or anything of the sort, just that he/she wouldn't release the source if the goal is to profit from it.
I always get this kind of response whenever I say that. I know you can make a profit with open source code but that's just not my thing nor has anything I've worked on lent itself to that kind of model. I suppose I could have left that phrase out as it really doesn't have much to do with what I was saying and can definitely be taken the wrong way.
What would make the world a better place? More well documented AND maintained examples of code that satisfies some need.