Are Spreadsheets Software or Data?
ideveroux asks: "I have started a company which designs Excel Workbooks to duplicate paperwork required for Bingo Halls in Mississippi. In all my years of experience, I have never considered a spreadsheet itself as software, only Excel. However, the Mississippi Gaming Commission has gotten itself into my business and is trying to require me to license my company with them ($10,000.00 and government involvement) because any 'software' sold to bingo's have to be licensed by them. What is your take? Are the workbooks software by themselves? As a startup with no venture capital, I haven't the resources to secure an attorney, nor pay their extortion money. Thanks for your input." Spreadsheets have always existed in this grey area because they mix functionality with data. This issue has grown more tricky over the years as in-spreadsheet macros become more and more complex. I don't think of spreadsheet files as software, because you can't edit or execute a saved spreadsheet without it's associated application. However some can say that anything that implements an algorithm qualifies for term. What are your thoughts on the subject?
No technical definition of software will alter the circumstance, because technical issues are irrelevant to the those controlling the issue. 10,000 USD is a good fee from their point of view. It's much less than the cost of fighting the battle in court - which is also run by more Good 'Ol Boys.
I wish that there was a less pessimistic outlook. Welcome to the gap between perception and reality.
"Flyin' in just a sweet place,
Never been known to fail..."
It doesn't matter whether a spreadsheet can run without its app. Plenty of software has been written in languages that require an interpreter.
At least some spreadsheets (e.g. Excel) support programming languages for their macros. Clearly Visual Basic is a programming language, regardless of whether it's a good one. So anything that uses Visual Basic is an app.
Furthermore, you could argue that the mathmatical operations that a spreadsheet performs are themselves programming instructions. They're even formatted similarly to C function calls.
Basically, the only spreadsheet that could not be interpreted to be an application is one that contains data (and layout) only, and no functions.
I think it's fair to consider a spreadsheet that does something to be an application.
I just wanted to poke cliff in the ribs for defining software as something that doesn't require another application to execute.
Dude, you've just eliminated *all* scripting languages from the definition of software.
*My* next step would be to ask the gaming extortion folks where you can find the definition of 'software'. There should be one.
If ever a paradigm mixed logic and presentation then spreadsheets are it.
They are software throguh and through, no question.
It would be fairly trivial to write a Turing Complete Machine interpreter entirely in VBA in Excel and I'm sure the same must be true of other spreadsheets.
Just like php, spreadsheet's consider anything literal text unless otherwise instructed.
You can embed the excel engine as an ActiveX control in other applications and use it.
What other proof would one need?
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
If a spreadsheet contains nothing but data - no formulas or macros - then clearly it's data, not software. (You could just as easily distribute it as a tab-separated file, if you forgo fancy formatting.)
Macros written in a language like VBA are clearly programs: now your spreadsheet is a mixture of data and software.
An Excel formula can also easily be considered a program: it describes a computation in a form precise and formal enough that a machine can carry out the computation.
How many formulas or macros, and of what complexity, are necessary before a spreadsheet is "software" in the eyes of the law? The courts will probably have to decide this eventually; there may be no general answer. You might have to look at the purpose of the law.
In this case, the law is that bingo software must be licensed by the MGC. Why? I don't know, but perhaps it's to ensure that the taxes are paid, or that the books are kept accurately, or that the bingo numbers are drawn fairly. Then the court will probably consider whether the spreadsheet is involved in, and automates, those activities. If so, then the spreadsheet would probably be considered software that must be licensed by the MGC.
Cliff said, "... you can't edit or execute a saved spreadsheet without it's associated application." That is irrelevant. I can't execute a Perl or Python program without the right interpreter. I can't execute Java bytecodes without a VM. I can't execute Windows programs without an implementation of the Windows API. Software often relies on the presence of other software.
That said, two questions stand out to me:
On the flip side, it's possible that you're dead in the water because the good people of the great state of Mississippi have already decided that Excel spreadsheets shall be considered software, not data.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
No different than "The Mark Of The Beast", this is yet another example of exclusionary practices by licensing boards. This is the evil of licensure, of restricting an individuals libery not because of their actions, but only because someone has the authority to create the restriction.
It's their rule, they win. Pay the money, or get out.
Which leads me to wonder, what about the use of other software? If they have a Windows PC, does Microsoft have such a license?
Just wondering how obviously hypocritical they licensing board is.
Bob-
The Ludwig von Mises Institute. The reasoning individuals economics
Consider: Is '5' a program or data? It is certainly interpreted from it's representation within the computer to produce a literal '5'. I think it would be folly to argue that '5' is a program, though in the process of being presented to us, it controls many things, rather like a program. Still, we consider it data.
Now, consider (1+1/1000)^1000. Is that a program or data? It certainly requires interpretation to produce a result. But that result is an approximation to e, the base of the natural logarithms. We may also series expansion approximations to irrational numbers, like pi. Are those programs? I would still say no.
I'd say this because the result of these "programs" does not change with each run. Their output may as well be data. A program with no input (and I've yet to see a spread sheet prompt, when I have it recalculate, unless there is some error) always produces the same output and can be considered identical to that output. It is precisely because spreadsheets fix the data that their embedded formulas use, that the spreadsheet as a whole can be considered data. Unlike a program, a spreadsheet isn't "run", it just "is", once the numbers are entered. Errors in the embedded formulae are no different than errors in transcription, or manual processing of the numbers. Both these are subject to audit, so incorrect embedded formulae can be caught when the data is presented. This is not so with a program, where the input and output are distinct from the program itself.
In the same way that accounting records can be audited, spreadsheets can also be audited: all the intermediate steps are still there. There is no need to "pre-audit" or "license" the program to make sure it is correct.
You could've hired me.