Slashdot Mirror


Source Code as Human Language

Geoff Eldridge writes " An interesting interview with Tim O'Reilly by SunWorld's Cameron Laird and Kathryn Soraiz - "the most distinctive aspect of O'Reilly's vision of software is to see it as expression more than product" - "He consistently talks about applications in the languages of the theater or gallery." " Nice little piece. Definitely worth a read.

30 comments

  1. Nice sentiment, but by Anonymous Coward · · Score: 0

    it seems like scripters are constantly trying to belittle the utility of formal reasoning and careful work. has it never occured to them that it might be useful to have a compiler slap you around and tell you where you made a mistake? I'll take that any day over a runtime failure, however "soft" the failure might be. Even the mighty perl script does horribly wrong things sometimes.

  2. What's the best scripting language to learn? by Anonymous Coward · · Score: 0

    Yeah I know it's a dumb question.....I'm just wondering which scripting langauge has the most mind share. I've looked at Perl a bit but the syntax seems very confusing.......

  3. Source As Human Language? Confusing by Anonymous Coward · · Score: 0

    Don't mean to flame but I felt that the article was rather confusing and unfocused. Or maybe its just a holiday.

    Point: Oreilly claims that computers have changed focus from IBM/DEC to Microsoft/Oracle ie hardware to software and going to somewhere new in the future. I don't see it. Yeah DEC isn't around but INTEL more than took over that spot. I think hardware might not be in the news as much simply since INTEL dominates. The second Motorola or someone does something interesting to upset the balance it will come back. I feel he's wrong.

    Point: What does Open source have to do with a commerical concern such as AMAZON? Perhaps I missed the point or perhaps there is no point.

    Point: Software as speech? You mean the language or the constructs from it? If you mean the language definition (like Java being closed) well I disagree. Let the market decide. If you mean the tools that come from the language then "No Way!" Alas the article is rather confused and vague on this issue.

    Point: How the heck is scripting related to speech? This is completely bonkers.

    Point: Open source is not free speech. Open source is more like creating useful clipart and letting people use it w/o royalties. Comparing it to science and western civilization is absurd. He gets off on the wrong step by saying "Once you start thinking of computer source as a human language...." Excuse me but that statement and the notion it contains is quite absurd. The problem seems to be that computer languages are called "languages" not something more accurate like "codes" or "notations". I cannot believe the writer didn't feel ashamed after quoting that.

    Comparing free speech (a right that is difficult to come by in the world - and under attach in the US all the time ) to Open Source (the right to give away something you worked on - who really cares, its up to you) is simply not correct.

    If you want to support free speech give to the ACLU. If you want to support OSS give to the FSF. Don't confuse them.

    Peace
    Ron Rangel

  4. Perl IS Confusing by Anonymous Coward · · Score: 0

    When I started learning Perl I was fairly angry. Most UNIX tools use a common set of notations to express things. I felt like when Wall designed Perl his shift key was broken. I don't care for it but use since its everywhere and I have to adjust programs written in it.

    I thought PYTHON was the answer. Its not too bad but dont go and buy Guido's book. He's the designer of it. He might have designed PYTHON but he can not write. The oreily book is better. The reason I haven't used PYTHON much is that there is quite a lot of inertia towards it. "If we are going to use a nonstandard UNIX tool we must pick only one..." Perl is the choice.

    TCL/TK. TK is a wonderful tool for generating GUI stuff in X, Windoze or in Netscape. The problem is TCL is a goofy tool that if you get a subtle bug it mught take you quite a while to find. I use the TK part and tcl to glue it together.

    If you don't know AnY scripting then getting a handle on BASH or KSH would be in order. After that be sure to learn SED and AWK. I still use AWK all the time. Some of the newer tools outclass it but you will know where they are coming from and the limitations they are trying to blow away.

    Or you could simply go to your local bookseller for $4.99 a piece in the bargain section and sample.and get a version behind text on all the above

    Peace
    Ron

  5. Wish I knew that.... by Anonymous Coward · · Score: 0

    thanks for the info. I learned the hard way. The more I think of it the more that article didn't need to be published or posted here.

    Thanks again,

    Ron "CrescentCityRon"

  6. I'm sure you are joking but if not ... by Anonymous Coward · · Score: 0
    Pohl, I hope you were being fun and silly.

    Eh, AFAIK he's most of the time serious and right on the money...

    Computer "notations" are not rich enough to describe human thought.

    That is debatable (strong AI people exist, you know) but I'm not gonna go into it. I'm just going to point out a terminological confusion.

    The word language is used in several aceptions. The one you're thinking of is `natural language', which IMHO is synonymous with `human language' too. Pohl obviously is of the opinion they can be called "human languages" in the sense that "they are made by humans".

    Then again, there's the other, mathematical conception of `language', which is that of a subset of the set of all possible strings on an alphabet. When mathematicians, logicians and computer scientists talk about `language' they usally mean that. For example, in a mathematical logic course, one studies several families of logical languages (first order, second order, with/without identity, etc.); a finite automaton accepts regular languages while a push-down automaton accepts conxtext-free languages; C or Pascal are languages whose syntax is specified by a context-free grammar, and which are semantically interpreted by a compiler and/or interpreter.

    The most interesting part, for me, is that these two conceptions are not incompatible; in certain fields, like natural-language semantics and syntax, these two meanings of `language' meet. Thus, someone like Noam Chomsky frequently uses the word to mean both at the same time.

    They are not languages since they cannot communcate human thought

    You mean they cannot communicate the full range of human thought. Algorithms are contemplated by human thought, and computer languages communicate them quite nicely.

    You seem to limit the word `language' to mean only `natural languages', and this IMHO is the source of the whole discussion. However, how do you classify pidgin languages? I think the case could be made that those languages cannot communicate the full range of human thought, but only limited matters relating to the interests of their users (like trade).

  7. Java: "a traditional system language" by Anonymous Coward · · Score: 0

    Near the end of the review:

    "The O'Reilly & Associates catalogue has strong entries in traditional system languages such as C and Java."

    Yes, Java certainly has a rich tradition... it's gained impressive mindshare, at least.

  8. Source As Human Language? Confusing by Anonymous Coward · · Score: 0

    I think the whole overlying point is that scripting is 'expressing a desire for action'.

    In the context of the next generation of computer languages, I think he's pointing out that languages which 'express a desire for action on information' will be the next direction in which software will go.

    Scripts are interpreted, this means that the 'idea of expression' is 'contained within the script' therefore scripts are implicitly open source.

    In the sense that amazon.com uses scripting, I think he's pointing out that amazon.com uses 'open source' in the context that the 'idea of expression' is 'contained within the script' and is open to view.

    Open source is free speech because source code expresses a direction (meaning instruction) of action. Open source, which is open to modification and distribution, essentially means its implicit ability to 'instruct' or 'make cause for action' is also able to be modified and distributed.

    n.b. I think the article is speaking on a 'higher level' of abstraction. This article shows how English is excellent as a 'technical' language ( which we have a subject/predicate and verb) but horrible at expressing higher related abstract ideas which do not fit in the subject/predicate/verb schema. Perhaps if this article were written in Arabic then the article would be more to the point, since Arabic can express multi-dimensional as well as parallel operations on various sets of abstract ideas in which English simply can _not_ handle ;)

  9. perl -cw scriptfile.pl by Anonymous Coward · · Score: 0

    ... Handles it for me..

    btw: 'use strict;' is also extremely handy. All these things make life more difficult when initially scripting, but they make for cleaner scripts..

    - Otis

  10. Bad word. by Eric+S.+Smith · · Score: 1


    From the article:
    "failsoftness." Now, I guess this means "(fail-soft)-ness," meaning that failures in one place aren't catastrophic globally. But it could also, if poetically, mean "(fails-oft)-ness," being the quality of failing often. Maybe that's a term that could use replacing...

  11. What's the best scripting language to learn? by John+Campbell · · Score: 1

    Perl *is* a mess... it has the advantage, though, that most of the messiest bits are redundant (TMTOWTDI). You can forget about 'em without affecting your ability to program in the language at all. You can write Perl that looks like just about anything you want. For example, I've been programming C for ages, and just recently picked up Perl... my Perl programs tend to look like C with regexps. It's also possible to write Perl that does exactly the same thing, but looks like the diff of two sendmail.cfs. Most people's code, from what I've seen, is somewhere between.

  12. It's all about human thought by Anders+Andersson · · Score: 1
    Computer "notations" are not rich enough to describe human thought. Please translate the following english statement into any computer notation you please:

    "Last night the whiskey was thin and the glass was thick." - Langston Hughes.
    Graphical art, music, and architecture probably suffer from just the same deficiency. Have you tried translating the factual contents of that statement into either an oil painting or a fugue? What about its poetic qualities? Are you saying oil on canvas isn't rich enough to describe human thought?

    On the other hand, English isn't too good at explaining Da Vinci's Mona Lisa, or the geometry of the Mandelbrot fractal. Each kind of expression is optimized to deal with its preferred subset of human thought. Computer languages don't stand out from any of the others, except in a political context.

    On the Internet, the average image says about as much as 2.72 words.

  13. human but not natural by pohl · · Score: 1

    Programming languages are obviously languages (systems for constructing symbolic strings, within constraints of syntax, with semantic associations). They are human invention, and they allow humans to express thoughts. So why should they not be called "human languages"?

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  14. not joking by pohl · · Score: 1
    Computer "notations" are not rich enough to describe human thought.

    Must a language be so powerful that it can express all thoughts just to qualify as a "language?" If so, then I claim that languages do not exist, period. :-) English cannot express a huge universe of musical thoughts, for example.

    My claim was that computer languages allow humans to express thoughts, and never meant to imply all thoughts -- which would be a silly claim to make for any language!

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  15. Source As Human Language? Clear! by Frater+219 · · Score: 1

    One reason that the "source is language" meme is a good one to spread is that it would tend to bring programs under the protection of existing protections for speech and press. For instance, it would undercut encryption-export laws, whose Constitutionality in the U.S. has hinged in court on source *not* being speech.

    Your comparison of free software to free clip-art demonstrates this point even better: graphic arts are already considered speech, at least under U.S. law.

    Source code is an expression of ideas, just as much as a mathematical treatise is. The difference is that source code, besides *expressing* the ideas, *implements* them at the same time.

  16. Perl if you have good examples by Fastolfe · · Score: 1

    If you tend to learn by example, try to avoid a lot of the public domain code. 90% of the Perl code I come across is written so horribly and inconsistently that I tend to pull *ideas* from it and re-code it from scratch. I'm not trying to knock all of the Perl developers by saying that (I used to code pretty bad Perl myself when I was learning), but do try to find examples written by experienced programmers instead of novices. An O'Reilley book wouldn't hurt, either (and has examples of good examples!).

    Perl syntax is extremely flexible, which is why it might seem confusing. Once you figure it out, though, you'll find Perl to be extremely flexible and efficient.

    I am biased a bit here (being a Perl guy), and haven't used any of the competing languages, but I think Perl is the most widespread and general-purpose (though it's excellent when it comes to CGI and text processing).

  17. TMTOWTDI by Fastolfe · · Score: 1

    I'd have written it like:

    next unless $x && $y;

    I think that's a bit clearer. No offense, but "if (!$x || !$y)" doesn't seem very "well-written" to me. :)

  18. Source As Human Language? Confusing by AMK · · Score: 1
    I think O'Reilly's point was that, originally, hardware was the most important thing; you bought an IBM System 360, or a PDP-11, or whatever. Then the focus shifted to software; you now buy Windows or Unix, in order to run Excel or Oracle. Whether it runs on a chip made by Intel or AMD, Sun or Digital, isn't the focus. The way O'Reilly mentions infoware, he's forseeing a shift away from software, where you run little snippets of code inside a browser or Web server, which perform useful operations with a large data collection, such as the purchasing patterns of Amazon's customers. *Which* browser or Web server would, presumably, become irrelevant over time.

    And open source, because of the peer review which it allows, has often been compared to the process by which science refines its results and corrects errors, so the comparison isn't that far-fetched.

  19. What's the best scripting language to learn? by AMK · · Score: 1
    If you really can't handle Perl, Python is probably your next best bet. It is ultra-clean in design, and ultra OO. But waaaaay less fun.

    Actually, I've found it great fun; the user community is generally quite clever, and comp.lang.python is my counterexample whenever someone claims that all Usenet newsgroups are swamped in noise. Tim Peters's postings alone are worth the price of admission. (Recently I've noticed a sharply increasing number of simple questions from newbies on c.l.p; while that's good because it means the language is becoming more popular, I hope it doesn't change the newgroup's chemistry too much.)

    Also, try attending one of the Python conferences; they've been great fun for techies. At IPC7, the most recent conference, guess which presentation sparked the longest question-and-answer session? Ivan van Laningham's talk on the Mayan calendar. The session on parsers also interested a lot of people, and I netted a bunch of quotations for my Python quotation file; lots of Python users seem to be parser geeks, too.

    IPC7 also featured David Beazley's hilarious talk on Python and supercomputing, another audience favorite. Since he also talked a good deal about LLNL's Beowulf system, it would be on-topic for a Linux conference; someone should invite Beazley to Linux Expo. (Hint, hint...)

  20. I'll plug for Python by rafial · · Score: 1

    I found Perl to be powerful, but was always vaguely dissatisfied with the obscurity of its syntax, and the fact that it is so willing to let you shoot yourself in the foot. I've started working with Python now, and found it to be much cleaner, more maintainable, and strangely enough, it even appears to be more extensible. Go Python!

  21. Meta-Languages by korpiq · · Score: 1


    Great ideas you have on jvm functionalities ;)

    Like there is DTD for SGML, could there be a (useably) uniform spefication for (scripting) languages, so that you could embed functionality into, say, XML data: parts of the data itself could act as ad-hoc semi-active script, defining widget response calculus or repeating data?

    A meta-language should be able to present primitives such as block structure, test, repetition, call, data representation and inheritation markings, together with certain mutilations of these. With a few lines you should be able to redefine a new way to interpret parts of your data. With some more effort, you should be able to express more complicated compulinguistical developments.

    --

    I think, therefore thoughts exist. Ego is just an impression.
  22. Scripting by orabidoo · · Score: 1
    I think exactly the opposite of JavaScript: it is actually useful, but it doesn't make sense.

    It is useful, as in, it does things the developper might wnat to do, and that can't be done otherwise. Which means it can be great to use in a controlled environment, like an "intranet" where you trust the server

    It doesn't make sense on the web, because it lets the server control the client much more than the human in front of the client would reasonably want. For one thing, it lets the page open new windows, coming up wth all kinds of annoying popup ads, and even worse, sites that will deliberately make it hard for you to leave!

    Unless you happen to trust the site that you're visiting, the only reasonable default for javascript is OFF.

  23. Nice sentiment, but by orabidoo · · Score: 1

    perl is a compiler (compiles into some kind of internal bytecode, but that never prevented it from checking the program for consistency). and perl has good ways to enforce strict coding, just "use strict" and declare your variables etc. perl -w is your friend too.

  24. Perl IS Confusing by orabidoo · · Score: 1
    learn sed and awk?? that's the last bit of advice I would ever give to anyone learning Linux/Unix nowadays! I'd say learn perl (or python, if you're of that religion), the basics of shell scripting, and be done with it.

    coding anything more complicated than a few lines in shell script feels like masochism to me, and sed and awk are redundant once you know some perl (but not the other way around!).

  25. I'm sure you are joking but if not ... by orabidoo · · Score: 1
    more or less standard predicate notation for the above would be:

    thin'(E, whiskey) & thick'(E, glass) & last-night'(E).

    of course, you lose all kinds of implications and connotations...

  26. Scripting by Rayban · · Score: 1

    All you need for scripting is Perl (and possibly awk or sed). Even TCL/TK! I just wish one of those was adopted as the standard inline scripting language, not the broken, clunky Javascript.

    sigh

    --
    æeee!
  27. What's the best scripting language to learn? by claird · · Score: 1

    What has the biggest mindshare? Visual Basic, or
    JavaScript, or Perl, depending on how you define
    things.

    For a Linux audience, I'll recommend "How to choose a scripting language" .

  28. What's the best scripting language to learn? by claird · · Score: 1
    What has the biggest mindshare? Visual Basic, or JavaScript, or Perl, depending on how you define things.

    For a Linux audience, I'll recommend "A HREF = "http://www.sunworld.com/sunworldonline/swol-10-19 97/swol-10-scripting.html">How to choose a scripting language".

  29. Nice sentiment, but by claird · · Score: 1

    Neither O'Reilly nor I belittle formal reasoning.
    I apologize for any such impression.

    Let's take this topic to comp.software-eng; I'm
    more comfortable there.

  30. Source As Human Language? Confusing by claird · · Score: 1

    I apologize for any confusion I've promoted.

    One of the conventions of "Regular Expressions" is
    to look at the bottom for references to such other
    pieces as O'Reilly's "Open Source Revolution".
    Perhaps reading that will give you what you're
    after.