24 ms·
Thank you. Seriously, it'd be so much better (and easier) for people to master Excel than Python. Excel is interactive, undo-able, documented, shareable, graphi
by throwawaymsft 12y ago
Thank you. Seriously, it'd be so much better (and easier) for people to master Excel than Python. Excel is interactive, undo-able, documented, shareable, graphical, etc. It's a much better tool for modeling. We don't need people to master mechanical engineering to drive a car.
- tree_of_item 12y agoInteractive, undo-able, graphical, sure, but what do you mean by "documented"?
- throwawaymsft 12y agoLet's say you're a new programmer and want to do something simple, like take the average of some numbers. In python you'd search the official docs (right? Why should I google around random forums) and get presented with this: https://docs.python.org/2/search.html?q=average https://docs.python.org/2/search.html?q=average Nothing helpful at all. A regular person thinks "take the average" and programmers think "build up a result from a set of primitives, like loops and arrays". Total mental mismatch. Way too low on the abstraction chain, I just want a friggin average. There is literally no article or tutorial in the python docs explaining how to do this grade school operation. Imagine how frustrated you would be. In Excel you type average and get inline help in the IDE, an example (you can copy-paste), related functions, etc. http://imgur.com/ZZGHlH2 http://imgur.com/ZZGHlH2 In 3 seconds you have contextual help extremely relevant, and you can see syntax errors as you type. For a new programmer, Python is effectively undocumented.
- gohrt 12y agoYou're kidding, right? Excel is awful, here's proof: If I open up the documentation for Windows, there's nothing about average. I hit the Start menu, I type "average(1,4,6,8)", and I get, nothing. What you like about Excel is that it is an IDE. And IDE that makes simple things simple, and hard things back-asswards (VLOOKUP??? CONCATENATE?? filters) http://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.me...
- throwawaymsft 12y agoI must be missing something. Why should Windows OS (or Mac OS, in my case) handle help for an app? When you're in Excel, you get contextual Excel help, and only Excel help (which is a good thing). Do you want every mention of "average" in your email to show up? Sure, SciPy can take an average (not Python proper). How is the user supposed to know to visit a non-standard Python module site and search there? How about the next commonly used function, like charting. If I search "bar chart" which Python module site should I magically know to visit? VLOOKUP (Vertical lookup) isn't the best name, sure, but "lookup" is in the name. It's another keyword to learn, like "foreach".
- belgianguy 12y agoManaging a spreadsheet does not equal programming by a long shot, and given large enough complexity, you'll run head first into VBA macros and abominable one-liners with so much different branch points that it only makes sense to its author, who could have written a program that seperated the code from the presentation instead of munging up the two. Sure, it'd get the job done, but the successor would have to rewrite it, as it can hardly be documented, plus, from personal experience, people who are versed in Excel trying to tackle data problems at companies have come up with rather brow-raising solutions. (What's this MySQL you speak of? Does it work with Excel, too?) Programming is not just hammering away in [language], it's deconstructing a problem into smaller, less complicated problems, to generify and abstract away common properties to allow for repetition in similar contexts. It stimulates efficiency, speeds up rote administration tasks, and allows the programmer to learn something new each time he tackles a new problem. More so, the writing of code should enlighten a person to write readable functionality, as code is read, compiled code is executed. Using clear and descriptive terms to state the moving parts in his solution, using verbs in function names, not abbreviating unless absolutely necessary, are all tasks that should allow for a person to better state his problem domain and its intended solution.
- throwawaymsft 12y ago> Programming is not just hammering away in [language], it's deconstructing a problem into smaller, less complicated problems, to generify and abstract away common properties to allow for repetition in similar contexts. This is exactly what you learn in Excel. How to take some data, transform it slowly (column by column), check your work, save intermediate results, etc. In minutes you can go from your idea to some crude version of it. Then you refine it. Look, Excel is like LogoWriter. We're not asking people to design rockets with it. But it's a hell of a lot better than sitting them in front of a terminal and asking them to learn about variables, loops, print statements, etc. Excel is type and go.
- UrMomReadsHN 12y agoOh boy, we don't need any more Excel abuse then there already is... You wouldn't believe the kind of behemoth Excel monstrosities there are out there. Because when your only tool is a hammer, everything looks like a nail...
- throwawaymsft 12y agoWe want people to learn computational thinking, and then complain when their amateur creations aren't up to our standard? Let it be a gateway.
- UrMomReadsHN 12y agoExcept that their amateur creations end up as being used for really important stuff. With hugely disastrous results. Excel misuse seems to be rampant in the business world, from what I've seen from my customers. Perhaps "teaching them Excel" will lead to a deep understanding. Perhaps "teaching them Excel" will just be like how I "learned" Excel back in high school- a teacher standings in front of the class just saying "press this button, now press this button." Excel abuse was cited as a part of the reason JPMorgan lost 6 billion dollars. I don't know...
- throwawaymsft 12y agoI don't understand your argument. Let's say someone learns a proper programming language like Python, creates some spaghetti code (as any beginner will do), and that gets used by the business. How is that any different than a spreadsheet that does the same? Excel's strength is that people are actually productive enough to start using and make something useful. Whether people make substandard houses with a hammer isn't really the tool's problem. Being too difficult to pick up is. You might argue there is some quality bar that should be met before a creation is put into production, which is fine, but that's independent of the tool used to make it.
- Swannie 12y agoExcel works for numerical modeling. Try modeling a multi-actor process. It's representable, but not a model. Better to represent in a swimlane diagram.