5 ms·
But no Python support as they promised. So sad.
by Ftuuky 8y ago
But no Python support as they promised. So sad.
- realslimjd 8y agoThey never promised Python support.
- Ftuuky 8y agoI think they were considering it, they even sent out a survey. https://news.ycombinator.com/item?id=15927132 https://news.ycombinator.com/item?id=15927132
- erichdongubler 8y agoThat's...very different from making a promise, though.
- Ftuuky 8y agoYou're right. But since the feedback to their survey was so positive, I was really expecting it.
- zimablue 8y agoIf that's true, this stuff just changed the world more than half of the political issues that people march on streets about. The brightest people in office jobs around the world that aren't well integrated with developer teams (almost all of them) just got pushed to learn javascript, puke.
- always_good 8y agoI get the appeal of "DAE hate JS" on Reddit where everyone upvotes you, but it seems out of place on a forum of professionals because JS is not much different than other dynamically-typed languages. I'd say it's better than Python which doesn't have async-by-default nor idiomatic closures. But "puke" is a bit childish.
- zimablue 8y agoI'd kind of assume everyone on HN has made their minds up about languages and I'm not qualified to change the opinions of any of them or even really try to be informative. So the puke is just for the (70% at a guess?) people who would agree that this is a bad choice. Since I work with both python and javascript in exactly this dirty moving data around for analysts space (but haven't for long), I'll qualify a bit. The most important point is that python absolutely brutally dominates the data science space, there are no javascript equivalents to the python ecosystem, it's not even close. Secondary point is that javascript is much lower level than python in a language sense. Python already has classes built in, reflection, sane typing, just tons of batteries. Javascript as someone smarter than me said before is lisp with C syntax. It's definitely possible to build a good language out of Javascript by using the right libraries and making decisions on how you're going to implement inheritance etc but it's just tons harder than python or almost any other language which has defaults on these decisions made for you. Guys automating their data flows aren't going to be at the level to make these decisions well but they will run into the same problems they solve and implement their own insane schemes. I'd much much rather debug amateur VBA or Python than amateur javascript.
- JBReefer 8y agoJavaScript has every feature you listed, plus a ton. I'll give you the batteries included part, but you're missing the critical component here, which is Python's dep mgmt story is terrible. Pyenv seems cool, but it's basically NPM - which is a critical part of what they're trying to do here.
- zimablue 8y agoYou can definitely mess up with python envs but JS absolutely doesn't have all the features I listed. It doesn't have anything like python's built in power of classes, it's not just having a class syntax which is a thin wrapper around prototypes, it's having metaclasses, class decorators, properties, type comparison that works for inheritance, super(). It also doesn't have sane types/casts.
- mcintyre1994 8y ago> There are many useful function types developers can enable with Machine Learning, such as: > Any custom Python code, like a function to analyze text in cells. Sounds like you'll probably be able to hack Excel into running whatever Python code you want using the Azure ML integrations. I guess it'll be Javascript the people currently writing VBA are pushed toward though.
- bakery2k 8y agoOne issue with embedding Python is that it's difficult to sandbox - to securely limit what the embedded runtime, and hence (potentially malicious) custom functions, can do: > [The Python developers'] standard answer to "How do I sandbox Python code?" has been "Use a subprocess and the OS provided process sandboxing facilities" for quite some time. [1] JavaScript, OTOH, is designed to support secure in-process sandboxing. Other languages with such support do exist (e.g. Lua), but JavaScript is by far the most widely known. [1] https://mail.python.org/pipermail/python-dev/2013-November/130145.html https://mail.python.org/pipermail/python-dev/2013-November/1...
- willhslade 8y agoI think this is the real reason why we will never see Python inside Excel. The other, minor, reason is that Guido has pretty much pooped all over the idea of backwards compatibility in Python, which is pretty much integral to Microsoft's vision.
- Quenty 8y agoOther benefit is the web version can potentially run the javascript in the browser instead of waiting for a network call. Not sure what the security implications are here.
- AnIdiotOnTheNet 8y agoDidn't and doesn't stop them from using VBA, which of course is already used by malicious entities everywhere, so if they're unwilling to stop supporting that then why not let unsandboxed python work?
- brudgers 8y agoGood point. Another architectural difference between the languages is that Javascript is a [relatively] small language with a long history of working with external API's [i.e. the browser]. On the other hand, Python has extensive standard libraries that would require alignment with Excel. For example, how does csv.reader integrate? It looks like a can of "do the obvious thing" worms and a mountain of unexpected results and documentation. Mostly, I think it comes down to Python being designed as a systems language rather than a scripting language. Integrating Python would seem to mean either a weak security model or a special (subset) version of Python. Neither is really going to meet the fat part of the Bell Curve...people who just want to get things done in Excel. Applying a 'browser abstraction' to Excel is probably better than applying an 'OS abstraction'. Anyway, JS has been a part of .NET and VS since JScript. Python, not so much.