Arc (programming language): Difference between revisions

Content deleted Content added
Minor fixes
Stylewiki (talk | contribs)
specify Arc has been ported to Common Lisp
 
(24 intermediate revisions by 19 users not shown)
Line 1:
{{Short description|Open-source programming language}}
{{Distinguish|ARC Macro Language}}
{{Infobox programming language
Line 17 ⟶ 18:
| typing = [[Dynamic typing|Dynamic]]
| scope =
| programming language = [[Racket (programming language)|Racket]], [[Common Lisp (programming language)|Common Lisp]]
| platform = [[IA-32]], [[x86-64]]
| operating system = [[Linux]]
Line 32 ⟶ 33:
'''Arc''' is a [[programming language]], a [[Dialect (computing)|dialect]] of the language [[Lisp (programming language)|Lisp]], developed by [[Paul Graham (programmer)|Paul Graham]] and [[Robert Tappan Morris|Robert Morris]]. It is [[free and open-source software]] released under the [[Artistic License]] 2.0.
 
== History ==
In 2001, Paul Graham announced that he was working on a new [[Dialect (computing)|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 Graham's [[Startup company|startup]] [[business incubator]] named [[Y Combinator]] have been written in Arc, most notably the [[Hacker News]] web forum and news aggregator program. Arc is written in [[Racket (programming language)|Racket]].<ref>{{cite web |url=http://arclanguage.org/install |title=Arc Forum: install |website=Arclanguage.org |access-date=2018-11-07}}</ref>
{{Lisp}}
 
==Motives==
In the essay ''Being Popular''<ref>{{cite web |url=http://www.paulgraham.com/popular.html |title=Being Popular |last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date=2018-12-05}}</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 example, he believes it is important for a language to be terse:
{{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.}}
 
Line 48:
 
== Examples ==
[["Hello, World!" program|Hello world]] in Arc :
<sourcesyntaxhighlight lang="lisp">
(prn "Hello, World")
</syntaxhighlight>
</source>
 
To illustrate Arc's terseness, Graham uses a brief program. 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 then leads to a page with the value of the original input field.<ref>{{cite web |url=http://www.paulgraham.com/arcchallenge.html |title=Take the Arc Challenge |last=Graham |first=Paul |date=February 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref>
<sourcesyntaxhighlight lang="lisp">
(defop said req
(aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
(input "foo")
(submit)))
</syntaxhighlight>
</source>
 
==Versions==
 
===Official version===
The first publicly released version of Arc was made available on 29 January 2008,<ref>{{cite web |url=http://www.paulgraham.com/arc0.html |title=Arc's Out |last=Graham |first=Paul |date=29 January 2008 |website=PaulGraham.com |access-date=2018-12-05}}</ref> implemented on [[Racket (programming language)|Racket]] (named PLT-Scheme then). The release comes in the form of a [[Tar (computing)|.tar]] archive, containing the Racket [[source code]] for Arc. A tutorial<ref>{{cite web |url=http://www.arclanguage.org/tut.txt |title=Arc Tutorial |author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Paul Graham |access-date=2018-12-05}}.</ref> and a discussion forum<ref>{{cite web |url=http://arclanguage.org/forum |title=Arc Forum |website=Arc language}}</ref> are also available. The forum uses the same program that [[Hacker News]] does, and is written in Arc.{{citation needed|date=June 2025}}
 
=== Unofficial versions ===
Due to lack of updates in the official Arc branch, some members of the Arc [[Community of practice|community]] started their own repositories with unofficial modifications, extensions, and libraries. One version, ''Anarki'',<ref>{{cite web |url=https://github.com/arclanguage/anarki |title=Anarki |last=Rapp |first=Kenneth (kennethrapp) |date=14 November 2018 |website=GitHub |access-date=2018-12-05}}</ref> permitted<ref>{{cite web |url=http://arclanguage.org/item?id=17707 |title=Announcement: anarki is no longer world-committable |last=Agaram |first=Kartik (akkartik) |date=27 May 2013 |website=Arc Forum |publisher=Arc language |access-date=2018-12-05}}</ref> anyone to submit changes to the project and has a community managed wiki.<ref>{{cite web |url=https://sites.google.com/site/arclanguagewiki |title=Arc Lang Wiki |author=<!-- Unstated. --> |date=<!-- Unstated. --> |website=Sites |publisher=Google |access-date=2018-12-05}}</ref>
 
''Rainbow''<ref>{{cite web |url=https://github.com/conanite/rainbow |title=Rainbow |last=Dalton |first=Conan (conanite) |date=12 October 2010 |website=GitHub |access-date=2018-12-05}}</ref> is an implementation of Arc in [[Java (programming language)|Java]].
 
''Arcadia''<ref>{{cite web |url=https://github.com/kimtg/Arcadia |title=Arcadia |last=Kim |first=Taegyoon (kimtg) |date=19 August 2018 |website=GitHub |access-date=2018-12-05}}</ref> is an implementation of Arc in [[C (programming language)|C]].
 
''Arc++''<ref>{{cite web |url=https://github.com/kimtg/Arcpp |title=Arcpp |last=Kim |first=Taegyoon (kimtg) |date=13 August 2023 |website=GitHub |access-date=2023-08-13}}</ref> is an implementation of Arc in [[C++]].
 
===Timeline of LISP Dialects===
{{Lisp}}
 
==References==