Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Some time ago, I wondered about coming up with a useful definition of "scripting language". I concluded back then that there isn't one. Any definition either ends up being so broad that you start including things you probably shouldn't (like ASM), or so narrow that it almost produces an empty set. Classical definitions, such as making scripting a synonym for interpreted, falls down as "modern" techniques like virtual machines and bytecode tend to blur the line between compilers and interpreters.

While browsing some of Paul Graham's essays, I started reading Being Popular, which discusses how programming languages get to be popular. One of the ways he suggests is:

To become popular, a programming language has to be the scripting language of a popular system. Fortran and Cobol were the scripting languages of early IBM mainframes. C was the scripting language of Unix, and so, later, was Perl. Tcl is the scripting language of Tk. Java and Javascript are intended to be the scripting languages of web browsers.

Here, in my interpretation, Paul is putting forth a totally different defintion of "scripting language": It's whatever language you use to get stuff done under a given system.

Note that this definition cannot be used in a derogatory way. It makes no sense to lambast a system just because it's the one you use to get work done. It's entirely possible that the language is not the best for your work, but if you were to replace it with another language, then the new language would become your scripting language.

Paul also laments that LISP is not the scripting language for any existing system, save Emacs. The one system where it was, the LISP Machine, died out long ago. He also readily admits that LISP makes a poor scripting language in a Unix environment.

As it happens, I do know of a reasonably popular program that uses LISP as a scripting language: Zillions of Games, a generic AI engine that can learn to play many different kinds of games. A LISP-like language is available for users to define their own games. (And no, I don't work for them :)

"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.

In reply to At Last, a Useful Definition of "Scripting Language" by hardburn

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (6)
As of 2023-12-11 13:22 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (41 votes). Check out past polls.