Objective-J es un lenguaje de programación desarrollado como parte del marco de desarrollo web Cappuccino . Su sintaxis es casi idéntica a la sintaxis de Objective-C y comparte con JavaScript la misma relación que tiene Objective-C con el lenguaje de programación C : la de ser un superconjunto estricto, pero pequeño; agregando herencia tradicional y despacho dinámico estilo Smalltalk / Objective-C . JavaScript puro, al ser un lenguaje basado en prototipos , ya tiene una noción de orientación y herencia de objetos, pero Objective-J agrega el uso de programación basada en clases a JavaScript.
Paradigma | Multi-paradigma : reflexivo , orientado a objetos , funcional , imperativo , scripting |
---|---|
Desarrollador | Desarrolladores y comunidad de Cappuccino Core. |
Apareció por primera vez | 2008 |
Disciplina de mecanografía | dinámico , débil , pato |
Licencia | LGPL |
Sitio web | cappuccino-project.org |
Influenciado por | |
Objective-C , JavaScript |
Los programas escritos en Objective-J deben procesarse previamente antes de ser ejecutados por una máquina virtual JavaScript de un navegador web. Este paso puede ocurrir en el navegador web en tiempo de ejecución o por un compilador que traduce los programas Objective-J en código JavaScript puro. El compilador Objective-J está escrito en JavaScript; en consecuencia, la implementación de programas Objective-J no requiere un complemento de navegador web . Objetivo-J se puede compilar y ejecutar en Node.js .
Aplicaciones
El primer uso ampliamente conocido de Objective-J fue en la aplicación web 280 Slides, basada en Cappuccino, que fue desarrollada por la propia 280 North. Aunque Objective-J se puede usar (y ha sido diseñado) independientemente del marco de Cappuccino, Objective-J se ha inventado principalmente para apoyar el desarrollo web en Cappuccino.
Aplicaciones diseñadas con Cappuccino Framework [1]
- Elefante rw
- sinsonte
- GithubIssues
- Enstore (hasta octubre de 2013, lo reescribieron usando Ember [2] )
Sintaxis
Objective-J es un superconjunto de JavaScript, lo que significa que cualquier código JavaScript válido también es código Objective-J válido.
El siguiente ejemplo muestra la definición e implementación en Objective-J de una clase llamada Dirección; esta clase extiende el objeto raíz CPObject, que juega un papel similar al NSObject de Objective-C. Este ejemplo difiere del tradicional Objective-C en que el objeto raíz refleja el marco subyacente de Cappuccino a diferencia de Cocoa , Objective-J no usa punteros y, como tal, las definiciones de tipo no contienen caracteres de asterisco. Las variables de instancia siempre se definen en @implementation.
@ Dirección de implementación : CPObject { CPString name ; CPString city ; }- ( id ) initWithName: ( CPString ) aName ciudad: ( CPString ) aCity { self = [ super init ]; nombre = unNombre ; ciudad = aCiudad ; volver a sí mismo ; }- ( void ) setName: ( CPString ) aName { nombre = aName ; }- ( CPString ) nombre { nombre de retorno ; }+ ( id ) newAddressWithName: ( CPString ) aName ciudad: ( CPString ) aCity { return [[ self alloc ] initWithName : aName ciudad : aCity ]; }@final
Al igual que con Objective-C, las definiciones de método de clase y las definiciones de método de instancia comienzan con '+' (más) y '-' (guión), respectivamente.
Gestión de la memoria
Objective-C usa ARC (Conteo automático de referencias) para desasignar objetos no utilizados. En Objective-J, el recolector de basura de JavaScript desasigna automáticamente los objetos .
Ver también
Referencias
- ^ "Demos en Cappuccino" . Demos en Cappuccino . Archivado desde el original el 25 de agosto de 2013 . Consultado el 26 de febrero de 2011 .
- ^ http://blog.acclivitynyc.com/post/64981755172/dumped-cappuccino-and-switched-to-ember
enlaces externos
- Página web oficial
- "Objetivo de aprendizaje-J" . Marco web Cappuccino.