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

156 comments

  1. lolwut? by Pojut · · Score: 1

    The first two words of what is claimed:

    "A method"

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

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

    2. Re:lolwut? by Anonymous Coward · · Score: 0

      "A method" is patentese it's just how patents are written.

    3. Re:lolwut? by GameMaster · · Score: 1

      Nonsense! That would never work.

      --

      Rules of Conduct:
      #1 - The DM is always right.
      #2 - If the DM is wrong, see rule #1
    4. 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.

    5. Re:lolwut? by Anonymous Coward · · Score: 0

      It's only a matter of time until creating anything becomes so cumbersome an effort to avoid breaking patents, laws or stealing IP's that the whole process either ceases or goes fully underground. Here cometh the thought police !

    6. Re:lolwut? by ObsessiveMathsFreak · · Score: 1

      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?

      --
      May the Maths Be with you!
    7. 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.

    8. Re:lolwut? by Anonymous Coward · · Score: 0

      The requirement for a "method" is that it either 1) Is tied to a specific piece of tangible machinery which implements it, or 2) Leads to a tangible transformation of an object. This seems to fall under #2. IANAL.

    9. Re:lolwut? by Dachannien · · Score: 1

      To be more precise, it has to meet either one of the following criteria: 1) the method is tied to a particular machine or apparatus; or 2) the method performs a transformation of a particular article into a different state or thing. Furthermore, the machine tie or the transformative step can't merely be related to insignificant extra-solution activity, so if you're talking a computer-implemented method of some sort, the machine tie can't simply be in an input or output step that doesn't have much to do with the invention.

      Also, a lot of these terms are not very well defined by the case law. For example, what is a "particular" machine? What does "tied" mean? What qualifies as a "transformation"? A "particular article"?

      In re Bilski is built on case law that went before, such as Benson, Flook, Abele.... But none of these cases does a very good job laying out the bounds of what qualifies as statutory subject matter. Unfortunately, it's unlikely that much clarity will come from Bilski. Most likely, the Supreme Court will throw out the machine-or-transformation test, or at least indicate that it's not the sole test for determining whether subject matter is statutory or not (similar to KSR v. Teleflex indicating that the teaching-suggestion-motivation test is not the only way to arrive at a finding of obviousness). What they put in its place is likely to be nebulous, raising as many questions as it answers.

      In IBM's case here, though, they'll probably just do what everyone else does when their computer-implemented method claim gets rejected under 101: amend the claim to say that a processor performs the steps.

    10. Re:lolwut? by Anonymous Coward · · Score: 0

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

      Wait a minute -- isn't this whole optimization thing covered by prior art? As I recall, the first wheel was square, if not triangular. Bit by bit, various people started knocking off corners until a practical solution was arrived at.

    11. Re:lolwut? by SQLGuru · · Score: 1

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

    12. Re:lolwut? by theshowmecanuck · · Score: 1

      Some 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!"

      --
      -- I ignore anonymous replies to my comments and postings.
  2. 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.
    1. Re:If Only There Was a Way to Integrate This by Monkeedude1212 · · Score: 1

      *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, not even the open source community!

      Seriously John, lets jump on this.

    2. Re:If Only There Was a Way to Integrate This by Anonymous Coward · · Score: 0

      Keep dreaming sparky! IBM got there first.....Oh Wait!

    3. Re:If Only There Was a Way to Integrate This by N1CK3Y · · Score: 1

      If I remember right, Microsoft has already patented make last year

    4. Re:If Only There Was a Way to Integrate This by Anonymous Coward · · Score: 0

      You both just totally blew it. Don't you know that you're not supposed to publicly disclose your patent ideas before you file?

      Rookies.

    5. Re:If Only There Was a Way to Integrate This by Mike.lifeguard · · Score: 1

      Even if some brain-dead bureaucrat grants the patent - I can't imagine one easier to defeat. Thank goodness for EFF!

    6. Re:If Only There Was a Way to Integrate This by MiniMike · · Score: 1

      No, they patented 'break'.

    7. Re:If Only There Was a Way to Integrate This by Anonymous Coward · · Score: 0

      I'm another inspired person!!!! I see the genius in your idea and decided to implement it, just browse to www.gnu.org and search for gcc and that make program (i named it after your inspired words) I'm gonna patent it right away!

  3. Oy Carumba! by WrongSizeGlass · · Score: 1

    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.

    1. 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
    2. Re:Oy Carumba! by oodaloop · · Score: 1

      Oy Carumba? Are you a Mexican Jew? Not that there's anything wrong with that or anything.

      --
      Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
    3. Re:Oy Carumba! by Anonymous Coward · · Score: 0

      Oy Carumba? Are you a Mexican Jew? Not that there's anything wrong with that or anything.

      I believe that's a Simpsons. IIRC it was uttered by Krusty (probably as a spoof of Bart's "Ay Caramba").

    4. Re:Oy Carumba! by Kongming · · Score: 1

      Oy Carumba? Are you a Mexican Jew? Not that there's anything wrong with that or anything.

      Yes, actually. http://www.penny-arcade.com/comic/2003/11/07/

      --
      (no sig)
  4. 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!
  5. It makes me wonder... by Anonymous Coward · · Score: 1, Funny

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

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

    1. Re:Let me guess... by Anonymous Coward · · Score: 0

      Maybe IBM replaced all of their internal patent people w/ retirees from the USPTO on account of their unmatched experience?

    2. Re:Let me guess... by Anonymous Coward · · Score: 0

      Also an exIBMer - I think it was hit and miss when I was there, some obvious stuff would get through while other 'better' patents would be denied.

      A lot of patents in IBM are all due employees trying to get them in the system for bonuses and annual reviews purposes - anyone trying to read any sort of corporate strategy into them is nuts

    3. Re:Let me guess... by Issarlk · · Score: 1

      Then this obviously mean that software optimisation had never been tried in IBM before 2008 !

  7. Precursor to AI? by Anonymous Coward · · Score: 0

    Don't we learn by trial and error?
    IF AI is close... they'll have a patent on it?

  8. Russel and Norvig by trurl7 · · Score: 1

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

  9. Worse even than Business Patents by PowerVegetable · · Score: 1

    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.

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

    2. Re:Worse even than Business Patents by Anonymous Coward · · Score: 0

      This incentive structure is thoroughly screwed up. Why should doing an examiner's work for him (it is his job to evaluate applications for novelty, right?) require us to pay the patent office? Perhaps keep the fee to prevent repeated submission of a bunch of garbage, but it should get paid back along with a hefty reward if the submitted reference turns out to be prior art (of course, no further reward should be issued for dupes).

  10. Monte Carlo by c++0xFF · · Score: 1

    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?

    1. Re:Monte Carlo by Cassini2 · · Score: 1

      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. The general idea of randomly testing optimization variables is not new, and is used frequently in other simulation tasks where the designer might not properly understand the impacts of the model parameters. In other fields, it is a variation on "Design of Experiments", DOE, with randomized variables. If you look in the Numerical Methods in C/Fortran books, there are many optimization techniques, structured and monte-carlo, that can be used to optimize systems without a thorough understanding of the input space.

    2. Re:Monte Carlo by Anonymous Coward · · Score: 0

      If it generated the code randomly, and not by doing permutations, it would be more like o(n!) or higher. Plus, you are assuming the verification is O(1). Since, you are generating the code random, I think the tests would have to be much more intensive.

    3. Re:Monte Carlo by ardle · · Score: 1

      Changing things at random in the hope of fixing a problem is called the Las Vegas method of programming.

    4. Re:Monte Carlo by pclminion · · Score: 1

      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 evidence) that the program is correct, not just prove that it's correct on a particular input.

  11. Translated from I.B.M.ese: Trial And Error by Anonymous Coward · · Score: 0

    means heuristics.

    I.B.M. stands for I.tty B.itty M.egaloMANIAC.

    Yours In Domodedovo,
    Kilgore T.

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

    1. Re:Newton's Method? by Anonymous Coward · · Score: 0

      Sort of... it is referred to as a "gradient based method." The idea is that you tweak a couple of parameters. Use the results to approximate a gradient, and then use the gradient to "head downhill." Mathematicians have been doing that for a while now. From the description, though, it is not clear what the details are with respect to calculating a gradient.

    2. Re:Newton's Method? by evanbd · · Score: 1

      No. This is a hill-climbing style random walk. Newton's method is something much more special-purpose (and frequently vastly superior, in the sorts of problems it does well).

    3. Re:Newton's Method? by TheVelvetFlamebait · · Score: 1

      I think the mathematicians may have something to say about it too.

      As a mathematician, I have only one thing to say:

      BWAHAHAHAHAHA!

      --
      You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
    4. Re:Newton's Method? by Anonymous Coward · · Score: 0

      Sure, you only have to show a formal bimorphism between real numbers and computer programs, and a function on the reals which is zero when the computer program is optimal. Piece of piss.

    5. Re:Newton's Method? by Anonymous Coward · · Score: 0

      Newton's Method is a very specific algorithm for finding the roots of a function. It is not a generalized term for all trial-and-error methods.

  13. Government is at fault by Anonymous Coward · · Score: 1, Insightful

    The reason companies apply for obvious and trivial patents is because they know that government will grant them. As long as government continues to grant obvious and trivial patents, it is guaranteed that companies will apply for them, and that litigation itself will continue to be a profitable business model.

    The law is exploited because the law is designed to be exploitable.

    1. Re:Government is at fault by Intron · · Score: 1

      The reason IBM does this is that they license patents to companies too small to defend themselves and make a great deal of money doing so. My company had to license patents from IBM to stay in business.

      --
      Intron: the portion of DNA which expresses nothing useful.
  14. 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 Tanuki64 · · Score: 1

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

    2. Re:Here's an idea: by mea37 · · Score: 1

      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.

    3. Re:Here's an idea: by Tanuki64 · · Score: 1

      Did you miss my ';-)'?

    4. Re:Here's an idea: by Anonymous Coward · · Score: 0

      They are patenting an attempt at an optimization, and reversing the refactoring if it decreases performance.

      Assuming any sane person would back out code changes that slow down something you're trying to speed up, I'd argue that ANY optimization does what this patent describes, and would thus be prior art.

    5. Re:Here's an idea: by Saishuuheiki · · Score: 1

      So the patent isn't on using trial-and-error, it's on undoing things you *try* that have a negative effect on performance.

      As Microsoft taught us, people who call a negative effect on performance a *bug* or *error* are mistaken; it's a *feature*. IBM is now patenting the removal of these *features*; how innovative of them.

    6. 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.
    7. Re:Here's an idea: by mea37 · · Score: 1

      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 of what they want to believe, than I am in respecting your joke.

    8. Re:Here's an idea: by mea37 · · Score: 0, Troll

      Typical response from a child. When told you should educate yourself about what you're trying to attack - something you really will need to do if you want your attacks on a patent to mean anything, so one would think a suggestion in your best interest - you respond by trying to ridicule the person giving the advice.

      Anyway, interesting as your interpretation is, it's still wrong.

      It's not "undoing things you 'try'". That would imply that after it's done, you lose the costs and benefits of your refactoring; you don't. The refactoring is not considered an error and is not discarded from the human-readable code base.

      What's going on is, this optimizer is presenting the compiler with a view of your code as though you hadn't performed the refactoring action, so that you don't pay the performance cost even though you get to keep your "cleaner" code.

      So I'll say again - if you wish to compose a sound argument why that shouldn't be possible, I really don't care; I have no opinion on the validity (or lack thereof) of this patent. But you're going to have to lose the whiny bitch attitude before you'll have any chance of doing so.

    9. Re:Here's an idea: by mea37 · · Score: 1

      "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 using a precompiler so you can have your cake and eat it too.

    10. Re:Here's an idea: by Yvanhoe · · Score: 1

      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 generator to recursively make new patents at the rhythm of 100 in a second.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    11. Re:Here's an idea: by Nadaka · · Score: 1

      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, he would have to revert or correct the changes manually (taking all 3 to 5 mouse clicks or a single command line operation. And that itself could actually be automated in the script if I really wanted to, but its a bad idea, so I don't.

      Its called CVS/SVN, cruise control, ANT and unit tests (junit, mbunit, etc) and a handful of reporting libraries.

    12. Re:Here's an idea: by radtea · · Score: 1

      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.

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

      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.

    14. Re:Here's an idea: by Tanuki64 · · Score: 1

      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 like this idea very much. I'd say something very similar exists in the way C/C++ compilers can rearrange and modify instructions for optimization reasons. Works perfectly for single threaded programs, but can give surprising results in multi threaded programs.

      This patent too smells for a good source for very hard to find bugs.

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

    16. Re:Here's an idea: by mea37 · · Score: 1

      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.

    17. Re:Here's an idea: by mea37 · · Score: 1

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

    18. Re:Here's an idea: by mea37 · · Score: 1

      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 result of (2)).

      The fact that so many people commenting on this patent have not grasped that does suggest that there's some innovation involved. (It also suggests that the patent needs to be clarified, which isn't surprising since it's in a very early form.)

    19. Re:Here's an idea: by mea37 · · Score: 1

      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.

    20. Re:Here's an idea: by mea37 · · Score: 1

      And yet another moderator thinks "Troll" means "Written in a tone I don't like". What a shocker.

    21. Re:Here's an idea: by The+End+Of+Days · · Score: 0

      Facts have nothing to do with patent discussions on Slashdot. The point is for everyone to get together and have a giant circle jerk with how clever they can be repeating the same prior art jokes 90 fucking times in a row, while clapping themselves on the back about how they have the high moral ground for wanting to share the hard work of other people that they contributed nothing towards.

    22. Re:Here's an idea: by The+End+Of+Days · · Score: 0

      You could argue that since you learned to optimize pissing by moving your pants out of the way of your dick before you started, that's prior art as well. It would be just as meaningful an argument, and far more entertaining.

    23. Re:Here's an idea: by debatem1 · · Score: 1

      Speaking of a whiny bitch attitude...

    24. Re:Here's an idea: by HiThere · · Score: 1

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

      N.B.: Permutations can cause things like copying one branch over into (or onto) another, changing the order of evaluation (i.e. exchanging left and right), deletion of branches, switching branches, etc.

      In this description I've presumed that the tree was binary, but this isn't always the case.. If it isn't the operations used as permutators become more varied. And I'm no expert, I've barely skimmed the literature. But I've already encountered these methods.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    25. Re:Here's an idea: by mea37 · · Score: 1

      You on a mission, son? Good luck.

    26. Re:Here's an idea: by HiThere · · Score: 1

      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 patent says. So I'm NOT going to read the original.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    27. Re:Here's an idea: by bws111 · · Score: 1

      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.

    28. Re:Here's an idea: by debatem1 · · Score: 1

      I'm not your son, pal.

    29. Re:Here's an idea: by Darinbob · · Score: 1

      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.

    30. Re:Here's an idea: by HiThere · · Score: 1

      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. Ugly code that's nigh impossible to understand any of without understanding all of.

      It also tends to get stuck in blind alleys...so lots of irrelevant techniques are used to break out of the blind alleys...automatically. The whole point of Evolutionary Programming is that almost the entire process is automatic, once the basic starting point is defined, and the function to be optimized is selected. (Though even there there exist variations.)

      But the original code is the "human readable version" that's maintained. The eventual optimized code is never refactored into a human readable form. (OTOH, the process has LOTS of randomness. Starting from the same starting point a second time should be expected to wind up with a different "optimized" executable.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  15. 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.

  16. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  17. Already Done by Anonymous Coward · · Score: 0

    This has already been tried many years ago and is described in Artificial Intelligence: A Modern Approach which is a book that has been around for quite some time, despite being called "modern". http://aima.cs.berkeley.edu/

    There are a lot of challenges with this approach, and it ultimately was been found to be less efficient than existing specialized algorithms used by compilers. It's only strong point would be that it could be generalized to many different languages/scenarios, assuming you could ensure that refactorings don't change the end behavior of the program, which in itself is a big challenge.

  18. Abolish patents already by unity100 · · Score: 1

    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

    1. Re:Abolish patents already by Anonymous Coward · · Score: 0

      Thanks for the link, where he goes on to say

      Considering the exclusive right to invention as given not of natural right, but for the benefit of society, I know well the difficulty of drawing a line between the things which are worth to the public the embarrassment of an exclusive patent, and those which are not.

      You can quote Jefferson all you like; reading him might be more worthwhile, since he doesn't agree with your simple-minded conclusion that patents should be abolished.

    2. Re:Abolish patents already by unity100 · · Score: 1

      he does. since he iterates that software patents to NOT spur innovation, or cause it at any point. and, thoughts and ideas cannot be counted as property and held natural rights over.

    3. Re:Abolish patents already by wurp · · Score: 1

      So your reply to a guy quoting Jefferson is your uncited opinion that Jefferson disagrees with the quote?

      Citation or STFU.

    4. Re:Abolish patents already by TapeCutter · · Score: 1

      So your reply to a guy quoting Jefferson is your uncited opinion that Jefferson disagrees with the quote?

      Citation or STFU.

      Carefully read the first sentance of his post, he is citing the OP's own link.
      The quote indicates Jefferson thought there is a fine line between patents and pain, if england could do it, then he could do it the same...sorry Cindy Lauper is on the radio...

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    5. Re:Abolish patents already by wurp · · Score: 1

      Fair enough - I failed at reading comprehension. I had somehow read the AC's quote as being copied from the OP's quote.

      (BTW, I have now read the text from the link :-)

      However, I don't think the AC's quote supports his position. IMO this snippet of the OP's quote is much more telling:

      it may be observed that the nations which refuse monopolies of invention, are as fruitful as England in new and useful devices

      I see nothing in Jefferson's letter that posits that ideas as property is useful, and that fragment appears to me to clearly state that it is not.

    6. Re:Abolish patents already by Theaetetus · · Score: 1

      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.

    7. Re:Abolish patents already by unity100 · · Score: 1

      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.

    8. Re:Abolish patents already by Theaetetus · · Score: 1

      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.

    9. Re:Abolish patents already by unity100 · · Score: 1

      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.

    10. Re:Abolish patents already by Theaetetus · · Score: 1

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

      Second, also no - lifetime patents were never logical, as Jefferson said even back in 1813, and the first Patent Act of 1790 had time limitations. Even the Constitution says that patents must be time limited. Now I really think you've missed the entire point of the Jefferson quote you linked to.

    11. Re:Abolish patents already by unity100 · · Score: 1

      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.

    12. Re:Abolish patents already by Theaetetus · · Score: 1

      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.

    13. Re:Abolish patents already by unity100 · · Score: 1

      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.

    14. Re:Abolish patents already by Theaetetus · · Score: 1

      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 could be split apart. One right is not "basically the same" as all of the others.

    15. Re:Abolish patents already by unity100 · · Score: 1

      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. no, i havent had a full course on modern property law. however i am a history hobbyist, and in numerous sessions i have combed the progress and evolution of not only properties but also civil laws through roman to modern times.

      even that is irrelevant. 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.

      leave even that aside, the parties which hold profit rights will repeatedly try to take people who use the items for nonprofit, even personal purposes, in order to force them to pay, as we see from the recent events.

      downline ; ip, patents are no different than feudalism. they are akin to giving property rights over a river or a bridge to a local lord, and they are detrimental.

    16. Re:Abolish patents already by Theaetetus · · Score: 1

      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 can be made by a secret process, such that inspection or reverse engineering of the product doesn't reveal the secret process. Pharmaceuticals, for one.

      leave even that aside, the parties which hold profit rights will repeatedly try to take people who use the items for nonprofit, even personal purposes, in order to force them to pay, as we see from the recent events.

      Why do you think people should be able to get the fruits of someone else's hard work for free, if that someone else doesn't want to share?

      downline ; ip, patents are no different than feudalism. they are akin to giving property rights over a river or a bridge to a local lord, and they are detrimental.

      No, they're not. They're giving a temporary right to someone who has created a new innovation, in exchange for that someone documenting his or her invention and teaching the rest of the world how to do it. The point is to encourage public disclosure so that others can make further innovations. This is fundamentally different from a bridge over a river, unless you're arguing that the river and bridge are secrets that no one would otherwise know about.

    17. Re:Abolish patents already by unity100 · · Score: 1

      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 scientists are similar examples.

      a lot of companies started from dirt by inventors themselves putting their effort forth, without having investors, or insignificant investment. especially most of the early machine shop factories and locomotive companies in the mid to late 18th century, and lives of some of the prominent pioneers of railroad technology are good examples for that.

      back before patents, noone was keeping anything a 'trade secret', unless they were already established, big companies that were trying to do what the patent system does for them - withhold and feudalize information.

      all throughout scientific revolution until late 20th century, and through early industrial revolution towards mid 19th century (until patent systems got going for good), the mood and culture in scientific and invention world was one of sharing and trading freely. i dont need to give any examples from scientists, for even the less informed in this area should know about the correspondences, exchanges, cooperation and seminars in between prominent scientific figures. for inventors, early aviators are a good example, the infinite amount of back-and-forth going, staying for a while together to build various craft, then going to their own places to build up on the ideas, trading aircraft, solving each others' problems and so on has been a de facto culture among them, including many names like wrights, langley, bleriot, lilienthal.

      no sir.

      as a history hobbiyst and admirer of the lives of numerous geniuses, i can outright and easily say that the 'patents spur innovation' is a bullshit that has been invented by asset holders (and mainly big asset holders, monopolists) in order to legitimize intellectual feudalism in modern age since 1800s. patents took prominence during mid late 19th century. and if you have enough knowledge about scientific history, you would know that these decades are the precise decades at which the momentum of the discoveries and innovation slowed down, and less geniuses started to appear. it coincides with patent craze and 'intellectual property'.

      There are many products which can be made by a secret process, such that inspection or reverse engineering of the product doesn't reveal the secret process. Pharmaceuticals, for one.

      this is irrelevant to what i had said. i mentioned that, even if we just allow profit rights to an item, it wouldnt do anyone good, since they wouldnt be let to use it for any purpose, due to they would be damaging the 'right holders'' rights.

      Why do you think people should be able to get the fruits of someone else's hard work for free, if that someone else doesn't want to share?

      the simple answer would be progress of mankind towards a better future, in the light of the history i typed above, especially when comparing what was life back then in 1750, and what it is like now. had we had the early momentum going by not implementing intellectual feudalism, the futuristic sci fi of living

  19. Phewwwww, fortunately does not affect me by Tanuki64 · · Score: 1

    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.

  20. The abstract is *not* the patent by ciaran_o_riordan · · Score: 1

    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.

    1. 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.
    2. Re:The abstract is *not* the patent by nunojsilva · · Score: 1

      You're right. Nevertheless, a good abstract should be about what follows it! (Otherwise it would be useless)

  21. Slashdot idiot to non-idiot ratio by Anonymous Coward · · Score: 1, Insightful

    has severly increased in the last few years, making it nearly unreadable.

    The post is written by an illiterate (did anyone even look at the patent?) causing the usual slashtards to complain about things they clearly do not understand.

    The patent has nothing to do with what the poster claimed. The patent roughly does this: people refactor code to make it more readable or easier to modify. This sometimes has the effect of making the code perform worse. The patent is about tracking the refactoring at some abstract level, and undoing it *at compile time* to gain both the benefits of the refactoring readability and the performance before the refactoring.

    This is a good idea. Obvious after the fact, but novel, useful, and not at all about "IBM appears to want to patent optimizing programs by trial and error". If they've implemented it (reducing it to practice) that that would be impressive and innovative, which is what patents were designed for.

    Why has Slashdot has become swamped with morons and illiterate whiners? Does anyone know of a place this is not the case where intelligent adults can converse about topics without people too lazy to read swamping any useful comments?

    1. Re:Slashdot idiot to non-idiot ratio by ShinmaWa · · Score: 1

      Does anyone know of a place this is not the case where intelligent adults can converse about topics without people too lazy to read swamping any useful comments?

      You must be new here. Welcome to the Internet! Enjoy your stay.

      --
      The /. Effect: Thousands of users simultaneously accessing a site to not read its content.
  22. 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.

    1. Re:Bad summary, refactoring not optimization by noidentity · · Score: 1

      Isn't what an optimizing compiler does another way of saying it refactors the code? I fail to see the essential difference here.

    2. Re:Bad summary, refactoring not optimization by radtea · · Score: 1

      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.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    3. Re:Bad summary, refactoring not optimization by Anonymous Coward · · Score: 0

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

      I am guessing that they will open up a consulting contract with IBM.

    4. Re:Bad summary, refactoring not optimization by Anonymous Coward · · Score: 0

      So it's like -funroll-loops?

    5. Re:Bad summary, refactoring not optimization by Anonymous Coward · · Score: 0

      Your question is what the patent is there to make theirs. They figured it out.

    6. Re:Bad summary, refactoring not optimization by b4dc0d3r · · Score: 1

      Forget about optimizing at all, consider all optimizing turned off. This invention basically makes sure that your refactoring doesn't impact performance. The compiler can then optimize the rearranged code instead of the original code you're looking at. Optimization will benefit both inputs, but the un-refactored code can still run a lot faster.

      An optimizing compiler chooses its optimization from the tricks it knows about. Automatically inlining frequently called functions would be something that an optimizing compiler could do, but that is not refactoring the code - it is the opposite of classic refactoring. So to answer your particular question no, you can't say that. Auto-inlining would be an example of the simplest implementation of this invention but hardly representative.

      The essential difference here is that the user chooses to rearrange the code so it is more understandable. An optimizing compiler would rearrange the code so it is faster. The purpose of rearranging is different. The invention in this case is tracking which refactoring was beneficial to performance and which was a negative impact, and un-doing the refactoring with a negative impact while preserving neutral or advantageous refactoring. Specifically, this happens behind the scenes so you don't have to even know which changes were bad.

      To put it another way, a normal compiler has a set number of tricks up its sleeve, and it applies those tricks when it thinks it should be beneficial. This invention adds two additional checks. First, it doesn't apply optimizations, it only reverts code on the fly *before* hitting the compiler. Second, it relies on performance data to choose which reverts to apply. I've never seen an optimizing compiler which builds the executable, tests it, benchmarks it, and goes back and updates its optimization strategy based on the results. That's what IBM are claiming. An existing optimizing compiler would do the best it could to optimize what you give it, not revert entire blocks of code. This invention would decide based on performance which version to use.

      The other thing I forgot to mention is how it deals with bug fixes. I assume you would go through the 'Refactoring Wizard' for refactoring work, and just change the code directly for bug fixing. But what if the buggy code ran faster than the refactored but bug-free version? The implementation behind this would have to be very interesting in order to not completely hose your app, and that is why this is impressive. They actually think they can do this.

      The obvious application is one of the UML-to-code-to-UML IDE's, including Rational, using Agile type methods. A few clicks to refactor, and when the human makes the code worse the wizard ignores the human, but pretends to obey.

    7. Re:Bad summary, refactoring not optimization by b4dc0d3r · · Score: 1

      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 discussion about a patent, I'd prefer not to wade through hundreds of comments which are completely off-topic, simply because the summary was awful. These bad summaries really make the patent process and applications as far more evil than they actually are, which is quite a feat since in reality it is quite bad without the additional propaganda. We need to fix things that are broken, not simply fuel the fire with misleading garbage. I actually wanted to moderate everyone's misreading as off-topic, but they probably wouldn't understand since there is no "-1 You are objectively incorrect and here's why" moderation option. But I digress.

      IBM is not optimizing by trial and error as the summary states - it is preventing performance impact by temporarily reverting adverse refactoring using objective data, according to the claims. Trial and error implies it's just randomly looking for optimizations, but the purpose of this has nothing to do with optimization. It is temporarily reverting specific refactoring. "IBM Patents Optimization" is not remotely close to the actual claims, even just the subset quoted in the summary. I would have maybe said "IBM appears to want to patent undoing refactoring which negatively affects performance." That's what the actual claims are, and it's clearly invalid unless everyone who refactors code does no performance evaluation ever. With many tools, performance testing isn't even part of the refactoring workflow, so it could be a legitimate addition to refactoring tools if implemented as described (not as claimed).

      At the very least, claim 3 "undoing refactoring is performed before the computer code is compiled" should be clarified to say it is automatic and temporary, or another claim added "The method of claim 1 wherein the undoing refactoring is automatic and temporary". That would fit the description and properly narrow the scope of the invention.

      I would assume that patent law considers the claims to be the determination of whether something is infringing or not, and if that is the case this patent application should be rejected. Whether IBM did this intentionally or not doesn't matter, the patent examiner should catch this. Since it looks like an application and not a granted patent, I'd hope the examiner will probably ask for an update.

      This is the invention in a nutshell, which as you said is unrelated to the claims. Hopefully we can now get input on the poor quality of the patent application, and discuss possible prior are which invalidates the application (or a genuine "good job guys" if deserved) :

      TECHNICAL EFFECTS

      [0007] As a result of the summarized invention, technically we have achieved a solution which solves the conflict between program performance and readability in the refactoring process. By analyzing the refactoring history, refactorings which degrade performance will be temporarily undone before compiling to regain the lost performance, but not affect the program's readability obtained by refactoring.

    8. Re:Bad summary, refactoring not optimization by St.Creed · · Score: 1

      Hmm... this doesn't look at all appealing to me.

      As far as I can tell, this only works if you can accurately recreate the exact circumstances for each run, because under normal usage it is quite possible that a refactoring that seems slower, is actually faster but has to process a larger workset. As a programmer I'd be pretty unhappy if my compiler decided to rebel and reverse my O(n^4) refactoring back to the O(n^y) version because I happened to have a smallish y in the first run (so it seemed like an O(n^3) algorithm). Now, for most programs it's not a big deal because you're just reading something from the database. But you better hope the database doesn't get a hiccup or your code may be re-refactored behind your back.

      Basically, this looks like IBM's version of Clippy, for programmers.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
  23. Prior art ++? by TheDarkMaster · · Score: 1

    I think there's a lot of prior art on this one...

    --
    Religion: The greatest weapon of mass destruction of all time
    1. Re:Prior art ++? by Anonymous Coward · · Score: 0

      No more than IBM's own LE compilers. MVT was before my time.

      Taking the LE OS 360 compiler - look at all the options- we are talking 1970 here.
      PL/I and FORTRAN. Back then they were too complex and infrequently used, except for overlays.
      TLB and page stealing and 1st class paging algorithms - IBM again. Sorting algorithms - IBM again.

      IBM and DB2 - oh what is runstats - thats dynamic too.

      The product STROBE. By sampling the PSW, you know everything. Kinda related to Pascal microcode, pcode dynamic optimization, and Java and Foxpro were doing it too.

      And there are supercomputer compilers that split mathematical problems to run optimized that date back long ago.

      Fujitsu had PSECTS and DSECT's , LLA before IBM, which arguably may have had roots in ICL's VMS.

      Hard to believe IBM does not know what it achieved in the past still beats much of the modern crap.

    2. Re:Prior art ++? by Anonymous Coward · · Score: 0

      Prior art ++

      Assuming that you did not overload your operator, are you not suggesting that there is now only +1 piece of prior art?!

  24. From their patented random patent generator. by tomhudson · · Score: 1
    IBM Patents Optimizing Filing Random Patent Applications 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.

  25. What's Next? by woboyle · · Score: 1

    What's next? Patents on random numbers? This is getting so bogus! My guess is that a large part of the reasons for all these "trollhouse good" patents is that companies give bonuses and promotions to the scientists and engineers who generate patents. I know that the company I worked for for almost 20 years did.

    --
    Sometimes, real fast is almost as good as real-time.
    1. Re:What's Next? by karvind · · Score: 1
    2. Re:What's Next? by woboyle · · Score: 1

      I wasn't referring to the RNG's. I figured there were a raft of (also bogus) patents on them. It's the number themselves! :-)

      --
      Sometimes, real fast is almost as good as real-time.
    3. Re:What's Next? by Theaetetus · · Score: 1

      What's next? Patents on random numbers? This is getting so bogus!

      Why, what's wrong with this patent application? Is it not novel? Is it obvious? Does it not include statutory subject matter?

      You have to go a bit farther than just say "it's bogus!"

  26. This is called "Simulated Annealing" by Theovon · · Score: 1

    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 used for things like VLSI placement and routing. You have an N-dimentional circuit that you want to squeeze into basically a 2D space. (The placement is 2D, the routing is a bit more than that.) How do you find the optimal arrangement of gates and their interconnects? Well, optimal is NP-hard, so you can't do it for large circuits. So we use "randomized search". For placement, a random placement is selected, and a "fitness function" is applied. Then random swaps are performed, and when the fitness improves, keep the new placement. A similar thing is done for routing.

    1. Re:This is called "Simulated Annealing" by Anonymous Coward · · Score: 0

      That's not simulated annealing. In SA, you try one random change at a time. If it makes it better, you keep it no questions asked. If it doesn't make it better, you keep it with some small probability. By lowering the "temperature" (slowly) you lower the probability of accepting bad changes until, hopefully, you're "frozen" in the global minimum.

  27. From an IBM Patent Review Board ... by Anonymous Coward · · Score: 0

    I cringe every time I see one of these ... and hope my name's not on the patent, or our board didn't do the review.

    I can tell you that the IBM process rewards patents with $$$ (well, maybe $$ or $ these days), that patents are really important to IBM (prestige and licensing revenue), and that we [still] shoot down a lot of vague or just dumb patents. I've seen plenty of patent ideas that looked like they were spit out by a jargon generator, and when you ask "what are you trying to claim" the inventors can't really come up with anything coherent. Those get publish ratings (if they're lucky) or a close (more likely).

    But IBM's a really big company. There are probably 50 - 100 separate boards in IBM reviewing patent disclosures. I think most of the really bad patents you see are examples of situations where a patent is assigned to the wrong board, and a bunch of (let's say) power supply designers are asked to review a web 2.0 business process patent. Of course it's cool and new to them. It's also true that IBM's boards have different standards. A lot of boards have at least one "hard-ass" who's seen it all, done it all, and won't stand for "automating a process you already perform manually" ideas. But, sadly not every board has one of them.
     

  28. Seems way too broad by Trip6 · · Score: 1

    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

    Can't imagine this will be issued as written.

    --
    I hate being bipolar; it's awesome!
  29. What if... by Anonymous Coward · · Score: 0

    What if IBM came back in a year or so and used their giant patent collection in a huge case about why software patents don't make sense and why the USPTO sucks?

  30. WikiPatents by tepples · · Score: 1

    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.

  31. The I in IBM stands for heuristics by tepples · · Score: 1

    Heuristics + Algorithms + Logic + One letter forward = IBM

  32. Zen of Assembly by Anonymous Coward · · Score: 0

    recommended this approach, I think.

  33. Great! by corpsmoderne · · Score: 1

    Now that IBM has discovered optimization, maybe they could start using this revolutionary method on Lotus Notes...

  34. Basic Rules of Optimization by smcdow · · Score: 1

    The age-old Rules of Optimization:

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

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
  35. 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.
  36. Relevance by Anonymous Coward · · Score: 0

    IBM is slow and steadily loosing it's relevance and credibility.

  37. Fairness by Anonymous Coward · · Score: 0

    To be fair to the IBM folks...

    Imagine that you need to optimize a particular application for a system. On a given system, there are dozens of tunable parameters that can affect performance. For example, on something as ubiquitous as a filesystem mount there are tunable parameters that may or may not improve a workload. Increasing file caching may help. If the link to the remote server has high latency, then caching indexes may help. If file turnaround is very large (i.e., lots of dynamically created files that get purged regularly), then lowering the cache may slow down immediate file access but lead to better overall throughput. In other words, it's a highly complex system.

    To optimize this, even for the best engineers, is close to impossible. What we end up with is often a working and adequate solution that is sub-optimal.

    It seems that the goal of the IBM approach is to introduce a methodology to automate testing these parameters. Certainly doesn't appear new, but has some merit.

  38. Go back to the old rules. by Locke2005 · · Score: 1

    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've abandoned my search for truth; now I'm just looking for some useful delusions.
  39. Behold! by drolli · · Score: 1

    I patent patent optimization by trial and error!

  40. Prior art? by Locke2005 · · Score: 1

    Doesn't the ATLAS Project 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.

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
  41. If only by Dega704 · · Score: 1

    If all patents worked the way software patents do then I would so be the first one to patent my revolutionary method for taking a crap while sitting down.

    1. Re:If only by electricprof · · Score: 1

      I wish I'd thought of that!

  42. Trial and Error violates other prior art by electricprof · · Score: 1

    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.

  43. Neodarwinism by nunojsilva · · Score: 1

    The picture I got after reading the post was that it's just another implementation (if they implemented it...) of natural selection. See, (e.g.) human reproduction involves random changes on DNA which will actually survive if they make the new being more productive/fast/efficient/stronger.

  44. The not so obvious next step... by javalizard · · Score: 1

    Just wait till someone patents patenting.

    1. Re:The not so obvious next step... by Drakkenmensch · · Score: 1
  45. 100 monkeys + 100 typewriters by Anonymous Coward · · Score: 0

    They've patented Web Sphere application development.

  46. If you undo it then... by KPexEA · · Score: 1

    If you undo it then it wasn't refactoring but refucktoring

  47. RE: Trial and Error by sir+lox+elroy · · Score: 1

    Yes I did read the actual patent, well some of it. If the patent office actually allows this I think I will scream. Hmmm I wonder if I will have to pay royalties every time I write a program now.

    --
    Kosh: "Understanding is a 3 edged sword, your side, their side, the Truth."
  48. My patent application by kheldan · · Score: 1

    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 use the technology. :-)

    --
    Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
  49. Patent a method ofr patenting, IBM! by Anonymous Coward · · Score: 0

    IBM should patent a method of writing new patents by trial and error.

  50. How To Read A Patent by martin-boundary · · Score: 1

    Everybody here should listen (or watch) 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.

  51. Corewars/Redcode Evolvers by Anonymous Coward · · Score: 0

    The concept and implementations of optimizations by computers/computer programs themselfes is already extensively described in redcode/corewars evolvers.

    It goes even a step further and introduces the concept of computers programming computers.