Slashdot Mirror


IBM Patents Optimization

jamie(really) writes "IBM appears to want to patent optimizing programs by trial and error, which in the history of programming has, of course, never been done. Certainly, all my optimizations have been the result of good planning. Well done IBM for coming up with this clever idea. What is claimed is: 'A method for developing a computer program product, the method comprising: evaluating one or more refactoring actions to determine a performance attribute; associating the performance attribute with a refactoring action used in computer code; and undoing the refactoring action of the computer code based on the performance attribute. The method of claim 1 wherein the undoing refactoring is performed when the performance attribute indicates a negative performance effect of the computer code.'"

16 of 156 comments (clear)

  1. If Only There Was a Way to Integrate This by eldavojohn · · Score: 5, Funny

    IBM is on to something big here, folks. Now just try to wrap your mind around this idea: we somehow enable this optimization on ... multiple levels! Stay with me, stay with me, I know this seems like a crazy idea right now. But I imagine a future where just adding something as simple as -02 or -03 to your compile commands will increase the level of optimization at an expense of compilation time!

    Did you get all that? Because I think I just made history.

    *grabs his head* Oh Jesus, oh sweet Jesus, another one's coming to me. It's gonna be big! What if ... what if you didn't have to type out each of your compile statements when you're compiling hundreds of files? What if, and this is totally futuristic possibility here, we introduce a build tool of some sort to the whole process? Let's call it Mack ... no, wait, Make!

    Elvis MF Christ I am going to be a rich man.

    --
    My work here is dung.
  2. Thank goodness by Pharmboy · · Score: 3, Funny

    Thank goodness we allow software and concept patents in the US, else this new advancement in computer optimization might never have been developed. As a bonus, once the patent expires, the method will be in the public domain, so everyone will be free to optimize their code using trial and error.

    --
    Tequila: It's not just for breakfast anymore!
  3. Re:lolwut? by badran · · Score: 3, Funny

    I think the next software patent would be on the lines of:

    A method for developing a computer program product, the method comprising: Inputing characters and symbols with the help of an input device after processing the semantics and possible meaning mentally beforehand.

  4. Let me guess... by russotto · · Score: 5, Interesting

    ...there was a $10,000 bonus for patents at IBM in the month of April 2008, right? Alternatively, this was submitted internally at IBM on April 1, and someone missed the joke.

    IBMs internal process must have slipped a lot since I was there. I was once on a team which applied for a patent which was useful and arguably non-obvious, the only problem being that IBM had actually done something similar some 20 years before (in a different language)... internal patent people shot it down.

  5. Re:Oy Carumba! by Ltap · · Score: 2, Funny

    Yes, this method of optimization is surprisingly... non-optimized.

    --
    Yet Another Tech Blog
    (but so much more, including game and movie reviews)
    http://yanteb.peasantoid.org
  6. Newton's Method? by Anonymous Coward · · Score: 3, Interesting

    Isn't the larger class of this idea called Newtons Method? Not only has it been done on the software level; I think the mathematicians may have something to say about it too.

  7. Here's an idea: by mea37 · · Score: 4, Informative

    If you're going to comment on a patent, read the patent first.

    "IBM appears to want to patent optimizing programs by trial and error"... ...except that isn't what the patent claims describe. I'll grant that if your expectations have been set to believe that's what the patent covers (as mine had been by the summary), then it's possible to interpret the claims in a way that conforms to that assumption; but if you actually read the entire patent to understand the claims in context, that isn't what they really say.

    What they are trying to patent is a specific optimization - that of reversing refactorings that the programmer did. If you would like to debate why this is, or isn't, a valid thing to patent, go right ahead; but please don't waste the debate by talking about all the different code optimization schemes that don't do what the patent describes and pretending they are prior art.

    1. Re:Here's an idea: by radtea · · Score: 2, Interesting

      If you're going to comment on a patent, read the patent first.

      Actually I'm amazed and delighted that quite possibly for the first time in the history of /. we have a patent story that doesn't mis-identify an application as a grant, and that actually quotes the claims!

      Who says there's no such thing as progress?

      And the comments have been relatively germane: the patent describes the process of implementing a refactoring, evaluating it (possibly before compilation) and reverting it if it does not pass one or more measures of goodness (time and potentially others.) Everyone who has ever refactored anything has done this.

      This is not "debugging by trial and error" but it certainly is "refactoring followed by (possibly pre-compilation) evaluation against some measure of goodness followed by reversion of the refactoring on that basis."

      So here's a question: if I create an experimental branch in my local git repository, start a refactoring, decide the cyclomatic complexity of my refactored solution is too high when I get half-way through, and revert by simply dropping the branch without ever committing, would I be violating this patent (if it were granted)? Because I've certainly done that many, many times, as has pretty much everyone else who's ever refactored anything.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    2. Re:Here's an idea: by mea37 · · Score: 2, Insightful

      Too bad the "only thing missing" is the crux of the patent; so when you said "I do indeed" you meant "No, I don't".

      You mention that using your toolset the developer can just revert the change. Trouble is, once that's done the user-readable code no longer benefits from the cleaner, refactored version; the developer has to choose to give up that benefit to get the better performance. The patent discusses a scenario where you can get the best of both worlds; it doesn't revert the change in the user-readable code as you seem to think it does. (It doesn't, in short, "stomp all over the developer's work".) Instead, it presents the code to the compiler as though the refactoring weren't done.

      Anyway, that is what sets your usage pattern of existing tools apart from the process described in the patent.

  8. Not About Trial and Error by Grond · · Score: 4, Informative

    If you read the description, the claimed invention is not about trial and error development. The idea is that every time code is refactored, the development environment will tag the refactoring. Refactorings that could affect performance are transparently undone at compile time, so long as it wouldn't change the functional behavior of the program. Thus, the developer sees nice, neat comprehensible code, and the compiler sees more optimized, compiler-friendly code.

    Also, if you look the application up on PAIR (the PTO's public patent application database, which contains more detail than the regular patent search or Google Patents), you'll see that it's a new case. That is, the Patent Office hasn't examined the application yet. It's highly likely that after a few rounds of office actions the claims will not look like the current ones. They will probably be narrower and hew more closely to the description in the specification.

  9. Re:lolwut? by Dachannien · · Score: 2, Insightful

    Bilski is not going to make all methods unpatentable. 35 USC 101 states that processes (i.e., methods) are a permitted statutory class of invention for the purposes of obtaining a patent. The key is whether certain types of methods fall under the previously delineated judicial exceptions (abstract ideas, natural phenomena, or laws of nature) to the four statutory classes of invention that 35 USC 101 describes (processes, machines, articles of manufacture, and compositions of matter). Specifically, the USPTO and the Court of Appeals for the Federal Circuit say that Bilski's claimed invention is nothing more than an abstract idea with tenuous, if any, ties to a particular application of the idea.

    If you're expecting an earth-shattering kaboom when SCOTUS releases their opinion in Bilski, prepare to be disappointed. It's unlikely to have a huge impact on patents for computer-based methods, although few people actually think that Bilski is going to come away from this with a patent in hand.

  10. Bad summary, refactoring not optimization by b4dc0d3r · · Score: 4, Interesting

    This is not a method of gradually figuring out how to boost performance by trying different things.

    This invention makes changes to the source code on the fly. The purpose is to allow programmers to re-factor code for readability, but un-do the process before compiling. Presumably this is built in to one of their automatic refactoring applications or IDE. It is about fixing the problems refactoring causes, specifically in this case performance issues. I assume it could work like automatic inlining of small, commonly used functions, but is open to be a lot more complex.

    You click the buttons on the GUI, it refactors some things for you and maintains a history of those actions. It stores the resulting code, which you send to source control or final build kit or whatever. When building, it examines which changes had a negative impact on performance and reverts those before compiling.

    To the user, the code is refactored. To the computer, it is not.

    My question is, how the hell do you debug this kind of output, or store it in source control? You are clearly going to be locked in to the same IDE, and probably same IDE version, and have to check in all of the project files. Cross-compilation is going to be difficult at best, since compiling the raw code won't have the performance enhancements. Clever for a closed-process shop, but kinda impractical.

    What will be more interesting is whatever people come up with to deal with the misery this will create.

  11. Re:Worse even than Business Patents by Dachannien · · Score: 3, Interesting

    Third parties can pay the USPTO a fee (currently $180) to put references into the file of a pending application and have those references considered by the examiner. However, you have to do this within two months of the date of publication (or two months after a notice of allowance in the application, whichever is earlier), and you cannot make any commentary whatsoever concerning the references you cite. You also have to serve the applicant with notice that you filed the references with the USPTO.

    See 37 CFR 1.99 and MPEP 1134.01 for more details.

  12. Re:The abstract is *not* the patent by radtea · · Score: 2, Informative

    The patented stuff is the "claims".

    Incredibly enough what is quoted in the summary is actually the first claim. It looks like the abstract is just about identical, so it may be an oversight on the part of the /. editors, who in the past have routinely mangled patent stories so badly as to make one suspect they love the patent system so much that they can't find anything truthful to say about it that looks bad. But in this case they've done the right thing, and the claims are actually as dumb as the summary makes them sound.

    --
    Blasphemy is a human right. Blasphemophobia kills.
  13. Irony by Weaselmancer · · Score: 2, Insightful

    Typical response from a child. When told you should educate yourself about what you're trying to attack

    And:

    you're going to have to lose the whiny bitch attitude before you'll have any chance

    Just saying.

    --
    Weaselmancer
    rediculous.
  14. Re:lolwut? by Pojut · · Score: 2, Interesting

    You're talking about a Supreme Court which ruled that Corporations can spend as much as they want on election campaigns. What the hell makes you think they're going to overturn software and business patents?

    The fact that everyone on the Supreme Court unanimously agreed that Bilski is full of crap, for starters. It was essentially a public beating of Bilski's claims.

    Click here for analysis of the arguments.

    Click here for the full transcript.