Microsoft Releases and Patents 'Python In Excel' 67
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.
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.
Swpats are a no-go (Score:2)
I don't think it is acceptable to support patent encumbered platforms
Re: (Score:2)
They're back, baby! (Score:2, Funny)
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)
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)
This: Most Evil corporation in the Valley.
Re:Swpats are a no-go (Score:5, Insightful)
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)
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)
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)
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)
What would be important for me is that when the government spents billions on license fees they also put 100 million in the Document Foundation to compete against Microsoft Office. 100 Million on the spreadsheet component could make a huge difference.
Re: (Score:3)
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.
Re: (Score:2)
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?
Re: (Score:2)
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
Re: (Score:2)
The answer is b.
a is nonsense here because this was being done before by others.
Re: (Score:3)
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
Re: (Score:2)
Re: (Score:3)
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.
Re: (Score:2)
. 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.
Re: (Score:2)
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)
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).
Re: (Score:2)
Patent Office is a Racket (Score:3)
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.
Re:Patent Office is a Racket (Score:4, Informative)
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 patents and be the only ones to build sewing machines because they were the only ones to have licenses on all the patents. They grew big on this basis - if you dared build a sewing machine you'd run afoul of their patents.
Just over 100 years ago the same thing happened over automobile patents.
The comments were all the same.
Re: (Score:2)
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)
Re: (Score:2)
Red beans and rice didn't miss her!
LibreOffice supports Python integration since day1 (Score:5, Informative)
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)
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:3)
There has been a serious comprehension error here, but I'm more interested in seeing them try this.
Re: (Score:2)
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)
> 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:LibreOffice supports Python integration since d (Score:5, Interesting)
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:2)
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.
Re: (Score:1)
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.
So it's inovative to patent Lotus 123 features? (Score:2)
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".
Re: (Score:2)
In reality it is probably the third way: "corruption and utter stupidity". This is the USPTO we are talking about.
Patent title != patent protection (Score:5, Informative)
Re: (Score:2)
Re: (Score:1)
Re:Patent title != patent protection (Score:4, Interesting)
Mechanical patents also effectively had no secrets when the protected product was produced. A manufactured device could be disassembled. Software patent holders should have to publish ALL related code in order re-establish the public good portion of patents so that "inventions" can be improved by others.
Re: (Score:2)
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:3, Interesting)
Re:Patent title != patent protection (Score:4, Insightful)
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.
Re: (Score:2)
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?
Re:Patent title != patent protection (Score:4, Interesting)
Re: (Score:2)
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. ;)
Re: (Score:2)
Old man yells at cloud company (Score:2)
(Although, I just made an in-house, manufacturing tool for ourselves in VB6, a month ago; I miss being that [graphically] productive, that quickly.)
Re: (Score:2)
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!
Who cares if they patented it? (Score:3)
Re: (Score:2)
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:1)
Re: (Score:3)
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?
Re: (Score:2)
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.
Patents are getting ridiculous now (Score:2)
What is there to patent? (Score:3)
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)
... 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:3)
Probably because you gonna write the Python that a lot of other people will use in their spreadsheet.
Re: (Score:2)
Because your PHB wants spreadsheets.
Can't have your cake and eat it too (Score:2)
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)
are UNACCEPTABLE!
Period!
The cloud is a trap. Run away
Excel in Python (Score:2)
A spreadsheet written in Python and easily user-modifiable would be a win.
ugh, USPTO is "owned" (Score:2)
Microsoft's favorite employee: USPTO
My hatred of Microsoft continues to grow and grow.