Arc (programming language): Difference between revisions

Content deleted Content added
Yobot (talk | contribs)
m WP:CHECKWIKI error fixes using AWB (11303)
<ref></ref>
Line 1:
[[File:Paul Graham programming.jpg|thumb|right[[Paul Graham (computer programmer)|Paul Graham]] in 2007.]]
 
'''Arc''' is a [[dialect (computing)|dialect]] of the [[Lisp programming language]] developed by [[Paul Graham (computer programmer)|Paul Graham]] and [[Robert Tappan Morris|Robert Morris]].
 
== 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}}</ref>
 
In the essay [''Being Popular''<ref>http://www.paulgraham.com/popular.html Being Popular]</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> 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=Paulgraham.com |date= |accessdate=2013-01-23}}</ref><ref>{{cite web|url=http://www.paulgraham.com/arcfaq.html |title=Arc FAQ |publisher=Paulgraham.com |date= |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}}</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]].
Line 40:
 
=== 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''',<ref>[http://github.com/arclanguage/anarki Anarki Repository on Github]</ref> permitted <ref>[http://arclanguage.org/item?id=17707 May 2013 announcement: anarki is no longer world-committable]</ref> anyone to submit changes to the project. The community-managed wiki<ref>[https://sites.google.com/site/arclanguagewiki The arc language wiki]</ref> is a better source of information than the official site at this point.{{citation needed|date=December 2012}}
 
'''Rainbow'''<ref>[https://github.com/conanite/rainbow Rainbow, an implementation of Arc in java by Conan Dalton]</ref> is an implementation of Arc in [[Java (programming language)|Java]].