News: 0175020755

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Microsoft Releases and Patents 'Python In Excel'

(Wednesday September 18, 2024 @11:22AM (BeauHD) from the would-you-look-at-that dept.)


Longtime Slashdot reader [1]theodp writes:

> Python in Excel is now generally available for Windows users of Microsoft 365 Business and Enterprise," Microsoft [2]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 [3]limiting Python execution to locked-down Azure cloud containers, Python in Excel has also [4]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 [5]Enhanced Integration of Spreadsheets With External Environments ( [6]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 [7]integrating Excel and external programming environments years before Microsoft filed its patent application in September 2022.



[1] https://slashdot.org/~theodp

[2] https://techcommunity.microsoft.com/t5/excel-blog/python-in-excel-available-now/ba-p/4240212

[3] https://developers.slashdot.org/story/23/09/30/1842233/microsoft-to-excel-users-be-careful-with-that-python

[4] https://developers.slashdot.org/story/23/08/22/1425228/microsoft-announces-python-in-excel

[5] https://image-ppubs.uspto.gov/dirsearch-public/print/downloadPdf/12026560

[6] https://patents.google.com/patent/US12026560B2/

[7] https://www.pyxll.com/



Swpats are a no-go (Score:2)

by Elektroschock ( 659467 )

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

Re: (Score:2)

by YetAnotherDrew ( 664604 )

It's a good thing Excel doesn't need you, then.

They're back, baby! (Score:1)

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.

Re: (Score:2)

by Oddroot ( 4245189 )

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

Re: (Score:2)

by war4peace ( 1628283 )

This: Most Evil corporation in the Valley .

Re:Swpats are a no-go (Score:4, Interesting)

by AleRunner ( 4556245 )

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

Re: (Score:2)

by Dragonslicer ( 991472 )

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

Re: (Score:3)

by AleRunner ( 4556245 )

> 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

Re: (Score:2)

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

Re: (Score:2)

by omnichad ( 1198475 )

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

LibreOffice (Score:5, Insightful)

by DrYak ( 748999 )

Back in pre-fork times when it was still OpenOffice.org, it already had possibility to interact with Python scripts.

[1]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).

[1] https://wiki.openoffice.org/wiki/Python

Re: (Score:2)

by burtosis ( 1124179 )

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.

Re: (Score:2)

by omnichad ( 1198475 )

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.

Excel got back (Score:1)

by neglogic ( 877820 )

My Anaconda don't want none unless you got Sum hun!

Re: (Score:2)

by gtall ( 79522 )

Red beans and rice didn't miss her!

LibreOffice supports Python integration since day1 (Score:4, Insightful)

by doragasu ( 2717547 )

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?

Re: (Score:2)

by jenningsthecat ( 1525947 )

> Because the incompetent boobs at the USPTO were too busy using the fleshlights that MS gave them as gifts to bother doing their jobs.

If somebody also gave them a map, then pointed out the hands at the ends of their arms, maybe they'd use the flashlights to find their asses. Who knows - after that they might also find a clue!

Re: (Score:2)

by omnichad ( 1198475 )

There has been a serious comprehension error here, but I'm more interested in seeing them try this.

Re: (Score:2)

by AleRunner ( 4556245 )

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

Re: (Score:3)

by bill_mcgonigle ( 4333 ) *

> 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

Re: (Score:3)

by omnichad ( 1198475 )

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.

Re: (Score:1)

by Lonewolf666 ( 259450 )

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 ( [1]https://en.wikipedia.org/wiki/Google_vs_Oracle [wikipedia.org]), but here I don't yet see who would be sufficiently motivated to sue.

[1] https://en.wikipedia.org/wiki/Google_vs_Oracle

So it's inovative to patent Lotus 123 features? (Score:2)

by MeNeXT ( 200840 )

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

Patent title != patent protection (Score:5, Informative)

by thunderdanp ( 1481263 )

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.

Re: (Score:2)

by Registered Coward v2 ( 447531 )

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:1)

by thunderdanp ( 1481263 )

Agreed on all counts.

Re: (Score:1)

by laughingskeptic ( 1004414 )

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

Re: (Score:1)

by omnichad ( 1198475 )

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.

Re: (Score:1)

by laughingskeptic ( 1004414 )

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

Re: (Score:2)

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?

Old man yells at cloud company (Score:2)

by kackle ( 910159 )

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

Who cares if they patented it? (Score:2)

by Retired Chemist ( 5039029 )

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

Re: (Score:2)

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?

Re: (Score:2)

by Retired Chemist ( 5039029 )

Since the patent apparently only claims use in Excel, use in other applications would be unaffected.

Re: (Score:2)

by jvkjvk ( 102057 )

Really? Did you look at it?

I looked at the patent. It's right here: [1]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?

[1] https://image-ppubs.uspto.gov/dirsearch-public/print/downloadPdf/12026560

Patents are getting ridiculous now (Score:2)

by xack ( 5304745 )

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?

What is there to patent? (Score:2)

by gweihir ( 88907 )

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.

If you can already Python... (Score:2)

by bool2 ( 1782642 )

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

Re: If you can already Python... (Score:2)

by godrik ( 1287354 )

Probably because you gonna write the Python that a lot of other people will use in their spreadsheet.

Can't have your cake and eat it too (Score:2)

by DeplorableCodeMonkey ( 4828467 )

> 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

locked-down Azure cloud containers... (Score:2)

by MpVpRb ( 1423381 )

are UNACCEPTABLE!

Period!

The cloud is a trap. Run away

Excel in Python (Score:2)

by groobly ( 6155920 )

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

ugh, USPTO is "owned" (Score:2)

by theendlessnow ( 516149 ) *

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.

program, n.:
A magic spell cast over a computer allowing it to turn one's input
into error messages. tr.v. To engage in a pastime similar to banging
one's head against a wall, but with fewer opportunities for reward.