First of all, if his algorithm wasn't their algorithm, then that means they had a patent for the end result, which, as a programmer, you should be greatly against.
Second, he had no other choice in the matter. It wasn't a choice between him preferring their implementation of depth fail stencils, they were the same thing, it was that he had two choices.
Use a different, not nearly as efficient method (which was eventually used for the source code release).
Or
Accept their offer to use EAX to avoid a lawsuit.
I don't know where you're getting that he preferred Creative's method over his.
They did not have a patent on the end result, they patented the algorithm they used to create that result. If they had patented the end result id would not have been allowed to release the source code with a replacement algorithm, which they did.The patent situation well and truly sucks. We were prepared to use a two-pass algorithm that gave equivalent results at a speed hit, but we negotiated the deal with Creative so that we were able to use the zfail method without having to actually pay any cash. It was tempting to take a stand and say that our products were never going to use any advanced Creative/3dlabs products because of their position on patenting gaming software algorithms, but that would only have hurt the users.
From the article you linked Carmack wrote his own shadow algorithm. It was good, but then he heard about the zfail method and wanted to use that instead since it was faster. Creative was a turd and patented it, forcing him to license if he wanted to use their method. Which he did, as he stated his method caused a speed hit that he didn't want to incur. He could have created a new method but they reached a deal so he could use theirs. I wouldn't blame software patents for what happened I'd blame Creative.
It's ironic you brought up John Carmack. The man's a legend and one of my personal hero's! Programmer by day, aerospace engineer by night, he's a certified genius. It sucks that happened to him but I'm trying to stay objective.
How does a copyright protect me form someone porting my algorithm to another language? If the language is protected and not the process (the mechanism used to calculate the result) it doesn't stop someone from copying it and selling it for profit. You can imagine how different the same algorithm would look in C++ and Lisp. Unless you were highly knowledgeable in both languages you would not be able to tell they produced the same result by looking at the source. Especially if one side is intentionally obscuring their method to make it appear distinguishable. This is much easier to do in programming than works typically protected by a copyright.An algorithm as complex as a data compression scheme is better protected by copyright, since...like you said...you can't go in and change 5 lines and get something entirely new.
Anyone who wants to do a better compression scheme will have to start from scratch, and write all the code themselves from the bottom up. So with that in mind...why patent it? Why not just rely on copyright protection, which keeps people from looking at your source code and copying it for their own use? That's exactly what you want, right?
The world is a different place now. Back in the 70s when computers were being developed so few companies were involved in it they didn't have to worry.Software developers managed to get by just fine before software patents become a thing in the 90's, and the EU doesn't allow software patents at all. Your copyrighted material, from the code itself to the graphics you use in your program, is more than enough to protect yourself from moochers.
I don't disagree. You seem to be confusing "end result" with "process". In the compression example you are only patenting the algorithm used to compress data. Every algorithm works very differently then the others. None of them patented compression as a whole, they only cover the specific method their algorithm uses to compress data.Plus, unless you're working on an FOSS project, what are the chances of someone seeing your source code and ripping it off? If you make a successful program, someone would have to reverse engineer your work to make something similar, and chances are good their final product will be a great deal different than yours while still performing the same function. Which is totally legal.
Compression is a field that will always show innovation. As more and more streaming services appear it becomes a very valuable technique for saving a company money. You can imagine what even a 10% bandwidth reduction would mean for a company like Netflix.
Did you know that every DVD or Blueray player you buy that can play WMV or MPEG-2 files part of your purchase price is going towards a license for those software codecs?
Except you can't sue for results, you can only sue if they implement your algorithm to obtain those results.If their product ends up being better than yours, well...that's life. You'll have to do something better yourself to keep ahead of the Jonses. If it's not, you still have the better piece of software, and you'll still make money off your hard work because of that.
But in a software patented world, you could still sue them because their end result looks similar to your end result, which costs both parties a ton of money. If you're a big corporation, that's not a big deal. If you're a little guy with a great idea, you're kinda screwed.
May I ask if you are a developer? A specific implementation does produce a specific output and that's exactly what I'm advocating should be patentable. I do not believe the "end result" should be patentable either in case that wasn't clear. However, if you spend the time, energy, and resources to find a very efficient way to solve a complex problem, your specific solution should be protected by law just as it is with physical inventions.There isn't an easy answer, no. I personally believe everyone should be compensated for their hard work, and programming is definitely not an easy thing to do. But I also believe that people should only own their very specific implementation, not a generalized process of something that produces a specific output. The latter is something the patent system in its current state allows to let happen. And that, more than anything, will kill innovation.
I don't believe that concept applies anymore. Patents were originally designed to cover physical inventions, we are living in an ever increasingly digital world. The laws need to be updated to reflect that. Clearly what we have today is not sufficient. Throwing them out the window will create as many problems as it solves.That's one problem with software patents. Many of them are just ideas written in fancy language, and you're not supposed to be able to patent ideas. No detailed implementation algorithms.
Last edited: