In my opinion there have been two great non-commercial (counter-commercial) software movements: The Cracker/Demoscene and the Open Source/Free Software Movement. Both movements came out of solving the same problem, commercial software is expensive and not as available (in several different senses of the word) as each movement would like. How both movements attempted to solve that problem is where that difference lies:

The Open Source/Free Software Movement:

1) Prevent software from being closed in the first place with various licensing schemes

2) Recreate closed commercial software with open alternatives

3) Share the guts of what you've done with others

The Cracker/Demoscene (for those that don't know, the demoscene is a spinout of the software cracking scene):

1) For software you want to use, crack the copy protection on it so licensing is irrelevant

2) Do it in as creative a way as possible

3) Compete with other groups of people trying to do the above, that means trade secrets

Over time, these core philosophies dictated how the movements operated.

They're both social movements in a sense, but very different kinds of movements:

I also remember attending a few Linux User Group (LUG) meetings. A bunch of folks crowded quietly into a rented room, there were a few lectures, a bit of Q&A, discussions over various Linux distros, shared tips, lots of config discussions. A few people might show off how their desktops were configured or provide a demonstration of a properly configured piece of software and give a tour of the code. At some point some code might be copied and distributed on floppies (and later CD-Rs). Very collaborative, even if it didn't really excite the senses. Leaving a LUG so you could go home and try a tweak in some X.conf file wasn't exactly mind-blowing. It felt kinda like school. It was all very Yin.

Contrast with going to small demo parties in my teens and the sense of friendly competition was simply awesome. It was brash and bold, artistic flourishes were rewarded, and groups that could come up with something novel kept those secrets close to their chest as it was their competitive edge. The typical party was loud, intense, and touched the senses, you worked on your discipline (coding, music, graphics) till you dropped or the competition started, at the competition a bunch of people piled into a room and tried to blow each other's minds. Clever hacks were rewarded with praise and tales of glory. It was like a street racing community or playing hooky so you could watch two kids have a fight. It's the friendliest kind of war. The demoscene is very yang.

Getting together with your demo group or attending a demo party was exciting and fun, you weren't really trying to change the world, just carve out a meaningful piece of it for you and your friends. The goals of the scene were completely orthogonal to the goals of the open source movement. And there has historically been very little overlap between the two groups of people. In practice this has meant that demosceners find themselves fed into the commercial software world, which is where they're most comfortable anyway, while open source folks have gravitated towards service and system integration companies. A few times, in organizations with hundreds or thousands of software folks, I've asked the question of who there participates in the demoscene and not gotten a single affirmative answer (though a few are aware of it), while most of my old demoscene friends work in closed-source commercial software and games.

It's kind of a shame, lots of the problems the open source movement has about front end design and interfaces and well...the human facing part of software...might be better met by demosceners on the job.

I think it's undisputed that the open source/free software movement has been the most impactful, I'm not using a demoscene derived OS and demoscene tooling has usually been very hacky. But I like to think it's been very influential. I've often used demoscene productions as ways of pushing development teams to change their perceptions about what a computer is capable of. I remember one case where we were hitting a performance problem in a piece of code, the developers (all with backgrounds in free software) were insisting that a single system just couldn't manage more objects. I showed them Blunderbuss [1] which fortunately is a beautiful demoand has a nice behind the scenes writeup [2][3] with this gem:

Particle count. I want more. I want to be able to render sand or smoke or dust with particles. That means millions. 1 million would be a good start.

It was meant to embarrass a little bit but also to inspire. It's a totally difference kind of software, with totally different goals than what we were doing, but the point was there. Get creative, get clever, get a little "right brained". Find bottlenecks, find efficiencies. Small speedups are for late stage optimization, huge speedups are what I was looking for. They eventually pulled it off and found ways to dramatically speed their code up, but I had to keep a blunderbuss to their head the entire time.

[1] http://www.youtube.com/watch?v=ezltebzdgjI

[2] http://directtovideo.wordpress.com/2009/10/06/a-thoroughly-m...

[3] http://directtovideo.wordpress.com/2009/10/06/blunderbuss/