5 ms·
There are few key reasons for running in a hypervisor isolated container on Azure with no access to the Internet: - We can guarantee a consistent experience fo
by localhost 3y ago
There are few key reasons for running in a hypervisor isolated container on Azure with no access to the Internet:
- We can guarantee a consistent experience for all users. Imagine having to maintain your own local distribution of Python and guaranteeing that it works with Excel as versions diverge over time? Yikes.
- We make it possible to share your Excel workbook with other users and have the calculation just work. That wouldn't work with random local installs of Python and users would be super frustrated by this.
- Security. Imagine opening an Excel workbook that can execute Python code running locally as you.
Also, I totally agree with your second point. Trying to write an internal app in Python that integrates with all of your existing IT infrastructure is an exercise in frustration at best. Excel is already part of the IT infrastructure virtually everywhere and is a programmable reactive canvas.
Disclosure: I work on the design team for the feature.
- snickerbockers 3y agoI agree with point 3, but points one and two don't make any sense because games have been skipping with Python scripting for decades and this is never a problem. The python interpreter is embedded into your program as a library and it doesn't have any dependency on the whatever python version the user installed.
- localhost 3y ago> games have been skipping with Python scripting for decades That only works if there is a forever fixed version of Python embedded in your game. The value of Python in this context is its ecosystem and folks will need to install additional packages and libraries into the execution environment. Now you're managing a local distribution of Python.
- SiempreViernes 3y agoYeah, but if the big value is supposed to be in the libraries you sort of have to accept dependency hell? Otherwise you're in the world where a small set of libraries can deliver all the functionality ever needed. Of the currently available solutions, "cloud environment made by Microsoft" doesn't sound that different from "software update made by Microsoft" in terms of how it solves the dependency hell: basically, the critical library you need is either in or out, but there is nothing you can do about it. Admittedly, here I'm assuming Microsoft won't let you install things into the environment yourself since that basically means hosting virtual machines running arbitrary code and putting the Excel brand in front.
- localhost 3y agoDependency hell may be an issue if you install arbitrary libraries into the container at runtime. Note that this feature isn't currently available in the preview. On versioning: we freeze the container image that your Workbook was authored against. You need to manually accept (and validate things continue to work) updates to that container image as we roll forward.
- zeratax 3y agoI don't really understand what stops this from happening locally?
- darkarmani 3y agoIt's the dependency hell problem as packages are added to the sandbox environment. If they were just shipping python (standard library), it would be fine, but all of the useful libraries have large numbers of dependencies.
- zeratax 3y agodoesn't this dependency hell still exist, but just in the cloud?
- darkarmani 3y agoIt's not hell because they carefully curate the set of libraries rather than having end-users attempt to have every combination of packages (and then blame microsoft for the dependency hell / lack of support for their exact configuration.).
- noitpmeder 3y agoYou say this as a good thing... but as a data scientist that uses python every day I can assure you their "carefully curated set of third party libraries" definitely will not include most of the libraries I rely upon for my work.
- ylk 3y agoCould you not achieve the same by shipping the required tools with Excel and running them inside a Windows Sandbox? Isolation isn't as good, but it probably protects users against the threats you/they care about?
- datavirtue 3y agoAnother half-baked Microsoft cloud thing. Get wrapped around that axle? No thanks.
- laurels-marts 3y agoI think this could be just a toggle in settings: A. run python in the cloud (default) B. specify path to your local python interpreter When you open a workbook that is using B show a warning before running anything. Then behind the scenes spin up a new venv that installs everything from requirements.txt and executes the code in workbook locally.
- thrtythreeforty 3y agoC. run code in same environment in a local sandbox. Linux can do this with containers (pick your implementation), I'm certain Windows has similar mechanics.
- sebazzz 3y agoD. Just ship Python with Excel