Arc (programming language)
Encyclopedia
Arc is a dialect of the Lisp programming language
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...

 now under development by Paul Graham and Robert Morris
Robert Tappan Morris
Robert Tappan Morris, , is an American computer scientist, best known for creating the Morris Worm in 1988, considered the first computer worm on the Internet - and subsequently becoming the first person convicted under the Computer Fraud and Abuse Act.He went on to co-found the online store...

.

History

In 2001 Paul Graham announced that he was working on a new dialect of Lisp named "Arc". Over the years since, he has written several essays describing features or goals of the language, and some internal projects at Y Combinator
Y Combinator
Y Combinator is an American seed-stage startup funding firm, started in March 2005. Y Combinator provides seed money, advice, and connections at two 3-month programs per year...

 have been written in Arc, most notably the Hacker News
Hacker News
Hacker News is a social news website about computer hacking and startup companies, run by Paul Graham's funding firm Y Combinator. It is different from other social news websites in that there is no option to down vote submissions; submissions can either be voted up or not voted on at all...

 web forum and news aggregator program.

In the essay Being Popular Graham describes a few of his goals for the language. Among the claimed design goals are that "Arc should be hackable" and "there should be good libraries"; Graham also proposes:
It would not be far from the truth to say that a hacker about to write a program decides what language to use, at least subconsciously, based on the total number of characters he'll have to type. If this isn't precisely how hackers think, a language designer would do well to act as if it were.


Paul Graham suggests John McCarthy
John McCarthy (computer scientist)
John McCarthy was an American computer scientist and cognitive scientist. He coined the term "artificial intelligence" , invented the Lisp programming language and was highly influential in the early development of AI.McCarthy also influenced other areas of computing such as time sharing systems...

's original Lisp to have been built wholly on a small set of "axioms", and maintains that Arc ought to be constructed in a similar way, even when that means the language may not have features that large organizations want. Specifically, Graham feels that object-orientation is not useful as OO methods and patterns are just "good design," and he sees the language features used to implement OO as partially mistaken.

A controversy among Lisp programmers is if, and how much, the S-expressions of the language should be complemented by other forms of syntax
Syntax
In linguistics, syntax is the study of the principles and rules for constructing phrases and sentences in natural languages....

. Graham feels that additional syntax should be used in situations where pure S-expressions would be overly verbose, saying, "I don't think we should be religiously opposed to introducing syntax into Lisp." Graham also feels that efficiency problems should be solved by giving the programmer a good profiler
Performance analysis
In software engineering, profiling is a form of dynamic program analysis that measures, for example, the usage of memory, the usage of particular instructions, or frequency and duration of function calls...

.

Examples

Hello world in Arc :

(prn "Hello, World")


A program used by Paul Graham to illustrate Arc's terseness.
It produces at the url "/said" a form with one field. When the form is submitted, it leads to a page with a link that says "click here", which itself leads to a page with the value of the original input field.


(defop said req
(aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
(input "foo")
(submit)))

Official version

The first publicly released version of Arc was made available on 29 January 2008, implemented on top of Racket ("MzScheme" at that time). The release comes in the form of a .tar archive, containing the Racket source code for Arc. A tutorial and a discussion forum are also available.
The forum uses the same program that news.ycombinator.com
Hacker News
Hacker News is a social news website about computer hacking and startup companies, run by Paul Graham's funding firm Y Combinator. It is different from other social news websites in that there is no option to down vote submissions; submissions can either be voted up or not voted on at all...

, and is itself written in Arc.

Unofficial versions

Due to the slow development of the official Arc branch, some members of the Arc community started unofficial repositories with unofficial emendations, extensions and libraries. One version, Anarki, was started to continue development after some members of the community came to feel that the development of Arc centralized under Paul Graham had become stagnant.

Rainbow is an implementation of Arc in java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK