Regarding code

A question which came up a couple of times when I put HATETRIS online was what license I was releasing the code under.

This is a question which caught me rather by surprise. As most of my regular readers are aware, I have spent some years now quietly and simply creating content - almost all of it textual - and shoving it out online so that others may read and enjoy it. When I say "almost all of it textual" what I mean is "fiction". When you put fiction out online, nobody asks you what license you are releasing the characters under. I mean, what part of putting a story online implies that it is available for other people to, in any way, modify and re-release? When I write something and put it out there, I think the implication is pretty clear that I don't particularly want other people to take the setting and run away with it. If that was my intent, I would have made it explicit. This is the way online fiction works, is it not?

I enjoy coding very much and I consider myself to be pretty good at it but up until very recently it had never occurred to me to create any code for public consumption. I've started to do so mainly because I want to share examples of what I think is good code, and because I want to be able to demonstrate my coding ability to, for example, potential future employers in related fields. And, of course, I want people to be able to enjoy and make use of the code I've provided (and, in the case of HATETRIS, the game it codes).

So the arrangement with my code is the same as with my text. I create, you consume. That's all there is to it. I'm happy with that arrangement. While tersely stated, it's not evil. If you wish to create, by all means acquire web space of your own and others will happily consume your work in turn.

But software somehow seems to be a different kettle of fish entirely. Several people have asked me about what license the code is released under and several other people took it upon themselves to email me modified versions of the game which added functionality or fixed perceived defects. Why is there an assumption that all code is released under some sort of license? Is it taboo, in the world of software, to deliver code which is at the same time freely available for anybody to inspect but not available for free modification? Is it acceptable to say "look but don't touch"? This is, after all, the unspoken assumption when I put fiction out. What's the difference between fiction and code which makes one of them want to be free while the other doesn't? Isn't there the same level of respect for authorial control?

I'm not unhappy with people modifying HATETRIS. It just took me by surprise because it thrust upon me an urgent need to figure out exactly what my opinions are on a fairly complex aspect of intellectual property.

I take great pride in legible, commented code. What if someone modifies HATETRIS but makes the code into junk? Well, what if someone rewrote a few paragraphs of Fine Structure in a way that makes them happier but which I hate? I think I have the right to to be indignant in the second case. Why not the first?

I was working on performance enhancements in the HATETRIS AI algorithm. Someone, unsolicited, sent me a version of HATETRIS with all of the enhancements I was working on already implemented. For example, expressing each row in the well as a binary number encoding a bit field, instead of an array. Does that person now get co-credit on what I was about to do?

Someone turned Fine Structure into a PDF suitable for offline or ereader reading. Because Fine Structure has some difficult nested chapter navigation, he added some top-level chapter headings. These chapter headings had been invented by him, not me, and were now being presented as part of the story. It was a relatively minor change, but it made me feel really weird.

When HATETRIS reached Hacker News, someone posted some JavaScript which would modify the game to have gravity. Should I care? A couple of people have pointed out bugs in the code, which I've fixed. That's nice, thanks! This is equivalent to fixing typos anywhere else.

*

I have no problem with well-meaning bug correction. But it seems like there's less inhibition to this kind of thing where code is concerned. And there is a point, in both the case of fiction and code, where I begin to feel uncomfortable with the changes that people are suggesting.

Everybody referred to in this article has been nothing but courteous with their contributions. Certainly, nothing so uncouth as copyright violation has occurred. If someone had stolen my work and reproduced it elsewhere in the world without my permission - with or without my name still attached - then you can be assured there would be fury here, not polite befuddlement. Most of these folks sent their work directly to me for my judgement and for me to do with as I wanted.

*

I like open source software. I'm a big fan of the objectives that open source software is created to achieve. I really like not having to pay money for Notepad++ and TrueCrypt and so on and so forth. I wish the movement every success.

At the same time I am a creator, and I am positive on creator rights. I am okay with the idea of creators charging money for the things that they have created. I am okay with coders not being obliged to provide source code for their compiled applications in the same way that, if I am to purchase a marble sculpture, the sculptor is not obliged to provide me with his hammer and chisel, nor reveal his entire creative process, and certainly not teach me to sculpt. I see no contradiction with this viewpoint.

I guess the point is that the things I create are my babies. They are my property. I have them set up just the way I like them. When people begin rearranging my stuff, it feels personal. I'm okay with it in principle because for me to not be okay with it would just be petty and overbearing and impractical. But it's weird to me that other people are so okay with mucking about with other people's work.

Back to Blog
Back to Things Of Interest

Discussion (49)

2010-05-04 22:07:45 by Ross:

Just add a one line license that expresses this.

/* (c) 2010 by me. All rights reserved. This is my code. You may read and enjoy it, but do not distribute or modify it without asking me. */

2010-05-04 23:07:32 by pascal:

The difference between code and prose is, that no matter how artfully it's executed, it's still just an engineering problem. And and solving the problem has higher priority than preserving the artwork. Which is why there are very little changes in Knuth's TeX: nobody would dare change things just for the polish, but when a problem can be solved (at all, or better), that's just another step on the way to perfection…

Also: software just isn't meant to be static. When you put something (worthwhile) out there, it will be integrated into the ecosystem and evolved. (In the small way by people branching and toying around with the code, or sending in modifications, and in the literal way in Linux: when you develop a kernel module, and it's of sufficient quality [one might call it 'finished'], it may become an official part of Linux, and be maintained. The text equivalent here is maybe a publisher, that tweaks the typography of a book in every new edition to "go with the times")

2010-05-04 23:40:24 by Frymaster:

"Why is there an assumption that all code is released under some sort of license?"

because it's a reasonable assumption.

For instance, you've indicated that you expect people to abide by certain restrictions. Up until this post, those restrictions weren't stated anywhere. So it's reasonable that people, who might want to build on your code, would ask that those restrictions be made explicit.

Basically, I feel you answered your own question. :P

2010-05-04 23:48:39 by John:

@Ross: that's not a license, its just a copyright notice.

@Sam: I was one of those that originally asked if you planned on licensing HATERIS. My comment was,

> I noticed you don't have a license on the code.
> Do you want people to be able to modify and
> distribute this game? May I suggest the MIT license?

The nice thing about licensing your code under something like the MIT license is you retain control over it. Your copyright notice never leaves the code. If I modify the code, your copyright applies to my modification.

If someone were to "steal" the code and present it as their own, that would be a violation your copyright. Whether you had licensed the code would make no difference.

The way I see it, people are going to co-opt interesting code no matter what kind of copyright notice you put it on it, so you might as well grant a license to modify and distribute changes in perpetuity. That gives your copyright notice a fighting chance of being preserved. Plus, if the project becomes widely known (e.g., many forks), then copyright violators are more easily detected, since they wouldn't be following the rules that everyone else is.

My last point is, when someone changes your code, you aren't obligated to fold their changes into the fork you maintain. You can take parts or none at all. And most people will fork your version, as it is the canonical version.

2010-05-04 23:55:23 by Caleb:

source code is generally nothing like art. It has function.

also people do do this with fiction to if you have spelling or grammar errors that don't seem intentional. but they don't wish to change the artistic intent.

With programming people don't want to change your artistic intent either. They want to help make it better. I'd guess that in most cases of a 'text game' people won't change the story so much as they will other parts. If they thought about changing the story I'm sure they'd ask more first.

2010-05-04 23:59:00 by michael:

I get the whole "It's my software, you can use it, but it's ultimately mine" thing. I actually felt that way for a long time. Once I began works as a Rails developer, I started using a lot of software shared on github.com.

Social coding has completely changed my perspective on how I publish my code. Everything I do that manages to attract attention (read: is worth doing) becomes something of a group project and is better off for it. It's gratifying to find other people working _with_ me on my pet projects.

The repository maintains authorship for changes, though it truly helped me get over this notion of code ownership.

Honestly, it was one of the first big steps I took towards becoming a better coder.

2010-05-05 00:01:01 by Detrus:

Another analogy is writing is also taken and modified. People retweet, rearrange, argue about a topic and the original discussion could be sparked by one particular blog post. You can't copyright the ideas in your blog post, which will be inevitably repeated by others and repurposed to serve their own interests.

Maybe you prefer other people to come up with their own ideas and let you develop yours, but a lot of people don't feel like doing that, so they'll respond to blog posts instead of putting out their own more original thoughts, or rearrange source code instead of starting their own original project.

2010-05-05 00:16:23 by xenoterracide:

@Detrus
actually blog posts are copyright all rights reserved by the author unless otherwise stated. If I ever caught anyone selling or even republishing my work in full without my permission or attribution I'd be pissed.

It is fair to note that in the world of software it isn't treated like books either. Generally we don't have to have a license agreement to read a book... but we generally do to use software. I think the key word there was /use/ you consume a book, art, etc. you use software.

2010-05-05 00:26:11 by Jamie:

I think this mostly comes down to your attachment to your code. There is a school of thought in software development that seeks to encourage constructive criticism by getting developers to divorce themselves from the code they've written, so that they can receive help without getting defensive. Like others have mentioned, code performs a function, and we all should seek to write code that performs better (and that could be code that is easier to maintain, not just run time performance) than what exists currently.

Constant improvement is what drives our industry - so what you as a content creator see as someone messing with your work, a software developer sees as a way to help both themselves and others by sharing knowledge of potential improvements. The sharing part is easy. Learning to accept that you are not a perfect programmer, and that others have something to add to your skills and knowledge is not.

2010-05-05 00:27:11 by Apreche:

All software is just math. You can't own software any more than you can own math. It's no different than trying to patent a gene. The law in some places may let you do it, but that doesn't mean you aren't a jerk for doing so.

Get over yourself.

2010-05-05 00:35:43 by Fjord:

"Someone turned Fine Structure into a PDF suitable for offline or ereader reading. Because Fine Structure has some difficult nested chapter navigation, he added some top-level chapter headings. These chapter headings had been invented by him, not me, and were now being presented as part of the story. It was a relatively minor change, but it made me feel really weird."

To be honest, I felt odd doing it. When reading Fine Structure online, it's easy to tell what chapter you're in and how it's nested; but I was planning on printing it, and making the chapter nesting clear on paper is more difficult. In the end, I went with something that *I* would understand, as the PDF was only intended for my consumption. So to me, the headings feel more like handwritten notes regarding where I am in the story than additions to your work. That's why I also sent along the .odt file that the PDF was created from - so you could make a Sam Hughes Definitive Edition instead of my Fjord's Copy.

I guess what I'm trying to say is that I apologize for weirdness.

2010-05-05 00:38:13 by Jasonsanders:

I agree with appreche. Even if the law allows you to own code, morally and practically you don't. There's a 1001 arguments back and forth there so I don't want to expound on that. What I do want to expound on is to another comment. Is code art or engineering or design? It's not about the code itself, but what you do with it. Ultimately any web-app can be considered art. Whether its some nonsensical twitter app or some crazy comments on http://www.dirtyphonebook.com anything you see online that entertains people and involves some skill to create can be considered an art form. Even somebody as vapid as Justin Bieber can be considered an artist. It's all about its impact on people and what you actually create, not about what tools (code) that you use to create it.

2010-05-05 00:48:45 by Detrus:

Yes blog posts can't be copy pasted then attributed to a new person, but they can be copied, edited and republished and attributed to a new person and the original source. Eventually the original source makes up a tiny part of the new code if the copy editing lineage goes far enough. That's what happens with open source and most biological reproduction. So far it's clearly working better than the older approaches, like software patents. When people are allowed to modify and work with whatever they're interested in, not start from scratch, progress is faster.

People forbid content modification of expensive TV shows, code, music, articles, books for fickle psychological reasons, not because of some understanding of information theory.

2010-05-05 00:54:38 by Mike:

Hi,

I was the person who posted the diff to Hacker News to include gravity. My apologies if you feel this violates any licence you have, and I'm sorry I did not ask or clarify how you intended the code to be licensed before posting the diff.

I just wanted to reiterate that I meant no offence by posting it and will of course remove the original comment if you wish.

2010-05-05 01:28:51 by Marcus:

Coding is so new and improvements comes in such leaps and bounds, vaulting off the work of others, so that Coders, unlike Writers, can't kid themselves that they thought of an entirely unique concept.

For instance, HATETRIS, both title and concept, plays off of the widely known game, Tetris ;-)

Interestingly the game Tetris has a sordid tale of idea ownership, but more importantly the idea was such a good one that derivative works are everywhere.

Presumably a little Shakespeare enters your work from time to time too. Others?

2010-05-05 02:11:02 by Fred:

I see what you're saying, and though I didn't partake in what you say people do, I've considered caching your site to my computer, just for personal use. My Internet is often sketchy, but sometimes fast, and it would just save me time. Do you have a problem with this?

Also, there really is a difference between fiction, which is read and enjoyed usually once, and editing it crazy; invent your own world and characters, and code, which serves a purpose, and can have features added on. When I read a story, I don't say "these words should be changed this way, to make it faster", but with code, it can happen. Surely this should have some use? It really seems like a natural right to me, derivations for personal, noncommercial use.

2010-05-05 02:22:01 by Akshay:

Your code is an Algorithm
And algorithms are mathematical entities!
So your idea of treating it as fiction is completely incorrect!
And what you are trying to imply is that "this is my proof, dont improve it"
Whis is for lack of good words TOTAL BULL SHIT!

2010-05-05 02:30:03 by elliottcable:

… I don’t even begin to know how to respond to this. There’s so much to be said, and so little I have the time to type… suffice it to say, that I think you have no idea what you’re talking about. You desperately need to learn about open source (and, to be sure, I’m not talking Stallman‐esque FOSS zealotry; I’m talking a friendly, basic desire to allow your hard work [code] to benefit others.)

I wish you luck in your endeavors; but I honestly hope you don’t write another line of code before you think about why you’re publishing it at all, if you’re not going to allow it to benefit others.

2010-05-05 02:32:24 by GAZZA:

To extend your analogy: they're your babies. But eventually you have to accept that they're out in the world and make their own choices, you can't protect them from everything, and nor should you want to.

I'm not a writer - so possibly it doesn't apply to fiction (though you are dismissing the entire field of fan fiction as borderline criminal or at least a perversion, which seems overly harsh) - but you cannot possibly be naive enough not to have realised that code in the wild wouldn't be modified by somebody. I mean, as was pointed out, you did it yourself: HATETRIS is based on TETRIS. While you probably didn't look at a single line of code from the original, that is merely an engineering problem.

2010-05-05 04:47:16 by frymaster:

@elliotcable:
it's client-side javascript, by definition it's open source :P

which is one of the reasons why I think asking the license is a reasonable question... with a compiled program distributed standalone, there's an implicit "don't modify" in the absence of anything explicit (there may not be a "don't copy or distribute" depending on other factors). If a program is distributed as source-code which needs to be compiled, and there's nothing explicit and no attribution, I'd argue that's an implicit permission to do just about anything.

With something like this, which is open source because it HAS to be, it's a big grey area. Especially with code as well commented as this.
Because it _IS_ open source, it's of benefit to people even if it doesn't have a license agreement permitting distribition and modification, because people can still use it as an exemplar. Though in this case, I'd also query if the underlying algorithm is licensed under the same terms as the implementation, because really, addition of gravity notwithstanding (which turns it from hatetris to killyourfirstborntris), it's tweaking the algorithm that's the cool part

2010-05-05 05:17:56 by elliottcable:

I’m sorry, @frymaster, you are completely wrong. You understand ‘open source’ nearly as badly as the author; possibly even worse. Just because somebody, somewhere, has the opportunity to access the source code to a program, does *not* make it open source. By that definition, absolutely everything that exists is open source, as long as it’s not encrypted: you can always disassemble it into *some* sort of source code ‘state.’

Open source, *real* open source, is when the author makes the choice to release something into the wild: when they decide to ‘let their children fly.’ It is not specifically about licensing (though many people think it is), it’s certainly not specifically about whether somebody has the capability of downloading or deriving a file that was used to create the program. It’s a choice, not a state.

My ‘beef’ with the author is *not* that he open-sourced his code without a license: he did no such thing, as far as I am aware. While you can, indeed, click the ‘view source’ button in your web browser, the author has yet to choose to release the source to the public in a specific way (with, or without a license; my point is incidental to the licensing status of the source code); the fact that he speaks about how he has ‘made it available to the public,’ the fact that he equates the availability of this piece of code to the availability of some fucking *fictional writings*… all this, when he has, in fact, done *no such thing* with his code! That simply incenses me.

Forgive that run-on sentence. In any case, I’m not saying this guy has to choose a license; I’m not saying he even has to release his source code (truely release it, not just open up a directory on his web server for HTTP access with an HTML file containing or referencing the JavaScript sources; that’s like the difference between publishing a book for people to buy, and providing the original .markdown sources to the public for perusal and modification as seen fit). I’m simply saying that he should **either** (actually) release his source code, as a tarball with documentation or on GitHub, **or** stop talking about how “[He] create[s], [we] consume.” Because that’s not at all what is happening; we can’t *‘consume’* it if he never releases it.

2010-05-05 05:25:07 by Thrack:

Would this other writing of Sam Hughes' be relevant?
http://qntm.org/number

2010-05-05 05:31:41 by Dude:

Every creator who is actually successful, in the sense of putting their work out there, must wrestle with the same issue. Now that you've managed to break out in a big way, do you own the work anymore in a meaningful sense? That could be said of publicly releasing source code, but it could be the same for sculpture. If someone creates a painting of your sculpture with some kind of implicit criticism, do you own the painting? If someone quotes your poem in their poem, does your discomfort reflect a moral wrong done by the author, or just a basic insecurity on your part? In short, every artist must learn to get over the,selves, or they will inevitably lead a very unhappy life.

It's your choice.

BTW, passive aggressive, much?
 

2010-05-05 06:04:20 by quasi:

Writing is an end in itself. The writup /is/ the idea to be conveyed. The writing style and the content together is the product, the art, the output. So even if theoretically it can be publicly examined and 'changed/improved' it is generally not. But if you dissect and present your thinking process about a particular writeup and put that up, there would be discussions and suggestions and arguments and counter arguments about it.

So put up an application for people to use and they will just use it. If you put up the code, as it has been pointed out, you are putting up an engineering problem more than a static piece of art. In case you want your code to be treated as strictly art, as this is a non standard requirement, you should create a licence document stating your needs and people will respect it.

It is very fair for you to be protective about your 'babies', but code and art is different. No one can stop you from learning a particular technique (for example) of brushing colour to get a specific effect, but you can copyright an algorithm.

2010-05-05 06:10:03 by Daniel:

I'm not sure I agree with the idea that literature is treated more privately. Harry Potter is not free to read. Nobody said you're free to add to it, yet fanfics abound. Perhaps it's just that the people here are more likely to want to modify code than to write fan fiction.

Also, making minor adjustments to code is normal. Nobody likes to mess with canon.

2010-05-05 08:38:09 by qntm:

I don't think I'll add any explicit license text to the code because I don't feel the need to. In the absence of a specific license, the defaults apply ("all rights reserved by the author"), and these are acceptable.

I think it's possible to approach the creation of prose as an engineering problem ("I want to put across *this* idea, I want *these* characters to have *these* experiences") and I think the analogy runs deep. For example, it is possible to solve programming problems poorly, in the same way that storytelling can be achieved even with bad spelling and plot holes. Likewise it is possible to use skill and creative flair to make a good program beautiful to read and efficient to execute. Just because something is functional doesn't stop it from being art. What about the whole videogames-as-art thing? Videogames *are* art. They are also code. They have function. They are interactive. Just because something has "nonsensical" or "vapid" functionality doesn't make it worthless.

Software *can* be just meant to be static because it's my software and my software can be meant to be whatever I want it to be meant to be. If I wanted it edited, I'd send it to an editor.

Yes, I can own software. Software is not just mathematics and algorithms. This is not the same as patenting a gene. Genes are not created by people. Just because it is impractical to own software doesn't make it immoral.

People forbid content modification because *they want to make money from stuff they've created*, stuff they may have paid a lot of their own money to create.

Fan fiction has nothing to do with this. It's very rare that a work of fiction's fanbase will actually jump in and start modifying the original source material of which they are fans.

Evidently some people draw no distinction between "read", "write" and "execute" permissions. "Consume", here, means "read and execute".

2010-05-05 08:48:57 by Velorien:

Forgive the extreme oversimplification of this, but I think ethics should be kept simple where at all possible.

When a business releases a licensed product for sale, they have (in an ideal case) two objectives: to help people by providing goods or services, and to be rewarded for these goods or services with money which will fund further development and mean its employees can feed their families. They limit the former (by charging money) in order to facilitate the latter.

You have not requested money for the content you offer (which, by the way, is excellent content, and I'm very grateful that you've chosen to share it). You are not pursuing the second objective. So if you have any reason to limit the first, which is to say to restrict the extent to which you are helping people, it is not the same as that of companies that use licensed code. As far as I can tell, all you are protecting is your pride in being the one to have created this content in this exact form.

Which is fine - there is no moral obligation on you to provide the public with *anything* (unless you have individual beliefs that say otherwise), nor can anyone say that you don't deserve recognition for creating something valuable. But the stand you are taking here isn't on the issue of open source. It's on the issue of how far your personal pride will limit your contribution to the world.

2010-05-05 09:46:17 by Baughn:

Part of the reason picking a license for software is necessary, is that it has to be copied in order to be executed.

Now, in some jurisdictions the law creates an exemption from copyright specifically to handle that. But in some it doesn't. And so, in order for everyone to be able to run your program, there has to be a license of some sort involved.

You can't choose not to care. Though you can choose not to open-source it, although I'd be disappointed if you to.

2010-05-05 09:59:52 by Florian:

When you compare fiction with code, you make the assumption, that the written stuff is what it's all about. I don't agree with that. In my opinion what is important is what people take with them. In the case of fiction that would be your ideas. You cannot forbid people to take that with them, else you would not want to publish them. And you certainly cannot forbid people to think about your ideas, to experiment with them, test them or share them with others. On the contrary, that is what you want!

In the case of code, the ideas you put in IS your code. And thinking about code, is modifying code, running code, and so on. I think, that this is why people automatically assumed, that it would be not only okay to use your code and modify it, but that this is what you intended.

It is like (not the same) as publishing a mathematical article. If one would publish it, and would not want for others to use it (which is happening right now with patents, btw.) nobody would benefit from it. Think off a theorem that can be extended to cover more cases than the original theorem (say, which would make a nice PhD thesis).

I could say a lot more, but I think you get what I mean. Thanks for the fish.

2010-05-05 14:11:40 by Solteur:

http://creativecommons.org/licenses/

then put the little licence logo on the bottom of the page.

2010-05-05 14:20:56 by Solteur:

http://creativecommons.org/choose/

better link, hehe

2010-05-05 14:56:37 by Brian:

Question for Sam:
After reading the code for your HTML parser, I came to the conclusion that it is roughly equivalent to a table-driven/LR parser. However, I've never made much progress understanding the latter, while logic behind the yours is quite easy to follow. It's clear that directly porting your code to some other language would be theft. But suppose I read through the code a few times, then closed my browser window and wrote a parser for a different language, in a different language, using roughly the same algorithm. Would you consider that infringement?

2010-05-05 15:17:49 by qntm:

My UTF-8/XHTML parser was written by me, from scratch. It may coincidentally incorporate an implementation of an existing known parser algorithm. I don't know. If it does, though, then I'm pretty sure that the algorithm in question is free for anybody to implement. So if you want to go ahead and reimplement the algorithm that I coincidentally implemented, then that's fine. And if you want to go ahead and bash out an algorithm of your own which coincidentally resembles the one that I coincidentally implemented then that's fine too. Other than that I have absolutely no idea. I'd rather defer that question until we end up in a court of law?

2010-05-05 15:36:18 by Thomas:

Fairly simple; if the code you put up has no specific license attached to it, then it's just covered by copyright. This means that people cannot redistribute it modified or unmodified without your express permission (of which "licenses" are essentially just a pre-written form).

2010-05-05 16:19:17 by John:

I'm still interested in working collaboratively on HATETRIS. Would anyone else like to start a project to rewrite HATETRIS from scratch?

If so, I've started a blank project on github to this end: http://github.com/dodgeballcannon/hatetris

2010-05-05 16:31:34 by Sean:

I think a part of the text/code distinction has to do with the reasoning of consumers. Readers tend to prize the earliest known version. The more hands a piece of fiction has passed through, the more there's a feeling that the intention and style of the original author has been "corrupted" by co-contributors and editors. This is true even when simply changing media; some people feel strange reading classical literature on a computer, after having read the same work previously out of some large and/or musty tome. This is even true if the original author revises a story too many years after original publication. Sometimes this tendency is overly romantic, and sometimes it has merit. Either way, the only major genre of fiction I can think of where many many people routinely contributed to one work, would be in mythology.

On the other hand, code has an effectiveness that can be measured objectively in many ways, and so you can often see directly whether a change improves it. One result of this is that people tend to assume later versions are better, whether or not they came from the original creator. They also feel more comfortable making those changes themselves because they can point to the code and say "Look, I fixed problem X." or "Now it does Y." and, if true, it will be defensible. It's not simply being presumptuous and thinking you know better than the creator, because you can demonstrate an improvement. That's not to say that there aren't subjective/aesthetic considerations in code, just that they dominate less strongly over objectively discernible considerations.

But I think the biggest reason for the distinction has to do with human intuition. If I want to think about the ideas and characters in a fictional work, I don't need to write anything myself to do that. If I want to extend the ideas, I can simply write about the work, saying "What if this happened?" and trying to answer that question. This can eventually turn into fan-fic. With code, answering "What if?" scenarios requires modifying the original. You can't run a program in your head the same way you can outline fan-fic in your head (and believe me, everyone in existence writes fan-fic, it just isn't necessarily the sort that goes on a page somewhere). You can guess how a modification would work, but you don't always reach the same level of satisfaction and certainty as you would in a literary situation.

As an aside, I have copies of both typo-corrected fiction and bug-corrected software. As long as I don't distribute these or otherwise make anyone else aware of their existence, I think it's none of anyone's business how I've modified them (much like writing in the margins of a book). The trouble is when you get into the area of how widely I can share modified versions. With one other person who will use them for a short time? Still not anyone else's business. With the whole world? Clearly that would be an issue. The in-between is fuzzy. That may be part of why you got a lot of communication about code; many people care less about what the ideal philosophical solution is, than about keeping you happy, and so, given the modifications they already wanted to make, they acted according to their best guess as to how to do that.

2010-05-05 23:48:54 by skztr:

I'm sure you'd disagree (and perhaps the letter of the law does as well), but personally I tend to feel that the idea that copyright is somehow intended to allow an author to retain something like "creative control" over their published work is rather absurd. Others can't change a chapter and publish the modified version, because that would reproduce your protected work. It might make you feel weird if they publish an alternative chapter without the surrounding context, and it might be illegal for them to do so, but is "it makes me feel weird" justification for a law which limits others freedom of expression?

This is my counter-argument to "I think I have the right to to be indignant in the second case. Why not the first?", which basically amounts to "I don't think so"

The opinion-bits of the above are my opinion. Any fact-bits in the above are unintentional and probably wrong. The opinion-bits probably leave something to be desired as well.

2010-05-06 10:53:49 by Naleh:

I think the people shooting down the fiction-code comparison are obviously coders and not readers/writers.

Fiction is art, but code isn't? Well, that argument will never get off the ground. Art is an immensely nebulous concept which many people will happily extend to cover some or all code. Code has function? So does fiction: usually, the function to entertain and convey ideas. That's just as much a function as HATETRIS'. And fiction has underlying mechanisms and processes, the same as code does (even if they *are* more hazy and ill-defined).

For another example, Fred said,

> "When I read a story, I don't say "these words should be changed this way, to make it faster", but with code, it can happen."

I am not a coder (I'm sure you can tell), but I am an amateur writer, and when I read a story, that's *exactly* what I do - I look at how I'd change punctuation, replace words, rearrange sentences, alter the entire storyline, all to make it flow better or be more effective.

Even the assertion that code can't be protected because it's an algorithm doesn't hold up. *Physical* algorithms (specific chemical or metallurgical techniques, new machines, etc.) get patented all the time, and always have. No, it honestly isn't any different. So if you're telling a coder he can't protect his code, you're also telling the inventor he can't protect his ideas. (And you certainly can tell him that, but I don't think you'd get very far in a court.)

So: although I do think a license might be a good idea - if only to make your assumptions explicit, and as insurance - I can absolutely agree with the comparison Sam made, and I share the confusion as to why they're treated so differently.

2010-05-06 10:54:40 by Naleh:

...I apologise for the preceding broken comment.

2010-05-06 11:32:04 by qntm:

I think I'm going to have to add some sort of prompt or JavaScript check to make sure people don't pick the wrong parser by accident.

2010-05-06 15:45:44 by Boter:

http://creativecommons.org/choose/

But then, you've probably already looked into Creative Commons.

2010-05-07 16:23:27 by Cory:

I'm going to have to agree with Naleh. I'm actually surprised by the number of coders who <i>don't</i> view their work as art. As a coder, mathematician, and poet, I can say that I certainly do make commentary on the works of others in all three areas. Whenever I read a friend's poem, I say things like "if you say X instead of Y, it will flow better.", "Wouldn't foo get the point across better?", "Bar is an awful line and contributes nothing"; whenever I read proofs by others, I make the same sorts of commentary, on both flow of ideas and on exposition. I do <i>think</i> about modifying the art I see, always, but <i>I only act on it when the auther has solicited modifications, or has personally given me the material</i>.

I realized, though, while I was reading this, that I do feel differently about code and math than about my poems... But I realized that this is mostly on the surface:
If someone were to clean up someone else's proof, without adding substantial new ideas, I would not consider it grounds for publication, and I would be insulted if they tried. But if someone were to use my proof, or were to modify it to solve a new problem, I would feel honored. I do feel the same about poetry: if I were quoted or referenced, or if someone were to do a "variations on a theme", I would feel honored.

What about code? I don't care quite as much about people modifying my code, but...
Most of my code is purely academic; it's written to learn something. I like to teach using something I learned is an effective way for me to teach.

On the other hand, were I not to solicit changes (e.g. by releasing code under a permissive license), I would be pretty offended if someone said "I cleaned up the code in baz", without coming to me first. If they were polite about it, I would probably listen to them, but <i>all creators, regardless of medium, have reasons for making the choices they do.</i> And you don't necessarily know them. This means that your modifications may be unwanted. An example that comes to mind is Arch Linux, and the fact that the AUR has never been supported by the package manager. They have a very specific reason for doing this, and it will not change, even if changing it makes Arch "better".

2010-05-07 21:12:13 by frymaster:

@elliotcable

"Open source, real open source, is when the author makes the choice to release something into the wild"

For an OSI-approved license, this is true. But I'm afraid the term "open source" does just mean "you have access to the source code". Other definitions are no less "real" than any others.

2010-05-10 04:06:27 by John:

> But I'm afraid the term "open source" does just mean "you have access to the source code".

Maybe for pedants it does, but to people who actually work in open source, "open source" generally means you can read it and (crucially) you can distribute modifications (per the license).

2010-05-13 20:48:18 by DanKuck:

I was reply with my understanding of the difference between code and fiction, but then I realized you are not asking any questions. You're just ruminating on your feelings. That's cool.

2010-05-19 16:53:13 by DHeadshot:

If I release anything like this online, I generally apply a simple rule of thumb: do what you like, but give me credit for the original program and state any changes you have made. The original credit has to include a link to my website, which contains the original program. This latter measure prevents people from charging money for my work - they still can, I don't mind that, they just have to inform the buyers that it's free online anyway (well, they don't have to inform them until after purchase, but if you didn't check online for software to ddo what you want before rushing out and spending money, you deserve everything you get). Generally I don't post the actual source-code online, but this isn't because the source isn't open in any way - if you've taken the time and effort to reverse-engineer something I've made, you not only have my permission but also my encouragement to do what you want with it provided you stick to the rules mentioned above.

Anyway, I just thought I'd say what I do as food for thought...

2010-05-28 17:58:42 by NotSaying:

Not everything has copyright protection...

http://www.ted.com/talks/johanna_blakley_lessons_from_fashion_s_free_culture.html

2012-12-12 06:38:37 by Thomas:

I am not a lawyer, but my understanding is that I don't need an explicit license to visit a web page, but absent either a fair use defence or the permission to do so it's unlawful for me to save it to my own storage device (my web browser caching the page notwithstanding). You've mentioned the possibility of my making a local copy and changing the code, but not given me explicit permission to do so. In an unlikely Sam turns evil scenario, you could put an ad on the game's page, then sue people who're playing copies they saved for copyright infringement leading to loss of revenue, and I'm not fully confident you'd lose.

2015-10-29 13:53:32 by Resuna:

"Why is there an assumption that all code is released under some sort of license?"

Because if it's not, people technically don't have the right to download it at all.