Arc (programming language): Difference between revisions

Content deleted Content added
History: Fixed a broken reference
Tags: Mobile edit Mobile web edit
WP:REFerence WP:CITation Template:Cite web parameters: adds, fills, updates, reorders, move to paragraph end. Small WP:EoS WP:COPYEDIT: clarify.
Line 37:
 
==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 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.}}
 
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). Further, Graham thinks that OO is not useful as its methods and [[Software design pattern|patterns]] are just "good design", and he views the language features used to implement OO as partly mistaken.<ref>{{cite web |url=http://www.paulgraham.com/noop.html |title=Why Arc Isn't Especially Object-Oriented |last=Graham |first=Paul |website=PaulGraham.com |access-date=20132018-0112-2305}}</ref><ref>{{cite web |url=http://www.paulgraham.com/arcfaq.html |title=Arc FAQ |last=Graham |first=Paul |website=PaulGraham.com |access-date=20132018-0112-2305}}</ref> At Arc's introduction in 2008, Graham stated one of its benefits was its brevity.<ref>{{cite magazine |last=Huber |first=Mathias |date=2008-02-08 |url=http://www.linux-magazine.com/Online/News/Arc-Makes-Programs-Shorter |title=Arc Makes Programs Shorter |magazine=Linux Magazine |___location=Lawrence, Kansas |publisher=Linux New Media USA |access-date=2018-11-25}}</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 thinks that added 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 thinks that efficiency problems should be solved by giving the programmer a good [[Profiling (computer programming)|profiler]].<ref>{{cite web |url=http://www.paulgraham.com/langdes.html |title=Five Questions About Language Design |last=Graham |first=Paul |date=May 2001 |website=PaulGraham.com |access-date= 2018-12-05}}</ref>
 
=== Reception ===
Line 53:
</source>
 
Graham uses a brief program toTo illustrate Arc's terseness.<ref>{{cite, webGraham |url=http://www.paulgraham.com/arcchallenge.htmluses |title=Takea thebrief Arc Challenge |last=Graham |first=Paul |website=PaulGrahamprogram.com |access-date= }}</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 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>
<source lang="lisp">
(defop said req
Line 64:
 
===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.
 
=== Unofficial versions ===
Due to lack of updates in the official Arc branch, some members of the Arc [[Community of practice|community]] started unofficial repositories with unofficial emendations, 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 |website=Arc Forum |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 |website=GitHub |last=Dalton |first=Conan (conanite) |date=12 October 2010 |website=GitHub |access-date=2018-1112-2505}}</ref> is an implementation of Arc in [[Java (programming language)|Java]].
 
''Arcadia''<ref>{{cite web |url=https://github.com/kimtg/Arcadia |title=Arcadia |website=GitHub |last=Kim |first=Taegyoon (kimtg) |date=19 August 2018 |website=GitHub |access-date=2018-1112-2505}}</ref> is an implementation of Arc in [[C (programming language)|C]].
 
==References==
{{reflist Reflist|64em}}
 
==External links==