Probably...

Story: Software is not dataTotal Replies: 19
Author Content
rnturn

Nov 08, 2014
10:50 AM EDT
Old-timers will probably remember back when there were magazines that covered UNIX (not Linux... UNIX) that there used to be an ad toward the back of the magazines for an accounting package that was implemented completely with shell scripts and plain text files. I can't think of much that would actually /require/ using a binary file format. Lossless data interchange between programs is about the only place where binary is better than plain text. (I'm thinking back to the days of FORTRAN where it was better to pass unformatted data between programs to avoid introducing roundoff errors into the data.) There were even spreadsheets that used plain text files as their file format (anyone remember Perfect Calc?)

As for "querying" the data... If you mean using a SQL query against a plain text file, I've seen web pages that claim that's possible. Search for "SQL query on plain text files" and you'll see a slew of links that might be helpful. Apparently, one process involves accessing the file using an application that can use ODBC. Sounds messy to me; I'd probably do that with Perl, Ruby, Python, R, etc. (Not necessarily SQL for it wouldn't surprise me to find that there's a module out on CPAN, CRAN, etc. that lets you use SQL queries.)

Bottom line: Yes. Sophisticated data manipulations /can/ be done using plain text data files.
mbaehrlxer

Nov 08, 2014
11:20 AM EDT
i wrote my own task manager in common-lisp, and for the data storage i just dump the whole datastructure as plain-text s-expressions. when starting the program, the whole data is read in, manipulated in memory and then saved again.

this way i can save datastructures of arbitrary complexity and manipulate them using the full power of lisp.

more importantly however, if there is an action that i have not implemented yet, (such as moving a dataset from one area to another) i can do it manually by just moving the relevant data using an editor.

greetings, eMBee.
gus3

Nov 08, 2014
12:15 PM EDT
Sorry, but Mr. Mesibov is wrong. Software (i.e. code) is data. It's just a matter of interpretation at run-time.

In most modern computers, it's code because a Program Counter or Instruction Pointer referred to it. In earlier times, it was code because it was fetched from Instruction Memory via a dedicated bus. Or it was read from a punched tape. But ultimately, code and data can share a non-volatile, at-rest storage medium for their contents.

And then of course there's Lisp. Code is data, but not necessarily vice-versa.
750

Nov 08, 2014
5:08 PM EDT
This seems to ignore markup languages, be it HTML/XML, (La)Tex, or similar.
Bob_Mesibov

Nov 08, 2014
6:59 PM EDT
Hi, gus3. Yes, of course, technically you are correct that software is data, just as anything a computer processes is data. What I was distinguishing in the Linux Rain piece is 'data' in the sense that businesses and scientists (like me) use it, and 'software' as programs to process that data.

And yes, AWK and grep and sed are also programs that process data. They are very different from Excel or Access or SQLite because they stand external to the data they process.

In the Linux Rain piece I mentioned some advantages of programs that eat your data before processing it, and there are other advantages. What I've found in recent years is that everything I previously did with data tables, I can do with plain text and the CLI. What's more, I can easily script my routine jobs, even quite complicated ones.

I don't see plain text data management as retreating to a UNIX past. As a biologist, I also don't see 'primitive' animals and plants as weird survivals from an earlier epoch. I see them as very successful, then and now and into the future. Same with AWK, grep, sed, etc.
gus3

Nov 09, 2014
11:44 AM EDT
@Bob_Mesibov, in practice you are correct. The danger(!) of making code to be "not data" is that it elevates the code to an un-earned status of "machine." This has given rise to all sorts of legal nonsense, most especially the notion that software can be patented. (The ramifications of this go far beyond the scope of this thread.)

@750, taking into account Bob_Mesibov's comment above, and my response, markup is not Turing-complete, and so is not "code." It is data, interpreted by code.

Food for thought: Are scripted, interpreted programs "data" or "code"? Think Bourne shell, Perl, BASIC.

What about bytecode? Think Python, Java, Lisp. But be careful with Java!
750

Nov 09, 2014
2:57 PM EDT
True, but markup do allow "plain text" to be up there with binary file formats (like the ones produced by a spreadsheet).

And speaking of bytecode, neither Intel nor AMD process straight x86 ISA these days. on CPUs from both companies it gets tuned into a RISC like set via an pre-processor/interpreter.

Turtles all the way down it seems.
gus3

Nov 09, 2014
3:07 PM EDT
@750:

Touché.
me1010

Nov 10, 2014
10:18 AM EDT
@gus3: Code may be considered non-data and still be an un-patentable mathematical algorithm.

Data generally refers to discrete items or objects, which don't 'do' anything themselves, but are acted upon by algorithms to produce new or refined data. Computer programming code is a machine. In fact, VHDL, is a great example of the code is the machine. The software patent problem is much more subtle than machine versus data. It's about defining the property status of collections of mathematical algorithms which have been implemented in code machines.

Examples of conundrum:

1. Intel develops a microprocessor. This microprocessor is 'rendered' onto a silicon die. The patent office issues a patent for the microprocessor.

2. Harry's Virtual Garage develops a microprocessor. This microprocessor is a virtual microprocessor which is 'rendered' via C and assembly. Does the patent office issue a patent?
Bob_Robertson

Nov 10, 2014
12:46 PM EDT
Abolish the patent office. It's nothing but destructive.
me1010

Nov 10, 2014
1:01 PM EDT
@Bob_Robertson:

Abolish Congress... ibid.

However, I would like to believe that the patent office and officers generally try to fulfill the mission given through law passed by Congress and signed by POTUS. I'm sure there are lots of invalid [not ideological invalid - but lawfully invalid] patents. But, my guess is that the vast majority of patents are valid considering the law rather than ideology.

Once upon time, I was a public servant. Most of us did our jobs as well as we could. However, are the jobs themselves - apart from the workers filling the role - necessary? In many cases - probably not. But the workers are good people and hard workers nonetheless. So, it's good that you called out the office rather than a rant on 'those patent office workers'...
jdixon

Nov 10, 2014
1:37 PM EDT
> Abolish Congress... ibid.

Nah. Just require them to do the work in a single 30 day session each year.
CFWhitman

Nov 10, 2014
2:26 PM EDT
I think that a lot of current patents are not really valid according to the original statutory patent law, but have been rendered legally valid by case law interpretation and additional statutes which practically turn the original statutory law inside out. "Evergreening" is blatantly in violation of the original statutes, and yet has been integrated into law by some very backward interpretation of what the original statutes mean.
me1010

Nov 10, 2014
2:46 PM EDT
@CFWhitman:

I disagree with the premise of your argument. Interpretation of the law is the mission of the courts. And, through the Constitution, the courts of the USA are common law entities - and the ruling of a federal court [unless overturned by a higher court] is law also via the Constitution. It's the job of Congress to redefine patent law if the public demands it. So, the courts in USA do have the broad authority to 'repaint' laws on the books... So, by definition, case law is valid law and in the realm of patents as well as all others. Thus, 'a lot of current patents' are really valid, even though not specifically included in the law as passed by Congress and signed by POTUS.

One could argue that the whole system of common law is flawed when applied to certain kinds of law. And I'll definitely buy that one... but one can not logically argue that the interpretation of law by the courts, in our common law type system, incorrectly validated certain cases of application of the Congressionally passed law.

So... Abolish Congress for failure to enact law that correctly defines the public will... buuttt... then again... what exactly is the 'public will'. Corporations are taxpaying entities, thus part of the public will. It could be argued that, as taxpaying entities, and through the lobbying of Congress voices the 'public will' -- and thus ensures that the 'will of people' is what is written in the larger sense... ahh... the simple solution is just as @jdixon indicates.
CFWhitman

Nov 10, 2014
4:39 PM EDT
@me1010

You may claim to disagree with the premise of my argument, but you never actually contradicted anything I said. Also, let's not pretend that business corporations were ever intended to have as much influence as they do in government by the people who originally set the government up.
me1010

Nov 10, 2014
5:14 PM EDT
I miss groklaw.
BernardSwiss

Nov 10, 2014
10:42 PM EDT
Maybe someone will make a "historical" documentary about the Groklaw story.

If they do, they could call it Desperately Seeking PJ
Bob_Robertson

Nov 11, 2014
10:27 AM EDT
Ooo! "Pam Number Theory"!
gus3

Nov 11, 2014
12:34 PM EDT
An Explanation of Computation Theory for Lawyers, by PolR:

HTML

PDF

Original Groklaw posting

Related, theory w/o legal emphasis:

A Problem Course in Mathematical Logic by Stefan Bilaniuk
750

Nov 11, 2014
4:02 PM EDT
There is also the lovely article going the other way: http://ansuz.sooke.bc.ca/entry/23

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!