Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Python Microsoft Patents

Microsoft Releases and Patents 'Python In Excel' 66

Longtime Slashdot reader theodp writes: Python in Excel is now generally available for Windows users of Microsoft 365 Business and Enterprise," Microsoft announced in a Monday blog post. "Last August, in partnership with Anaconda, we introduced an exciting new addition to Excel by integrating Python, making it possible to seamlessly combine Python and Excel analytics within the same workbook, no setup required. Since then, we've brought the power of popular Python analytics libraries such as pandas, Matplotlib, and NLTK to countless Excel users." Microsoft also announced the public preview of Copilot in Excel with Python, which will take users' natural language requests for analysis and automatically generate, explain, and insert Python code into Excel spreadsheets.

While drawing criticism for limiting Python execution to locked-down Azure cloud containers, Python in Excel has also earned accolades from the likes of Python creator Guido van Rossum, now a Microsoft Distinguished Engineer, as well as Pandas creator Wes McKinney.

Left unmentioned in Monday's announcement is that Microsoft managed to convince the USPTO to issue it a patent in July 2024 on the Enhanced Integration of Spreadsheets With External Environments (alt. source), which Microsoft explains covers the "implementation of enhanced integrations of native spreadsheet environments with external resources such as-but not limited to-Python." All of which may come as a surprise to software vendors and individuals that were integrating Excel and external programming environments years before Microsoft filed its patent application in September 2022.

Microsoft Releases and Patents 'Python In Excel'

Comments Filter:
  • I don't think it is acceptable to support patent encumbered platforms

    • It's a good thing Excel doesn't need you, then.
    • by Anonymous Coward

      With Google and Apple battling anti-trust allegations in the EU, M$ were sliding down the rankings of "Most evil corporation in the Valley."

      We were worried about Microsoft in the post-Ballmer era, e.g. doing some good work with WSL and Azure Linux.

      Kudos to Microsoft for dealing themselves back into the game.

      • With Google and Apple battling anti-trust allegations in the EU, M$ were sliding down the rankings of "Most evil corporation in the Valley."

        We were worried about Microsoft in the post-Ballmer era, e.g. doing some good work with WSL and Azure Linux.

        Kudos to Microsoft for dealing themselves back into the game.

        Microsoft is based out of Redmond, a long, long way from Silicon Valley.

    • by AleRunner ( 4556245 ) on Wednesday September 18, 2024 @08:02AM (#64795527)

      I don't think it is acceptable to support patent encumbered platforms

      When people choose to release without copyleft protections from licenses such as the GPL this is exactly the kind of risk that's run. Why python was released under it's current license that left the risk of companies like Microsoft doing this. Even the Apache license has explicit provisions about patents because the risk and problems are much greater than copyright.

      It's a good lesson to learn. Release with AGPLv3 first and then, maybe, later relicense some software to less stringent licenses if there's a good reason which makes up for the additional risk.

      The parent is also a sign of how the dangers of patents are misunderstood. Just because you did something before does not protect you against a patent unless you did it in exactly the same way the patent described and published that fact somehow. That means Microsoft can probably use the patents to force incompatibility between existing spreadsheet integrations and their own implementation which is all that they want to achieve in order to leverage their domination of the office market in order to gain a monopoly in the Python market. No doubt 30 years from now this will turn out to have been illegal which won't help the people who lose their companies and jobs in the meantime.

      • Just because you did something before does not protect you against a patent unless you did it in exactly the same way the patent described and published that fact somehow.

        If you didn't do the exact same way, and still don't do it the exact same way, then your product wouldn't be infringing the patent anyway.

        Also, "published" includes making publically available or selling/offering for sale. So if your implementation was sold commercially, even if it isn't open source, it would count as prior art. If your implementation was only ever used internally in your company, it wouldn't be prior art, but Microsoft is also unlikely to notice your doing it.

        • If you didn't do the exact same way, and still don't do it the exact same way, then your product wouldn't be infringing the patent anyway.

          Agreed. Your future development and changes won't be protected. In particular if you want to change to be compatible with Microsoft Office. Your existing published software, including proprietary, will be protected. However I don't agree with your emphasis on the internal use. Sure, you are going to get away with it for some time, but you have lost the right to use your own development. That gets to be a problem if your company ever ends up being sold and have an IPR audit, for example. That kind of "it's o

      • by unrtst ( 777550 )

        That means Microsoft can probably use the patents to force incompatibility between existing spreadsheet integrations and their own implementation which is all that they want to achieve in order to leverage their domination of the office market in order to gain a monopoly in the Python market.

        IMO, you're close, but missing the mark. I'd rewrite the ending of that to, "... which is all that they want to achieve in order to maintain their domination of the office market."

        MS Office is primarily sold as a subscription these days. They still offer a home and student stand alone version, and a free version of the online one, and I suspect both of those offerings are meant to stem the bleeding. The big money is keeping office as the defacto standard within business. Currently, a business *could* do Lib

      • When people choose to release without copyleft protections from licenses such as the GPL this is exactly the kind of risk that's run.

        Pretty sure the idea of combining two things isn't patentable. So either there's something really special about their implementation that deserves protection or it's going to be invalidated. They're probably counting on it being a huge burden for someone to fight it so it will stand while being invalid.

        Just because you did something before does not protect you against a patent unless you did it in exactly the same way the patent described and published that fact somehow

        If you did it with a different method, then it shouldn't be a patent violation. The problem is how difficult it is to prove in court. You can't patent an idea, only a specific implementation.

      • Just because you did something before does not protect you against a patent unless you did it in exactly the same way the patent described and published that fact somehow.

        OK, but how is publishing the source code not publishing the fact?

        Also, why is the USPTO not enforcing the obviousness clause?

        • OK, but how is publishing the source code not publishing the fact?

          Source code is normally great for the method, if your method is identical or very similar to the method of the patent. That's especially true because source code tends to be stored in a way that records history. On the other hand, the patent office ain't going to read source code, so it won't stop a bad patent being granted.

          Also, why is the USPTO not enforcing the obviousness clause?

          a) obvious is difficult after the fact - what seems obvious now (a slot in a door == letterbox) wasn't obvious before.
          b) they

      • No the problem is the patent system is entirely screwed, the fact that you can even patient the use of any language with any app is quite frankly stupid. The patent office should have laughed the thing out of the door as soon as it saw it, but it didn't. If Microsoft had patented visual studio with word (who knows the might have) then that is equally stupid, it not some novel idea that needs patients to protect it. (having language integration in an app) There are around 300,000 patients issued each year in

      • Patents shouldn't have anything to do with licenses of any type. If there's prior art that's been known about, then the paten should be invalid regardless of licenses. Licenses only cover who can use a product and how. However, given the amount of money Microsoft has to throw at people the snag is in doing this in court by someone who has legal standing.

        • . If there's prior art that's been known about, then the paten should be invalid regardless of licenses.

          Now try the situation where the patent is valid, but you only find out about it long after you have released your software. Alternatively the case where the patent is valid and is "essential" and makes it impossible for your software to have some given feature.

          If someone wants to use software in either of these cases and a license can help with that then it's better to have that than not.

      • Why python was released under it's current license that left the risk of companies like Microsoft doing this.

        I feel like I must be missing something here. Was Python taken away from you? Was it otherwise made unavailable to you? If not, then why do you care if Microsoft does something deplorable with it? It doesn't affect you in any meaningful way and brings more people into using Python as a whole. Where exactly is the problem other than in your head?

  • LibreOffice (Score:5, Insightful)

    by DrYak ( 748999 ) on Wednesday September 18, 2024 @07:13AM (#64795471) Homepage

    Back in pre-fork times when it was still OpenOffice.org, it already had possibility to interact with Python scripts.
    https://wiki.openoffice.org/wi... [openoffice.org]

    So either:
    - this patent shouldn't have been granted due to prior art.
    - this patent is written to very precisely describe microsoft's own spin on a python in excel implementation.

    I've quickly glanced the claims pages of the linked patent.
    Ob. disclaimer (in the voice of Dr. Leonard "Bones" McCoy): "I am a doctor, not a patent lawyer"
    But it seems to me pretty generic and doesn't cover much that hasn't been done in past spreadsheet software,
    save perhaps for their instance of python running inside an instantiated secure environment.
    (Basically it's a "NEW: Like Old, but now inside Docker!!!!" patent).

    • Patent litigation on average is about 3 million, but can be much higher. Quite often it’s not about the validity of claims or prior art or any actual legal basis, it’s the sheer financial firepower brought to bear on litigation. Smaller companies or loosely affiliated entities often can’t throw down millions on just these expenses and as such just get steamrolled.
      • Patent litigation on average is about 3 million, but can be much higher. Quite often itâ(TM)s not about the validity of claims or prior art or any actual legal basis, itâ(TM)s the sheer financial firepower...

        Our patent system favors oligopolies and plutocrats. Time to dump software patents. Proponents like to bring up (alleged) success stories, but for every gem there are thousands of steaming dog-logs.

        • by tlhIngan ( 30335 )

          Time to dump software patents.

          it's not software patents that are the issue. People have been complaining about the patent office for nearly 200 years now.

          The first big issue would've been the high-tech machine of the day, the sewing machine. It got so bad because multiple patents covered the same methods so it was impossible to build any sewing machine as you would be infringing on many patents, often covering the exact same item.

          It's how the Singer corporation was created - they decided to buy up all the

    • Any compatible open source implementation should use OpenOffice.org's code as a starting point (or the exact methods, re-implemented / reverse engineered) because then the prior art argument will hold a lot more weight.

  • My Anaconda don't want none unless you got Sum hun!
  • by doragasu ( 2717547 ) on Wednesday September 18, 2024 @07:39AM (#64795497)

    Yeah, I know Excel is vastly superior to LibreOffice Calc, but on this specific topic, LibreOffice Calc has always supported Python integration (via PyUno). It was already supported by Apache OpenOffice before the fork, so how can this be patented with so much prior art?

    • Yeah, I know Excel is vastly superior to LibreOffice Calc, but on this specific topic, LibreOffice Calc has always supported Python integration (via PyUno). It was already supported by Apache OpenOffice before the fork, so how can this be patented with so much prior art?

      They just need to describe and use a different method for doing the integration. It's not what you do, it's how you do it. If they are clever, that different way makes it very difficult to make the two systems compatible. We then get into arguments about whether the different way was obvious or not, which costs too much money for the little guy to win.

    • > so how can this be patented with so much prior art?

      Essential Economics topic: "Concentrated Interests and Diffuse Costs".

      TL;DR : they have the money to prosecute the patent and you don't have the money to defend against it.

      In Fantasy Land the Government is the bulwark against such abuse but in Reality the Government is incompetent and corrupt.

      People either demand an end to Oligarchy through effective means or they accept it.

      The Public Schools ensure most people have no idea what's going on and they get

      • by omnichad ( 1198475 ) on Wednesday September 18, 2024 @10:46AM (#64795955) Homepage

        Or, tl;dr, Microsoft got a patent on a very tiny detail of their implementation and then relies on the press to oversimplify it for their headlines (and also because they can't understand the methods in the patent) making everyone else think the whole concept is patent-protected.

        • Being able to get as patent on a minor detail is a problem in itself, patents should be for big ideas not technicalities. Building the first plane awesome, deserves a patent protection, using square head screws instead of Philips does not. You allow that and you just end up with the bureaucratic nonsense we have now.

      • Yes, this is unlikely to be challenged in court unless someone else's business model is threatened by it (and the someone has enough money for the lawsuit).

        There have been expensive lawsuits about software copyrights such as Google vs. Oracle (https://en.wikipedia.org/wiki/Google_vs_Oracle [wikipedia.org]), but here I don't yet see who would be sufficiently motivated to sue.

  • There is so much prior art that the only 2 ways a patent could possibly be awarded for spreadsheet integration is corruption or utter stupidity.

    So now we can start patenting things by replacing "with a computer" with "python". Next will be "with AI".

    • There is so much prior art that the only 2 ways a patent could possibly be awarded for spreadsheet integration is corruption or utter stupidity.

      In reality it is probably the third way: "corruption and utter stupidity". This is the USPTO we are talking about.

  • by thunderdanp ( 1481263 ) on Wednesday September 18, 2024 @08:14AM (#64795553)
    Patent attorney here. The title of a patent can be used for providing the general gestalt of the invention a patent is directed to, but does NOT describe what is actually protected by the patent. There are three independent (base) claims (legally enforceable part of a patent) of the patent referenced in the article, as follows: 1. A computing apparatus comprising: one or more computer readable storage media; one or more processors operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media that, when executed by the one or more processors, direct the computing apparatus to at least: instantiate a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application; for the duration that the spreadsheet is open: receive calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and execute the external functions in the secure runtime environment; and shutdown the secure runtime environment when the spreadsheet closes. 8. One or more computer readable storage media having program instructions stored thereon that, when executed by one or more processors of a computing device, direct the computing device to at least: instantiate a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application; for the duration that the spreadsheet is open: receive calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and shutdown the secure runtime environment when the spreadsheet closes. 15. A method of operating a computing system, the method comprising: instantiating a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application; for the duration that the spreadsheet is open: receiving calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and executing the external functions in the secure runtime environment; and shutting down the secure runtime environment when the spreadsheet closes. Now, is what's described in these claims truly novel and non-obvious? I cannot say, but everyone should understand it is the claims that are evaluated for patentability, not the title.
    • My guess, as a non-lawyer is until some company with the legal and financial heft, comparable to MS, runs afoul of the patent not much will happen. Then, with threats of lawsuits, after enough billable hours they'll settle and MS' patent will not be challenged. I doubt they'll go after a small company unless they go after Excel py integration head on; and why do that if MS already has the capability built in? A better approach would be to create packages for ExcelPY(assuming MS makes it "special") to a
    • Re: (Score:3, Interesting)

      Agree, the patent isn't invalid because of prior art, it is invalid because it fails to sufficiently disclose an invention. While Microsoft's 12026560 patent gives more detail than many software patents, if you put 100 software engineers in a room with only this patent as a guide you would get 100 very different implementations. In the days when patents described things like gears, this was not the case. Very early in the evolution of software patents we somehow lost the notion that patents must disclose
      • In other words, it isn't non-trivial. It's just "solving for x" when nobody would have trouble solving for x. What they had trouble with was realizing they wanted to solve for x. But now that part is public.

        • Exactly, pretty much all software patents should be invalid because they are trivialized engineering concepts converted into legalese. None of them actually DISCLOSE an invention -- which is what patents are theoretically supposed to do. The public is supposed to be able to take a patent and create a new, better product built on the foundations of the disclosed invention. We can't do that when in comes to software patents. They all fall short on their legal obligation to disclose in order to receive pat
      • by Tablizer ( 95088 ) on Wednesday September 18, 2024 @12:07PM (#64796273) Journal

        Patent submissions often use word-play to disguise goals as implementation. That makes it hard for competitors to make a product because the very act of making a competing product conflicts with the disguised goals.

    • by MeNeXT ( 200840 )

      Patent attorney here. The title of a patent can be used for providing the general gestalt of the invention a patent is directed to, but does NOT describe what is actually protected by the patent. There are three independent (base) claims (legally enforceable part of a patent) of the patent referenced in the article, as follows:

      1. A computing apparatus comprising:
      one or more computer readable storage media;
      one or more processors operatively coupled with the one or more computer readable storage media; and
      program instructions stored on the one or more computer readable storage media that, when executed by the one or more processors, direct the computing apparatus to at least:
      instantiate a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application;
      for the duration that the spreadsheet is open:
      receive calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and
      execute the external functions in the secure runtime environment; and
      shutdown the secure runtime environment when the spreadsheet closes.

      8. One or more computer readable storage media having program instructions stored thereon that, when executed by one or more processors of a computing device, direct the computing device to at least:
      instantiate a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application;
      for the duration that the spreadsheet is open:
      receive calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and
      shutdown the secure runtime environment when the spreadsheet closes.

      15. A method of operating a computing system, the method comprising:
      instantiating a secure runtime environment for a duration that a spreadsheet is open in a context of a spreadsheet application, wherein the secure runtime environment comprises a Python runtime environment and is external with respect to the context of the spreadsheet application;
      for the duration that the spreadsheet is open:
      receiving calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY; and
      executing the external functions in the secure runtime environment; and
      shutting down the secure runtime environment when the spreadsheet closes.

      Now, is what's described in these claims truly novel and non-obvious? I cannot say, but everyone should understand it is the claims that are evaluated for patentability, not the title.

      The only thing that is unique to today in your statement is the word python. Back in the late 80's early 90's, Lotus 123 was integrating with DB and accounting packages for budgeting,reporting and analysis. What in your statement except, for the word python, is new?

      • by thunderdanp ( 1481263 ) on Wednesday September 18, 2024 @12:55PM (#64796549)
        I don't really have an opinion, as I was neither the prosecuting attorney nor the examiner in this application. Taking a quick look at the prosecution history, (https://patentcenter.uspto.gov/applications/17945472) adding the claim requirements "receive calls from the spreadsheet application that identify external functions named in non-native statements inside arguments of at least one native function named in cells of the spreadsheet, wherein the external functions comprise Python functions and are executable by the secure runtime environment and not by the spreadsheet application, and a name of the least one native function immediately follows an equal sign and comprises PY" were what got an allowance from the examiner. Prior to that, the examiner rejected the claims over Application No. 2020/0285694 (https://patents.google.com/patent/US20200285694A1/en?oq=US20200285694) in view of 2020/0278850 (https://patents.google.com/patent/US20200278850A1/en?oq=US20200278850). Again, I haven't evaluated the merits of the rejection or whether the amendment to add the limitations that resulted in allowance. I will say that, in order to make a rejection, an examiner must be able to point to publicly available documents (most typically published patent applications and patents, but can include so-called "non-patent literature" as frequently happens in software and the biological arts) that were public prior to the filing of the application to make the rejection. While I do not contest what you say as the "only thing that is unique" is python, the evidentiary burden for examiners is greater than conclusory statements, and it is frequently harder to find public documents disclosing what you think was publicly known than you might realize.
    • Patent attorney here.

      Yep, you are definitely a patent attorney. You wrote a wall of text instead of using paragraphs and such to organize your thoughts. It perfectly hides the contents of your thoughts whilst pretending to make them available to everyone. ;)

  • Great, when can we have Visual Basic back? (ducks) I assume they won't be able to cancel Python in the future.

    (Although, I just made an in-house, manufacturing tool for ourselves in VB6, a month ago; I miss being that [graphically] productive, that quickly.)
    • by Tablizer ( 95088 )

      I agree VB6 was a KISS desktop tool, took very little code and hand movements to put a UI together.

      Now UI's have to be screwy and buggy to be "mobile friendly", yet I see very few biz apps being used on mobile devices. Convoluted buggy web UI frameworks carry a high tax for violating YAGNI.

      We de-evolved. Ooga Booga!

  • If you are using EXCEL, they already have their pound of flesh. They are not charging you extra for this. This sounds like one of those let's get a patent to pad our resume filings more than anything else. Or maybe they are just trying to prevent anyone else from patenting it. The USPO is so underfunded and under resourced that expecting them to actually review a patent properly is hopeless. Some examiner (who had probably has a degree in chemical engineering or some similarly relevant field) did a sear
    • by jvkjvk ( 102057 )

      Probably all the people who are doing similar things and can now be sued by MS? Like LibreOffice.

      Probably all the people who depend on the all the products using this Patent?

      • Since the patent apparently only claims use in Excel, use in other applications would be unaffected.
        • by jvkjvk ( 102057 )

          Really? Did you look at it?

          I looked at the patent. It's right here: https://image-ppubs.uspto.gov/... [uspto.gov]

          Nowhere can I find that is is limited to Excel. In fact, the word Excel is not in the document, at all.

          It always says "spreadsheet environment(s)" not Excel.

          What do you suppose that means, in term of other spreadsheet environments?

          Do they have a magikal exception?

    • by Dadoo ( 899435 )

      This sounds like one of those let's get a patent to pad our resume filings more than anything else.

      To me it sounds more like Microsoft is trying to control the Python market. Add an incompatible function here, and an incompatible statement there, and in five years, everyone will be talking about how CPython sucks and everyone should be using MicroSoft Python.

  • There's been 12 million patents, of wich nowhere near 12 million actual inventions have been made. Spreadsheets have been around for 45 years, surely everyone has thpught of everything you can do with them. How about gpt blockchain clippy malbodge spreadsheets?
  • LibreOffice has been using Python as spreadsheet scripting for a decade or so. And doing it externally is not an invention at al, it is an obvious option. The USPTO is broken.

  • ... then why do you need Excel?

    In the past I used to start data analysis with Excel in the mistaken belief it was easier / faster but I often ended up redoing it in something else. Now I don't touch Excel at all because I learned there are better tools for working with numerical data in scalable, repeatable, reliable, understandable and auditable ways than spreadsheets.

  • While drawing criticism for limiting Python execution to locked-down Azure cloud containers

    For the average Excel user who can use Python, that was absolutely the right move unless you want Microsoft to fork and lobotomize the Python standard lib and pip to ensure a security first posture with the integration.

    About the only thing you can say against Microsoft here on the trade off is that Microsoft needs to create a really good Docker competitor that would let power users run features like this in a local, i

  • are UNACCEPTABLE!
    Period!
    The cloud is a trap. Run away

  • A spreadsheet written in Python and easily user-modifiable would be a win.

  • I've seen far superior (valid) patent applications rejected or later overturned that this big pile of you know what.

    Microsoft's favorite employee: USPTO

    My hatred of Microsoft continues to grow and grow.

He keeps differentiating, flying off on a tangent.

Working...