Arc (programming language): Difference between revisions

Content deleted Content added
Filled in 9 bare reference(s) with reFill ()
Dutral (talk | contribs)
m References format.
Line 4:
 
== History==
In 2001, [[Paul Graham (computer programmer)|Paul Graham]] announced that he was working on a new [[dialect (computing) |dialect]] of [[Lisp (programming language) |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 have been written in Arc, most notably the [[Hacker News]] web forum and news aggregator program. Arc itself is written in [[Racket (programming language) |Racket]].<ref>{{cite web |url= https://arclanguage.github.io/ |title= Arc Programming Language | publisher = Git hub}}</ref>
 
In the essay ''Being Popular''<ref>{{cite web|url=http://www.paulgraham.com/popular.html|title=Being Popular |work first =paulgraham.com Paul | last = Graham}}</ref> Graham describes a few of his goals for the language. While many of the goals are very general ("Arc should be hackable," "there should be good [[Library (computing)|libraries]]"), he did give some specifics. For instance, he believes that it is important for a language to be terse:
<blockquote>{{Quote | 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. </blockquote>}}
 
He also stated that it is better for a language to only implement a small number of "axioms", even when that means the language may not have features that large organizations want, such as [[Object-oriented programming |object-orientation]] (OO). In fact, Graham feels that OO is not useful as its methods and patterns are just "good design", and he sees the language features used to implement OO as partially mistaken.<ref>{{cite web |url= http://www.paulgraham.com/noop.html |title=Why Arc Isn't Especially Object-Oriented |publisher first =Paulgraham.com Paul |date last = Graham | accessdate= 2013-01-23}}</ref><ref>{{cite web|url= http://www.paulgraham.com/arcfaq.html |title= Arc FAQ |publisher first =Paulgraham.comPaul |date last = Graham | accessdate=2013-01-23}}</ref> At Arc's introduction in 2008, Graham stated one of its benefits was its brevity.<ref>{{cite web|url= http://www.linux-magazine.com/Online/News/Arc-Makes-Programs-Shorter |title=Arc Makes Programs Shorter | newspaper = Linux magazine}}</ref>
 
A controversy among Lisp programmers is whether, and how much, the [[S-expression]]s of the language should be complemented by other forms of [[syntax]]. 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 [[profiling (computer programming) |profiler]].{{Citation needed | date = 2015 Nov}}
 
=== Reception ===
Upon its release in 2008, Arc generated mixed reactions, with some calling it simply an extension to Lisp or [[Scheme (programming language)|Scheme]] and not a programming language in its own right. Others applauded Arc for stripping Lisp down to bare essentials. Shortly after its release Arc was ported to [[JavaScript]], as well as being supported by ''Schemescript'', an IDE based on [[Eclipse (IDE)]].<ref>{{cite web | work = The Register |url= http://www.theregister.co.uk/2008/02/07/lisp_arc_challenge/ | date = 2008-02-07 | place = [[United Kingdom |UK]] | title= Web pioneer hits critics with Lisp gauntlet}}</ref>
 
== Examples ==
 
[[Hello world]] in Arc :
<source lang="lisp">
Line 23 ⟶ 22:
</source>
 
A program used by Paul Graham to illustrate Arc's terseness.<ref>{{cite web|url= http://www.paulgraham.com/arcchallenge.html |title=Take the Arc Challenge|work first =paulgraham.com Paul | last = Graham}}</ref> It produces a form with one field at the url "/said". 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.
It produces a form with one field at the url "/said". 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.
 
<source lang="lisp">
Line 36 ⟶ 34:
 
===Official version===
The first publicly released version of Arc was made available on 29 January 2008,<ref>{{cite webwe b|url= http://paulgraham.com/arc0.html|title=Arc's Out|work first =paulgraham.com Paul | last = Graham}}</ref> implemented on top of [[Racket (programming language)|Racket]] ("PLT-Scheme" at that time). The release comes in the form of a .tar archive, containing the Racket source code for Arc. A tutorial<ref>[{{Citation | title = Arc | publisher = Y combinator | contribution-url = http://ycombinator.com/arc/tut.txt tutorial]| contribution = Tutorial}}.</ref> and a discussion forum<ref>{{cite web |url= http://arclanguage.org/forum|title=Arc Forum|work=arclanguage.org Arc language}}</ref> are also available. The forum uses the same program that [[Hacker News|news.ycombinator.com]] does, and is itself written in Arc.
The forum uses the same program that [[Hacker News|news.ycombinator.com]] does, and is itself written in Arc.
 
=== Unofficial versions ===