Forgot your password?
typodupeerror
IBM Patents Your Rights Online

IBM Patents Optimization 156

Posted by CmdrTaco
from the now-that's-a-good-one dept.
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.'"
This discussion has been archived. No new comments can be posted.

IBM Patents Optimization

Comments Filter:
  • The first two words of what is claimed:

    "A method"

    IBM? Fear the soon-to-come decision regarding Bilski vs. Kappos [swpat.org]. That is all.

    • Re: (Score:3, Funny)

      by badran (973386)

      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.

      • Nonsense! That would never work.

        • Some [codinghorror.com] say it doesn't... well at least 80% of the time (according to the (in)famous Standish Group report). ;-) I am so looking forward to seeing Bilski being told to get stuffed by the SCOTUS. I am also worried that the SCOTUS may twist this into something worse... "look on the bright side of life, da dum, da dum, da dum da dum da dum!"
      • IBM Patents Optimizing Filing Random Patent Applications [slushdot.com] The introduction:

        "A method for developing a patent product includes: evaluating one or more patent claims to determine patent scope or financial remuneration, associating the scope or financial outcome with computer-generated random numbers, and a rewriting action of the patent based on the random numbers, comparing the generated patent with the desired patentable area or financial potential.

      • by SQLGuru (980662)

        I'll code in MS Robotics Studio, then. It doesn't rely on all of those silly characters in your patent.

    • You are quite correct: Everyone expects the Supreme Court's Bilski decision will deliver a blow to "Business Method" claims.

      This claim is clearly invalid under the Federal Circuit's Machine-or-Transformation test, and will surely be invalid under whatever new/modified rules the Supreme Court comes up with.
      Note that it was filed (April 08) a few months before the Fed Circuit's decision in Bilski (Oct 08).

      But I don't think IBM fears that outcome. They probably spent about $20k or less to file this particular

    • Re: (Score:3, Insightful)

      by Dachannien (617929)

      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 US

    • 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?

      • Re: (Score:3, Interesting)

        by Pojut (1027544)

        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. [patentlyo.com]

        Click here for the full transcript [supremecourtus.gov].

  • 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.
    • *Stands out of Chair*

      YOU'VE INSPIRED ME.
      I've got it. Imagine like... an environment... a virtual environment... thats integrated into the language you are developing in. Just the concept of it is groundbreaking. You could customize it however you want! Now, imagine this... right... the integrated development environment was capable of performing everything you just said!

      Why, I don't think anyone has ever thought of this before. Not Microsoft [microsoft.com], not even the open [codeblocks.org] source [eclipse.org] community [netbeans.org]!

      Seriously John, lets jump on

  • Trial and error? Sounds like someone needs to patent a way to optimize optimization so that it doesn't include all this wasted time of trial and error.
  • by Pharmboy (216950) on Wednesday April 07, 2010 @10:26AM (#31760986) Journal

    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.

  • by Anonymous Coward

    Can I patent "Hip Thrusting for Procreation or Fun" and just bill the planet?...c'mon only $2/person ($1 in the developing world cause I'm generous like that).

  • Let me guess... (Score:5, Interesting)

    by russotto (537200) on Wednesday April 07, 2010 @10:28AM (#31761018) Journal

    ...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.

  • A big shout-out from IBM to all our hill-climbing friends.

  • As crappy as business model patents are, I think I like product development process patents even less.

    Is there some sort of public RFC system on patents? Is there a "write your senator" sort of mechanism for the scenario where the public hears about a patent application before it's awarded and wants to make sure the patent investigator understands the situation? If not, it seems like that would be a worthwhile tool to have.

    • by Dachannien (617929) on Wednesday April 07, 2010 @10:50AM (#31761352)

      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 [uspto.gov] for more details.

    • Is there some sort of public RFC system on patents? Is there a "write your senator" sort of mechanism for the scenario where the public hears about a patent application before it's awarded and wants to make sure the patent investigator understands the situation?

      There is WikiPatents [wikipatents.com].

  • I had a professor who said that beginner programmers use the Monte Carlo method of programming. You've probably done it, too: change something at random and see if that fixes the problem.

    I guess this would be the Monte Carlo method of optimization?

    • by Cassini2 (956052)

      This reminds me of the "slowest ever compiler" paper. The compiler generated very unusual and fast code, but the compile time was O(256^n) with n being the bytes of code generated. Essentially, the compiler had two algorithms. A random number generator that generated the code, and a verification algorithm that verified the code was correct. The program then selected the fastest of the randomly generated code vectors as its final output.

      You could describe this as the ultimate "Monte-Carlo" compiler. Th

    • by ardle (523599)
      Changing things at random in the hope of fixing a problem is called the Las Vegas method of programming.
    • by pclminion (145572)

      You've probably done it, too: change something at random and see if that fixes the problem.

      I wouldn't quite put it that way. You can change something at random and see if that causes your output to be what you expect, but that's not the same thing as fixing the problem. The only way to fix a problem is to actually understand what it is. The program must be correct for all inputs, not just the ones you are testing. Since you can't test everything (usually), you need to prove (or at least provide strong evi

  • Newton's Method? (Score:3, Interesting)

    by Anonymous Coward on Wednesday April 07, 2010 @10:33AM (#31761110)

    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.

  • Here's an idea: (Score:5, Informative)

    by mea37 (1201159) on Wednesday April 07, 2010 @10:37AM (#31761164)

    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.

    • by Tanuki64 (989726)

      What they are trying to patent is a specific optimization - that of reversing refactorings that the programmer did.

      You mean they don't want to patent trial and error, but the usage of repositories? ;-)

      • by mea37 (1201159)

        You must have a pretty cool code repository if it tags which changes are refactoring and then evaluates the performance impact of those changes so that they can be automatically reversed prior to compilation if they have negative performance impact.

        • by Tanuki64 (989726)
          Did you miss my ';-)'?
          • by mea37 (1201159)

            No, I ignored it because it lacks semantic value. Perhaps you haven't noticed how deluted emoticons have become.

            More importantly, patents are an issue where a large pool of /. readership is routinely confused and misinformed. Sure, I could spot you the assumption that you understood what was really going on and just decided to play on the ambiguous wording. So what? I'm more concerned with making sure the truth of the matter is visible to those who would be all too happy to take your joke as validation

        • by Nadaka (224565)

          I do indeed. My already existing repository system does happen to build the software automatically, tests if it meets specification and alerts the committing developer and his team leader if the committed code does not meet spec, It even has the nifty ability to produce line graphs of performance on critical tests so that you can watch performance go up and down over time for cases where performance degradation was not below the critical limit.

          The only step missing is stomping all over the developers work,

          • by Tanuki64 (989726)
            It is not exactly the same. Your system might inform you whether there is a regression of some sort. What happens here is that you can have a very ugly for humans nearly unreadable code base, which happens to be very fast. Now you refactor your code until it is perfectly readable and maintainable, and basically doing the same as the ugly version did, but slightly slower.

            With what IBM patented you'd keep and see the good code, while the compiler sees only the bad but faster version.

            I cannot say that I
            • by mea37 (1201159)

              (I seem to have somehow attached this reply elsewhere to the wrong comment... So trying once again:)

              Now that's a good point (though just for completeness, I should point out that the merit of the invention is different from the merit of the patent). This strikes me as a very dangerous optimization, especially once the refactored-but-not-refactored code starts undergoing further changes.

          • Re: (Score:3, Insightful)

            by mea37 (1201159)

            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

            • by mea37 (1201159)

              Now that's a good point (though just for completeness, I should point out that the merit of the invention is different from the merit of the patent). This strikes me as a very dangerous optimization, especially once the refactored-but-not-refactored code starts undergoing further changes.

              • by mea37 (1201159)

                Must've pressed the wrong Reply button. Bleh. You can find the parent comment reproduced where it belongs, as a reply to the GP comment's sibling.

        • by HiThere (15173)

          It's one of the standard techniques in Evolutionary Programming (also known by other names, sorry).

          You take a code base, make a bunch of permutations, check each one, including the parents, for optimality against some test, select a few for the next generation, and repeat.

          You prefer to do permutations, because random mutations are more likely to fail, but you also throw in a few of those so you don't get stuck in a dead end. You tree-structure (or some such) the code, so that the permutations come in all d

          • by bws111 (1216812)
            And somewhere in all those attempts, you get one that runs great, but is impossible to read/maintain. So you refactor it to make it maintainable. Because of something in the refactoring, performance suffers. What do you do now? Keep the one that runs great, or the one that is maintainable? If you use their new, patented method, you keep BOTH - one for the programmer, and the other for the compiler. How do they do this? I don't know - it is new and novel, and thus patented.
            • by HiThere (15173)

              Sorry, but that's not the context of evolutionary programming. The system does the refactoring, and no human expects to EVER understand why the code works as it does except in *very* simple cases. (Also, the refactoring is not intended to avoid changes in design. It's intended to automatically change the code actions so they they more nearly approach some defined optimum.)

              Sometimes the code can be understood by people. Not usually though. It tends to produce spaghetti code with many global variables. U

    • Re: (Score:3, Interesting)

      by radtea (464814)

      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.) Every

      • by mea37 (1201159)

        "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)?"

        No, I don't think the patent covers that.

        You're talking about choosing between the "cleaner" refactored code, or the "somehow better" non-refactored code. The patent is talking about

        • by radtea (464814)

          The patent is talking about using a precompiler so you can have your cake and eat it too.

          Any of the common tools for measuring cyclomatic complexity would seem to me to qualify as an instance of a "precompiler" in the relevant respect.

          • by mea37 (1201159)

            For a tool to qualify as an instance of a precompiler, I believe it would have to allow you to keep the refactoring in the human-readable code, while removing it from the version that the compiler sees. I don't know that you'd want to do that if the refactored version has greater complexity, but even if you wanted to I don't know of any tool that would facilitate it. Just detecting the increase in complexity isn't the crux of the patent.

    • by Yvanhoe (564877)
      I would say that the procedure :
      1. Do [X] automatically to the code
      2. Evaluate performance gain
      3. Keep or throw the modification based on the result of (2)


      is no more of an innovation that the procedure to do X automatically. This kind of patents comes from crossing very known procedures in order to get something that is maybe not prior art but is made from the obvious combination of prior art. You know, if there was a way to describe patents as a templated, machine-readable format, I could make a gener
      • by mea37 (1201159)

        Ok, but that is not what the patent describes.

        Do [X] automatically to the code

        The patent has nothing to do with automatic refactoring. The refactoring is done by the programmer by whatever means the programmer would do it today.

        Keep or throw the modification based on the result of (2)

        The patent describes a system that doesn't choose between keeping or throwing out the change. It keeps it in the human-maintained codebase, and may present the code to the compiler as though it had thrown it out (based on the

        • by HiThere (15173)

          But how is that different from an optimizing compiler? Is separating the optimizer from the compiler really worth a patent? And in that case, aren't the various compile-to-C implementations of various languages examples?

          Sorry, every interpretation of this I've encountered looks like it has LOTS of prior art.

          N.B.: I've been told that it's dangerous for programmers to read patents, and also dangerous for non-patent-attorneys (i.e., not just attorneys, but patent-attorneys) to claim to understand what a pate

    • by Darinbob (1142669)
      The problem with reading patents is that you have to actually read them all the way through. Too often people stop at "a method for catching mice using a device composed of springs and wires" and think that it's already been done before. Often there are many pages surrounding the one actual germ of an idea contained within. You have to describe prior art first, you have to describe the background of the subject matter, etc.
  • by Grond (15515) on Wednesday April 07, 2010 @10:37AM (#31761166) Homepage

    If you read the description [google.com], 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 [uspto.gov] (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.

  • Inventions then cannot, in nature, be a subject of property. Society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility, but this may or may not be done, according to the will and convenience of the society, without claim or complaint from anybody. Accordingly, it is a fact, as far as I am informed, that England was, until we copied her, the only country on earth which ever, by a general law, gave a legal right to the exclusive use of an idea. In some other countries it is sometimes done, in a great case, and by a special and personal act, but, generally speaking, other nations have thought that these monopolies produce more embarrassment than advantage to society; and it may be observed that the nations which refuse monopolies of invention, are as fruitful as England in new and useful devices.

    Thomas Jefferson, founder member and director of USPTO.

    http://press-pubs.uchicago.edu/founders/documents/a1_8_8s12.html [uchicago.edu]

    • That Thomas Jefferson quote doesn't say anything about abolishing patents. Rather, he's saying that they're a granted right rather than an entitlement. That's a very different argument (and relevant with the proposed changes to 35 USC 101 in the Patent Reform Act of 2009), and you seem to have completely misread the quote.
      • by unity100 (970058)

        i didnt 'misread' the quote. i have provided the quote in order to stress the invalidity of the 'patents spur innovation' bullshit, and through that, invalidity of the concept of patents, through jefferson's words.

        for, once you write off the 'patents spur innovation' delusion, only thing that remains is whether anyone can hold the right to concepts and ideas, like property. and jefferson further discredits that idea in his text. read the full text.

        • i didnt 'misread' the quote. i have provided the quote in order to stress the invalidity of the 'patents spur innovation' bullshit, and through that, invalidity of the concept of patents, through jefferson's words.

          But Jefferson's words are discussing a non-time limited, inheritable patent right and how that would stifle innovation, and instead suggests that patents are granted rights rather a natural right or entitlement. Your "abolish patents" is misplaced from that quote.

          • by unity100 (970058)

            not as such.

            consider jefferson's time to ours. its 1800s, a time when life, leave aside everything else, moves slow. everything takes long, including inventions and their subsequent implementation.

            now consider our date. today, even a patent that has an 10 year duration is too long, because life is fast, technology moves fast.

            in that context, a lifetime patent may have been logical in early 19th century, but, even 5 years, leave aside a decade, is too long for 21st century.

            • not as such.

              consider jefferson's time to ours. its 1800s, a time when life, leave aside everything else, moves slow. everything takes long, including inventions and their subsequent implementation.

              now consider our date. today, even a patent that has an 10 year duration is too long, because life is fast, technology moves fast.

              in that context, a lifetime patent may have been logical in early 19th century, but, even 5 years, leave aside a decade, is too long for 21st century.

              First, no, technology doesn't move fast because it's the 21st century instead of the 19th. Technology moves faster or slower depending on the industry. 10 years is a long time for software, but it's a really short time for an internal combustion engine's fuel injector, or a planetary engine, or an automatic transmission, or drug development, or creation of a new ceramic alloy, etc. Your argument shouldn't be "shorten patent lifetimes because it's the 21st century," it should be "shorten software patent life

              • by unity100 (970058)

                first,

                doesnt the need to 'readjust' patent durations because of the differences in different industry sectors direct out imply that longer 'ownership' 'rights' are detrimental to those sectors, and therefore villify patents.

                second,

                no, you are still not getting the point and point of the quote. in the quoted article, he says that claiming ownership of a thought or idea is illogical. that is a solid reason for unreasonability of patents.

                • doesnt the need to 'readjust' patent durations because of the differences in different industry sectors direct out imply that longer 'ownership' 'rights' are detrimental to those sectors, and therefore villify patents.

                  No, if it "vilifies" anything, it is merely the idea of a one-size-fits-all theory.

                  no, you are still not getting the point and point of the quote. in the quoted article, he says that claiming ownership of a thought or idea is illogical. that is a solid reason for unreasonability of patents.

                  No, he claims that a property right in an idea is illogical, but that "society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility."

                  There are more rights than just property. That's what he's talking about - that a patent is not the same as a house, which can be left to your descendants.

                  • by unity100 (970058)

                    no, it definitely villifies patents. basically if patents are detrimental to human progress and knowledge for any given duration, it means that they are detrimental for any duration.

                    and are you aware that profiting rights are basically as same as ownership rights ? after all, no feudal lords really owned the land they were sitting on - all of their profits were leased to them and their heirs for life by their king.

                    • no, it definitely villifies patents. basically if patents are detrimental to human progress and knowledge for any given duration, it means that they are detrimental for any duration.

                      That doesn't follow logically at all.

                      and are you aware that profiting rights are basically as same as ownership rights ?

                      I'm aware you probably haven't taken a class in property law. They're not at all the same things.

                      after all, no feudal lords really owned the land they were sitting on - all of their profits were leased to them and their heirs for life by their king.

                      Yes, but they also had more rights given to them than just the right to profit from a certain chunk of land - they also had the right to exclude others from the land, the right to use and enjoy the land, the right to sublease or assign their interests in the land, the right to take action against third party occupiers, etc. Tons of independent rights involved, any of which co

                    • by unity100 (970058)

                      That doesn't follow logically at all.

                      sure it does. technology is something that progresses steadily. anything that hampers its development for any period or duration, would hamper it in any other form. therefore, even if you limit patents to 1 year durations, this will still limit the development of technology to 1 year terms.

                      I'm aware you probably haven't taken a class in property law. They're not at all the same things.

                      the property law, which descends from middle ages feudal ownership laws (mainly french, later british), which in turn descends from a mesh of late roman empire property ownership AND communal germanic ownership concept. n

                    • That doesn't follow logically at all.

                      sure it does. technology is something that progresses steadily. anything that hampers its development for any period or duration, would hamper it in any other form. therefore, even if you limit patents to 1 year durations, this will still limit the development of technology to 1 year terms.

                      That's a bit of a naive depiction. Technology doesn't just "progress". It takes frequently-expensive R&D and investment. Investors aren't going to spend that money if they can't get a return. Back before patents, the answer was to keep everything as a trade secret. That stifles innovation because every company has to duplicate everyone else's research, over and over and over again. The patent system encourages public disclosure of innovations that wouldn't happen otherwise.

                      practice matters. once you give right to profit over something to solely one person or group, other groups will not be able to find many uses for that item. it wouldnt do anyone good to employ any kind of contraption as a hobby in their garage on weekends.

                      There are many products which

                    • by unity100 (970058)

                      That's a bit of a naive depiction. Technology doesn't just "progress". It takes frequently-expensive R&D and investment. Investors aren't going to spend that money if they can't get a return. Back before patents, the answer was to keep everything as a trade secret. That stifles innovation because every company has to duplicate everyone else's research, over and over and over again. The patent system encourages public disclosure of innovations that wouldn't happen otherwise.

                      not naive at all. technology 'just' progresses, in an environment which allows free flow and exchange of ideas without requiring people to pay for them. most of the technological breakthroughs of late 19th and early 20th century were done with zero investment, and everyday items. just going through the early life of thomas alva edison will make it clear that for innovation to happen, one doesnt even need education, leave aside investment. early lives of tesla, faraday, and many other inventors and scientist

  • Of course I write all my software from the first to last line with perfect efficiency. No bugs, no need to refactor. So IBM and now prove me wrong.
  • The patented stuff is the "claims". You'll find them hidden, starting somewhere within a brick of text. Harder to find than the abstract, but they're the thing that count.

    • Re: (Score:3, Informative)

      by radtea (464814)

      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.

  • by b4dc0d3r (1268512) on Wednesday April 07, 2010 @10:48AM (#31761326)

    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.

    • by radtea (464814)

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

      Beer. Lots and lots of beer.

      I think your take on the patent makes sense, but it certainly isn't what I got from reading the claims alone. I would argue that while the claims as written do cover what you're describing they are vastly too broad, and cover pretty much any refactoring sequence where there is the possibility of reversion based on a metric, whether or not the refactored code is saved.

      • by b4dc0d3r (1268512)

        I'm not defending the application. The claims leave this open to being implemented manually, and the supporting documentation makes it clear that the claims do not match the described invention. We should be objecting to this patent, but not based on the description in the summary. No one here reads the patents, so I wanted to make sure people noticed that the invention itself is not trivial. The patent application is unfortunately just as terrible as the summary of it.

        If we are going to have a discussi

  • Actually, someone will probably point out how this is not simulated annealing, but this is how I understand it. It's like a genetic algorithm, but with one population member. You start out with a "high temperature", where you try lots of random runingthings at once. Whenever some random combination makes things better, you keep it. Then you lower the temperature, which means you reduce the number that you try at once. Eventually, you're down to trying one random change at a time.

    This "AI" technique is

  • Every patent that is ever written walks the line between too broad and too narrow claim language. The broader the language, the more likely prior art will be shown to exist. If the claims are too narrow, it is too easy for others to get around them.

    These claims seem about as broad as it gets. There's a whole wiki article on refactoring: http://en.wikipedia.org/wiki/Code_refactoring [wikipedia.org]

    Can't imagine this will be issued as written.

  • The age-old Rules of Optimization:

    1. Don't.
    2. (For experts only) Don't yet.

  • Didn't a patent application originally require an implementation of the method being patented be included? IBM should be forced to submit a grad student along with this patent application!
  • I patent patent optimization by trial and error!
  • Doesn't the ATLAS Project [sourceforge.net] count as prior art for this? It basically compiles the code every possible way, runs it, and compares the results to choose the best algorithm. I believe the traditional use of grad students to achieve trial-and-error optimization also should qualify as prior art.
  • After I build my time machine I plan to go back in time and patent the process of writing buggy code. This of course will lead inescapably to my next patent of fixing buggy code, while of course recursively inserting new bugs. I may even claim all subsequent programs to be covered under these two patents.
  • I've filed for a patent on "using a handheld device to selectively transfer contrasting material onto any flat surface or material for the purpose of creating symbols in combinations for the purpose of communication of thoughts or ideas in a non-verbal form". Everyone on the planet should get a jump on it being granted and send me money now -- unless you've never used a pen or pencil to write anything anywhere your entire life. Don't worry, I'm not too greedy: I only expect $1US for a lifetime license to us
  • Everybody here should listen [linux.org.au] (or watch [linux.org.au]) at least once Andrew Tridgell's presentation about how to read a software patent. He's a good and entertaining speaker, and what he has to say is highly relevant.

We can predict everything, except the future.

Working...