Hacker News new | ask | show | jobs
by geori 3799 days ago
MS Office (specifically Excel) is not a shitty product. There's a reason why it has a larger monopoly with finance types Wall Street than Google does with search. Power users can quickly build powerful financial models with it.
11 comments

Excel is not perfect but it is best in class. I've built and maintained a time-series statistics research database for one of the largest trade associations in the world for over 10 years which heavily integrates with Excel. In so doing I've become intimately familiar with its quarks and shortcomings but ultimately it always provides a path to accomplish your goals, including high-performance automation https://msdn.microsoft.com/EN-US/library/office/bb687829.asp...
As a mechanical engineer, excel has been a wonderful tool. Engineers in our department get to have a smooth transition into programming competency in VBA, which has found itself extremely useful in many mechanical engineering analyses.

My coworkers are given the ability to crawl (simple equations in spreadsheets) then walk (user-defined functions) then run (automatic iterative solutions in UDF's, applying test data to create UDF models of machine performance). Not something a lot of mechanical folks would ever find themselves doing unless an already well-used tool has a good progression toward more complex and demanding use cases.

you seem to be talking about php...
Php is the first thing that came to my mind when I saw the title.
iOS and OS X were the first things that came to my mind.
In a past life, I made (very expensive) spreadsheets for a living. And though I don't like most Microsoft products, I'm pretty sure that Excel was built by God himself (or at least He was the lead dev or the PM).
What makes you say that?
It was very well made. It's easy to use and yet but also has great features and shortcuts for power users. There's lots of genius little features not available elsewhere, like grouping columns or formulas over columns or rows (e.g. sum(A:A)). I often abused it with 50mb spreadsheets (a bad practice fyi) and it could often take it. The version I used rarely crashed.

For most software I use, I see lots of things that need improvement. With Excel, I can only think of a few. (If anyone from Microsoft is reading this, please add matchifs, it's desperately needed).

Let's start a list:

Opening a csv triggers a full recalc even if your calcs are on manual. That's absurd given that csv files by definition have no formulas

Come on Microsoft. 18 years without updating the scripting abilities. Can't we have a .net version of VBA?? And NO JAVASCRIPT.

The fx button still opens a tiny old non resizable windows with a broken search feature, which is impractical if you have hundreds of UDF.

High levels of nesting in the UI making it really slow to repeat certain actions (try drawing something). I still miss Excel 2003's customizable UI.

They could provide at least a function to pull end of day FX rates.

Integration with powerpoint pretty much non existant. A huge amount of users prepare decks based on a model in Excel. The process to link them is unstable / stone age.

We should be able to transform a sheet into an excel formula, so that a non programmer can apply a complex logic to lots of data without a script.

Xlsm files get corrupted regularly when excel is running low on memory.

Adopt apple's idea of a sheet being a canvas on which you can drag tables or charts instead of having this antique model of a single grid which becomes annoying as soon as you have two tables on the same tab.

I am sure I can pull more if popular demand!

They've had an HTML / JS Add-in model for a few years now: http://dev.office.com/getting-started/addins?product=excel

It's not the exact same as VBA macro extensibility, but you can do some pretty interesting stuff with it - build task panes, build embedded charts that leverage web content, etc.

Swapping VBA for javascript is not exactly an upgrade. But you can't do any in-session scripting or UDF so that's of very limited use.

And for automation I would rather use .net + ExcelDNA than javascript.

I can understand why they went the javascript route but that's clearly hearing developers, not users.

> That's absurd given that csv files by definition have no formulas

I have some scripts that generate CSV files with formulas and for the record they work fine in both Excel and LibreOffice Calc.

I wouldn't recommend most of these ideas to Microsoft.

For example, I've done work where I've needed a recalc based on an updated csv so your suggestion would have broken Excel for some of my use cases. There's plenty of changes to recalc rules I would have liked, but I'm not sure any of them were unambiguously good ideas.

Also, scripting in spreadsheets is bad practice (besides maybe formatting or simple data fetching and even those are questionable). It's not what spreadsheets are for.

If calculations are on automatic, a recalc is fair enough. If calculations on manual, Excel should not initiate an unsolicited full recalc.

Scripting is extremely useful in Excel. In fact the productivity gain of this single feature is just off the chart. You have to think about business users, who barely know how to code. They can automate in a couple of hours some of their tasks, that would otherwise require to discuss with the IT team prioritisation, specs, testings, etc, and get something at best after 6 months.

I appreciate that IT depts hate seeing users coding stuff themselves but there is much to be said about the productivity of IT in large corporations.

And from a user point of view, I don't see why it would be bad practice. The only problem with scripting is viruses. But otherwise every application should be scriptable. There is always something that you would save time with a loop instead of having to do dozens of clicks.

he never used openoffice or libreoffice...
I think the PM was Joel Spolsky.
Actually I think he was the PM for VBA for Excel, not Excel itself.
So in essence the Devil.
My Jesus. Well, an old Jesus. VBA is in need for a refresh. They haven't even changed the color of a single icon.
Are you serious? Excel is complete and utter trash. Check out some "quirks" from the Wikipedia page: https://en.wikipedia.org/wiki/Microsoft_Excel#Quirks.

Some of the worst ones:

* Microsoft Excel will not open two documents with the same name and instead will display an error

* Excel includes January 0, 1900 and February 29, 1900, incorrectly treating 1900 as a leap year. The bug originated from Lotus 1-2-3, and was purposely implemented in Excel for the purpose of bug compatibility.

* Can't handle dates before 1900

* Despite the use of 15-figure precision, Excel can display many more figures (up to thirty) upon user request. But the displayed figures are not those actually used in its computations, and so, for example, the difference of two numbers may differ from the difference of their displayed values.

In addition, it is completely useless for handling any type of delimited file. By default it supports csv. If you want to edit a pipe-delimited file, you have to dig into the language settings of Windows, change the default delimiter, and open the file. Then, you cannot edit comma-separated files without changing it back first. So, there's no way to convert one to the other. Same problem with tab delimiters. EDIT: one person has mentioned the import data feature, but that doesn't solve the problem. You cannot edit and save anything other than commas without changing the Windows language settings.

It also trims off leading zeros from fields in csv files. If you open a csv file with leading zeros in some rows (say, from ZIP codes or SSNs), they won't be displayed in Excel. Then, when you save it, even without editing it, all the leading zeros will be gone.

It changes date formats. Save a csv file with a date in it in the format YYYY-MM-DD. Open in Excel: it's displayed in MM/DD/YYYY. Hit Ctrl-S. Re-open the file in a text editor and you'll see that the file has changed.

It also doesn't preserve quotes correctly in csvs.

Besides all this, there are many other stupid terrible things about it, like changing behavior based on scroll lock (can you think of one other program that does this?), making it impossible to look at many tall rows using the mouse scroll wheel, etc.

Excel is easily one of Microsoft's most egregious offenses in the world of software.

>In addition, it is completely useless for handling any type of delimited file. By default it supports csv. If you want to view a pipe-delimited file, you have to dig into the language settings of Windows, change the default delimiter, and open the file. Then, you cannot edit comma-separated files without changing it back first. So, there's no way to convert one to the other. Same problem with tab delimiters.

Totally wrong, Excel has the ability to import using Data -> From Text that opens a wizard that will step you through opening any type of delimited file, formatting columns, header rows, etc.

That doesn't help you edit the file, though. It only helps you convert it to an Excel file. You still can't save as anything other than comma-separated without changing the language settings.
First, you're wrong again, you can also save as tab delimited text or just text. Also, Access has some more Excel export options. http://superuser.com/a/107124

Secondly, Excel is not designed for round trip editing in plain text formats. You shouldn't use Word as a text editor either :-)

There are specialized editors if you want to directly edit a csv file etc. I use them sometimes. That's not what Excel is for.

The purpose of software isn't to be correct or even predictable. It's to satisfy the needs of the user. The user in this case, isn't you. It's corporate clients who make decisions for tens of thousands of employees. They have various needs, however esoteric and strange. I promise you that all of the behavior you cited was implemented at the request of a client.

Ideally Microsoft should craft custom versions for specific clients, but that is its own nightmare. They tried that with Windows and it didn't go too well.

When I am doing multi million dollar financial models, I like correct and predictable.
I use Excel nearly every day at work. How am I not the user? My company has needs too, one of which is correctly editing spreadsheets and delimited files. Excel is insufficient for this.
OP probably should have said _purchaser_.
For the 14 years during which I used excel daily, the first 4 items you listed didn't affect me and the last two never mattered. I used text-to-columns to very nicely parse pipe-delimited files. The leading zeros issue I bumped into several times and was a minor irritation to fix.
>I used text-to-columns to very nicely parse pipe-delimited files.

Sure, but you still can't edit it and save it without losing data. I use Excel nearly every day as well, and I get more and more frustrated the more I use it. My coworkers hate it as well. Just because you haven't personally experienced any problems doesn't mean they don't exist.

Word certainly is, at least on OS X. Within an hour of my first time using it in a decade last week, I caused it to beachball for five minutes straight by clicking a single button (select all text of a given style). It then took me over an hour to figure out why my TOC entries had no spacing between their numbers and titles (hint: it wasn't the spacing setting), and another hour to figure out why, after I "fixed" the spacing issue, why my chapter numbering was all messed up (the "solution" was to reformat each chapter heading with the same format it already had).

It has terrible default orphan/widow control, and editing anything graphical is a royal pain in the ass: the slightest wrong touch can throw your diagram into disarray. Those that "know" how to use it I've noticed seem to have near-infinite patience and knowledge of where all of Word's "land mines" are and how to avoid them.

People use it because it bundles in every obscure feature under the sun, so it's effectively the lowest common denominator when it comes to meeting an organizations' needs. And for those who already know how to use it, I suspect the sunk cost fallacy keeps them there.

I wouldn't call Word's features obscure. They may not be relevant to you, but it is an extremely powerful publishing tool.
Publishing? Are you sure? I know people who do book layouts, and they're all using InDesign, which is a completely different tool.
For real publishing, I think TeX is still the state-of-the-art. It still produces the best-looking documents put on paper (granted, one needs to give it a decent font to do so…).

Pity that it's so difficult to do, say, bilingual books with one language on one side and the other on the other, with page elements lined up neatly. For that, Word is probably the easiest — but it looks terrible.

"Obscure" does not mean "useless". I wager that most of Word's features are not used by the majority of its users, and are difficult to find in menus if you don't know what you're looking for. They are then, by definition, obscure.
In defense of Word: The vast majority of people don't realize just how massive Word is in terms of it's feature set and it's complexity, Word is a fully furnished publishing program and most people treat it like a rich text editor.

I still have and use it irregularly for a few things, but if you just need to edit text with formatting, use TextEdit. Using Word to type up a memo is like using a jet engine to cook a TV dinner.

It may be incredibly powerful (for what use case?) and everything. But it's an incredibly bad rich text editor.

Word can't keep a list straight.

That's akin to saying "this screwdriver sucks as a hammer." You're using it wrong.
When you go to the hardware store and ask for something to pound nails, they give it to you. When you ask people what they use to pound nails, they say they use this. When you're hired to pound nails, they often insist that you pound nails with this. 99.9% of the people who use this on a regular basis use it exclusively to pound nails.

Given that context, it makes little sense to say, that's unfair, it's really a screwdriver.

If 99% of the contractors on the planet were using screwdrivers as hammers, the 1% are the ones using the proper tool for their job.

Consensus =/= Fact in every scenario.

So would you say that your description and expectation of how people use Word matches Microsoft's marketing materials for it?
Who cares? I thought we were talking about the quality of the tool and not the marketing.
To stay with wacky imagery, using Word to do high-quality publishing work is like carving wood with a spoon. It's kinda possible, but takes unnecessarily long, you'll break your tool a few times and the end result doesn't look all that great.

(It's actually used in many publishing workflows, but for the early stages, where all you want is a rich text editor with the ability to do diffs. Typography and layout is done later with different tools)

I've seen numerous examples to the contrary, I'm willing to grant it isn't the best publishing tool out there (far from it) but if you get someone who's properly trained, you can get some very good looking documents out of it.

Also very useful for smaller mass mailers and the like, where you don't have the budget for a full feature publishing suite (or the need).

You are right, I was thinking more in a direction of books, magazines and other more complex works. "high-quality" should probably read "high-complexity" or something
I completely agree. Word is like the Emacs of natural language documents.
> Word is a fully furnished publishing program and most people treat it like a rich text editor.

"Oh, I need to change the format of headings? Well, I guess I'll have to go through all 1536 instances!"

-- someone with very good Office skills

Very good? Hm. That doesn't sound anything like the very good answer of "Styles & Formatting > Heading 2 > Modify > Update All.
Microsoft Office (by the way 2016 is a pretty solid software suite) is not thriving because of institutional knowledge. Office is great because users in most business settings can quickly pick up any of its applications (learn how to use it) and apply the same learnings to the rest of the suite, personal knowledge with a small learning curve. Also, tools like Excel are malleable and useable for most users in a company. If I create a unique data set in R, but would like to share it to everyone and have them play - its not going to spread very far. If I do the same in Excel, everyone can take a look and manipulate the data. I like to think of Office is a practical solution for most business with a wide range of users who are "generalists."
> Office is great because users in most business settings can quickly pick up any of its applications

My experience is that 'users in business settings' absolutely refuse to consider any alternatives, mainly because of two 'fear factors': 1.) "Everyone else in my industry uses Microsoft Office products so I must as well" 2.) (Usually unstated explicitly) "Learning an alternative is going to cost me time and money and personal effort"

Sure, Excel can be a useful spreadsheet tool, but Word is a clumsy and difficult publishing tool. Many alternatives from LaTeX to LibreOffice to InDesign tend to be more portable and reliable but require the user to assume a degree of risk for learning something new and different. That seems to be enough to keep the majority of users away.

Absolutely; no one uses Office because they can "quickly pick up any of its applications". People use Office because they already "picked up" its applications. LibreOffice? Lemmee see here, I'm a bookkeeper/lab research assistant/factory supervisor that just wants to get my shit done and go home. There's this FOSS thing that mostly works but sometimes doesn't, or this Microsoft thing that I already know how to use and "works" perfectly (because it for sure can read its own format), and I don't give two poops about "Freedom!". I'm going to send a requisition to the boss for another Excel license.

For a lot of people, they don't want to learn alternatives ('cuz that's on my time, since they boss ain't training me), and the cost of the license isn't coming out of their pocket. Of course they use Office. That's not an unreasonable choice.

LibreOffice is also nowhere near as good as Office.
I do see more and more people using Google Docs instead of MS office. The online instant sharing is extremely compelling, and while the features of Docs and Sheets are pale compared to Word and Excel, they are good enough for what most people need.
Word is the perfect example of a lazy, mediocre product dominating a space through sheer inertia.

The current Mac version can't even keep track of recently opened files. Working with styles is torture. (You can't search them, you can't group them, you can't sort them, the ribbon selection seems to be random.)

The ribbon itself is an unusually eccentric example of software design.

A competitor could easily produce a leaner, better product. But it would never sell, because Word has so many corporate users that anyone who exchanges files with them has to use it too.

Locked-in products do sometimes fail, but they usually only fail to competing products from large companies. The textbook example is the move from QuarkXpress to InDesign, which only became possible because Quark were so famously greedy and lazy about Xpress they literally pissed off the entire print design industry.

Adobe not only had a better product, they also had the sales team and industry relationships to push it. Without those, it's likely Xpress would still be Number 1.

> A competitor could easily produce a leaner, better product.

There are several competitors in this space. Pages, LibreOffice, and Google docs come to mind. The only one I've ever heard described as better is Google docs. I'm not sure reality supports your statement.

LibreOffice doesn't support stuff Office does; Latex and InDesign are intended for different purposes.
>Latex and InDesign are intended for different purposes

Page layout is what LaTeX and InDesign are intended to do, and that's what Microsoft Word does too. Do you think Word users are only using it for a text editor?

Your argument is that Microsoft Office is not thriving because of institutional knowledge, then you proceed to prove that it is institutional knowledge that makes it a valuable tool.

If your arguments are: 1) Most users can pick it up easily due to familiarity. 2) Excel is a general tool usable by many disparate groups in the organization. 3) Excel is the lingua franca of manipulating data within the organization.

Then it seems to me that these would fall under the category of 'institutional knowledge', and you are in effect arguing that it is thriving because of institutional knowledge.

I stand corrected.
Doing complex modelling in Excel is not a good idea. There is no way to do proper software engineering, so bugs are common and hard to find. For examples, see

http://www.eusprig.org/horror-stories.htm

Except "proper software engineering" would mean whatever is being built simply never gets built.

In many cases it's better to get somewhere quickly with excel then work out if "proper software engineering" is required than never get off the ground because engineering something is too difficult.

Think of excel like lego. Someone can quickly build something out of lego. Now if someone tried to build a cathedral from lego, you might suggest that they find an architect and do some proper house building, but without lego they would never have tried.

And chances are they're not building a cathedral.

Just like I wouldn't want to live in a house built from LEGO, I'm somewhat wary of Excel models as the basis for investment strategies in major banks. The problem with the quick and hacky solution is that it's never replaced, because that would cost money, and the current solution "looks like it works".
However the excel solution has a lot of things going for it :

1) applications/reports built by the people designing and understanding the underlying needs and inner workings of whatever they're offering. Whilst very good programmers can match this (given enough - that's a lot - time), average programmers won't even try.

2) excel sheets require nowhere near the manpower required for your alternative. That factors into a cost-benefit analysis that may not favor real development.

3) Speed of development. Markets change. Investments change. Sometimes literally in minutes. Anything involving more than 1-2 people who are intimately involved in the strategy itself cannot possibly keep up.

4) Excel is in fact a pure functional programming language [1]. Unless you deeply understand excel I wouldn't be so quick to call it stupid. There are entire classes of bugs that simply can't exist in excel spreadsheets that are regularly found in programs.

[1] http://ndc-london.com/talk/pure-functional-programming-in-ex...

These sheets are pretty good. You can really get nice app ideas from some of them: http://www.exinfm.com/free_spreadsheets.html

1) is priceless. In banks I've seen many traders build pricing and risk solutions in Excel that would take weeks or months for developers who don't understand the products and/or maths to build. In some games, time to market is everything.
"excel sheets require nowhere near the manpower required for your alternative. That factors into a cost-benefit analysis that may not favor real development."

Not to build, but to maintain and constantly clean up the errors by using the wrong tool for the job. I know form experience having wasted countless hours because my organisation insisted on using it as a tool to upload data to our database, and using it as the database before that.

The errors they invariably introduce are also very expensive. Not just fixing them, but actions on incorrect data can be very very expensive. I've seen it, and in my experience its almost universal.

I'm not saying Excel is always the wrong solution, I am saying Excel is not always the right solution but it can appear to be. That makes it very dangerous.

In the past I've made a lot of money converting organization's mammoth mess of spreadsheets into a proper solution. I've done this for more than one organization.

The problem is Excel is easy to abuse, thats the way people know how to to solve problems so it doesn't occur to them they may need proper software to do what they need to do, not that they don't have the funds. All the companies I've worked for have had the funds.

Most organizations don't audit their spreadsheets nor keep backups or have a method of keeping track of them - the spreadsheet you get emailed may not be the current version. Its par for the course for spreadsheets to be done in a completely ad hoc manner with no controls whatsoever.

From my experience fixing spreadsheet messes, they usually waste person-hours like crazy and end up costing more than paying an engineer for custom software or getting an off the self solution. This has been my experience.

Spreadsheet abuse was a factor in JPMorgan losing 2 billion dollars in 2012, for example.

There's actually an interesting gap between 'building some model in Excel' and 'moving on into a programming model where code and data are separated'. Like generating model code in some normal programming language from a spreadsheet.
Does VBA fill that gap? I once worked on a system where one of the more important parts of the business was a system of VBA modules in an access file.

One of my more important contributions as a fresh graduate entering the workplace was to get people to copy the file from the network share to a local drive before running. Run-times went from "leave overnight" to ~15 minutes.

Right, but why VBA? Because VBA is the only language with first class support in Excel, not because VBA is good at all. If not fon its "privilege", you'd use something like Python or JavaScript (yah it sucks, but not as bad a VB) or a purpose-built sane language, not something Joel Spolsky dashed off a spec for one Tuesday afternoon.
So?

Many great projects start out as excel spreadsheets: someone has a problem, solves it with excel, then goes on to solve other problems with that spreadsheet. People use it and become dependent on it, but over time the thing becomes intractable.

At that point in time, the functionality of the spreadsheet gets implemented by actual developers into some "engineered application."

If you are suggesting to NOT start with excel, then propose another solution-- but good luck getting anyone to use it. The key thing is, no one wants to engage "software engineers $$$" to solve a problem that lands on their desk which they handle by themselves.

And once some devs turn it into an "engineered application" the change cycle jumps from minutes or hours to days, weeks or even months.
Shh! Your logic and practical experience is not welcomed. We like to scream with self-righteousness from our software engineering high horses here. Software engineers know best and everybody else is wrong because he doesn't know any better, since he has a limited perspective.
or years.

I often have the fantasy to write "Powered by COBOL" below the logo of my company.

A complex model in Excel is software engineering.

The degree to which it is "proper" of course, is situational.

I've known a handful of people that have become full-time programmers after achieving proficiency in Excel. It's a product that many people enjoy using and mastering.
Yeah, the MS Office comment ruined an otherwise good article.
Its a shitty database, and a shitty data entry solution, which is what it was used for in my last workplace. But people know how to use it and will use it for all sorts of things that its not particularly good for.
> There's a reason why it has a larger monopoly ...

It IS good, for sure, but let's not forget about everything done by Microsoft to ensure that nobody else could edit reliably their files while locking the world with .doc, .ppt, .xls. The competitors never stood a chance.

The shittiest aspect of Office is the price.
God forbid someone exchange money for software instead of offering it for free and making money through ulterior motives.
Let's say someone who earns $50,000 a year uses Office for 5 hours a day while making a living. It's also a purchased copy so it lasts at least 6 years. What's that worth?

How does it compare with the cost of, say, one Starbucks a day?

If you employ somebody on that salary for 6 years (so add extra employment costs including taxes, insurance, office space and perks), what percentage do you save by not paying Office's shitty price?

Vim, for example, makes me 10$/yr at least, but doesn't cost anywhere near that. It's better prices than Office.
Sure, but it's not a replacement for Word, Excel, PowerPoint, Outlook or any of the other Office programs.

The real question is, if vim cost $100, would you pay or would you use a product you didn't like as much, that wasn't as efficient, or as productive? How much would you pay for a Supervim that earned you an extra $5k/yr?

Too bad Excel isn't really a standalone product. Office and windows are necessary dependencies. Given that, it is a shitty product. If they broke it out, allowed me to run it on an OS I actually want to use, away from MS's gremlins, then I certainly would buy/install/use. But as of today it comes with far too much baggage.
It has been available on Mac OS since 1989 and there is a browser-based version that is freely usable with a Microsoft account. I think you should check your facts.
Yes. Neither is the Linux-compatable version I need/want. I use spreadsheets for sensitive information. Something reliant on browsers, with all their headaches, doesn't fit my security model nor that of my clients.
That's not what you were complaining about earlier. Shifting the goalposts is always fun.