Arc es un lenguaje de programación , un dialecto del lenguaje Lisp , desarrollado por Paul Graham y Robert Morris . Es un software gratuito y de código abierto publicado bajo Artistic License 2.0.
Paradigmas | Multi-paradigma : funcional , meta , procedimental |
---|---|
Familia | Ceceo |
Diseñada por | Paul Graham |
Desarrolladores | Paul Graham, Robert Morris, comunidad Arc |
Apareció por primera vez | 29 de enero de 2008 |
Lanzamiento estable | 3.2 / 28 de octubre de 2018 [1] |
Disciplina de mecanografía | Dinámica |
Lenguaje de implementación | Raqueta |
Plataforma | IA-32 , x86-64 |
SO | Linux |
Licencia | Licencia Artística 2.0 |
Extensiones de nombre de archivo | .arco |
Sitio web | arclanguage |
Implementaciones importantes | |
Arco, Anarki, Arcadia, Arco iris | |
Influenciado por | |
Lisp , esquema |
Historia
En 2001, Paul Graham anunció que estaba trabajando en un nuevo dialecto de Lisp llamado Arc . A lo largo de los años desde entonces, ha escrito varios ensayos que describen características u objetivos del lenguaje, y algunos proyectos internos en la incubadora de empresas emergentes de Graham llamada Y Combinator se han escrito en Arc, sobre todo el foro web Hacker News y el programa agregador de noticias. Arc está escrito en Racket . [2]
Motivos
En el ensayo Being Popular [3], Graham describe algunos de sus objetivos para el idioma. Si bien muchos de los objetivos son muy generales ("Arc debería ser pirateable", "debería haber buenas bibliotecas "), dio algunos detalles. Por ejemplo, cree que es importante que un idioma sea conciso:
No estaría lejos de la verdad decir que un hacker a punto de escribir un programa decide qué lenguaje usar, al menos inconscientemente, en función del número total de caracteres que tendrá que teclear. Si esto no es precisamente lo que piensan los hackers, un diseñador de lenguaje haría bien en actuar como si lo fuera.
También afirmó que es mejor para un lenguaje implementar solo una pequeña cantidad de axiomas , incluso cuando eso significa que el lenguaje puede no tener características que las grandes organizaciones desean, como la orientación a objetos (OO). Además, Graham piensa que OO no es útil ya que sus métodos y patrones son simplemente "buen diseño", y considera que las características del lenguaje utilizadas para implementar OO están parcialmente equivocadas. [4] [5] En la introducción de Arc en 2008, Graham declaró que uno de sus beneficios era su brevedad. [6]
Una controversia entre los programadores Lisp es si, y en qué medida, las expresiones-s del lenguaje deben complementarse con otras formas de sintaxis . Graham piensa que la sintaxis agregada debería usarse en situaciones donde las expresiones s puras serían demasiado detalladas, diciendo: "No creo que debamos oponernos religiosamente a la introducción de sintaxis en Lisp". Graham también piensa que los problemas de eficiencia deberían resolverse dándole al programador un buen perfilador . [7]
Recepción
Cuando se lanzó en 2008, Arc generó reacciones encontradas, y algunos lo llamaron simplemente una extensión de Lisp o Scheme y no un lenguaje de programación por derecho propio. Otros aplaudieron a Arc por despojar a Lisp de lo esencial. Poco después de su lanzamiento, Arc fue portado a JavaScript y estaba siendo compatible con Schemescript , un entorno de desarrollo integrado (IDE) basado en Eclipse . [8]
Ejemplos de
Hola mundo en Arc:
( prn "Hola, mundo" )
Para ilustrar la concisión de Arc, Graham utiliza un breve programa. Produce un formulario con un campo en la URL "/ said". Cuando se envía el formulario, conduce a una página con un enlace que dice "haga clic aquí", que luego conduce a una página con el valor del campo de entrada original. [9]
( defop dijo req ( aform [onlink "haga clic aquí" ( pr "dijiste:" ( arg _ "foo" )) ] ( entrada "foo" ) ( enviar )))
Versiones
Versión oficial
La primera versión de Arc publicada públicamente estuvo disponible el 29 de enero de 2008, [10] implementada en Racket (entonces llamado PLT-Scheme). El lanzamiento viene en forma de archivo .tar , que contiene el código fuente de Racket para Arc. También están disponibles un tutorial [11] y un foro de discusión [12] . El foro usa el mismo programa que Hacker News y está escrito en Arc.
Versiones no oficiales
Debido a la falta de actualizaciones en la rama oficial de Arc, algunos miembros de la comunidad Arc iniciaron sus propios repositorios con modificaciones, extensiones y bibliotecas no oficiales. Una versión, Anarki , [13] permitió [14] a cualquier persona enviar cambios al proyecto y tiene una wiki administrada por la comunidad. [15]
Rainbow [16] es una implementación de Arc en Java .
Arcadia [17] es una implementación de Arco en C .
Referencias
- ^ "Foro de Arc: Dile a Arc: Arc 3.2" . Arclanguage.org . Consultado el 7 de noviembre de 2018 .
- ^ "Arc Forum: instalar" . Arclanguage.org . Consultado el 7 de noviembre de 2018 .
- ^ Graham, Paul (mayo de 2001). "Ser popular" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ Graham, Paul. "Por qué Arc no está especialmente orientado a objetos" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ Graham, Paul. "Preguntas frecuentes sobre Arc" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ Huber, Mathias (8 de febrero de 2008). "El arco hace que los programas sean más cortos" . Revista Linux . Lawrence, Kansas: Linux New Media USA . Consultado el 25 de noviembre de 2018 .
- ^ Graham, Paul (mayo de 2001). "Cinco preguntas sobre el diseño del lenguaje" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ "Web pioneer golpea a los críticos con Lisp guantelete" . El registro . Reino Unido . 2008-02-07.
- ^ Graham, Paul (febrero de 2008). "Acepta el desafío del arco" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ Graham, Paul (29 de enero de 2008). "Arc's Out" . PaulGraham.com . Consultado el 5 de diciembre de 2018 .
- ^ "Tutorial de arco" . Paul Graham . Consultado el 5 de diciembre de 2018 ..
- ^ "Arc Forum" . Lenguaje de arco .
- ^ Rapp, Kenneth (kennethrapp) (14 de noviembre de 2018). "Anarki" . GitHub . Consultado el 5 de diciembre de 2018 .
- ^ Agaram, Kartik (akkartik) (27 de mayo de 2013). "Anuncio: anarki ya no es un compromiso mundial" . Arc Forum . Lenguaje de arco . Consultado el 5 de diciembre de 2018 .
- ^ "Arc Lang Wiki" . Sitios . Consultado el 5 de diciembre de 2018 .
- ^ Dalton, Conan (conanita) (12 de octubre de 2010). "Arco iris" . GitHub . Consultado el 5 de diciembre de 2018 .
- ^ Kim, Taegyoon (kimtg) (19 de agosto de 2018). "Arcadia" . GitHub . Consultado el 5 de diciembre de 2018 .
enlaces externos
- Página web oficial
- Tutorial
- Anarki en GitHub