Objective-J


Objective-J est un langage de programmation développé en même temps que le framework Cappuccino. Sa syntaxe est sensiblement identique à celle de Objective-C. Par ailleurs il partage avec Javascript la même relation qu'il y a entre l'Objective-C et le langage C : il s'agit d'une sorte de sur-ensemble ajoutant la notion d'héritage ainsi que le typage dynamique du style Smalltalk/Objective-C au JavaScript.

Objective-J
Date de première version 2008
Paradigme orienté objet, réflexif, impératif, fonctionnelle, Script
Auteur 280 North, Inc.
Dernière version 0.6
Typage dynamique, faible, duck
Influencé par Objective-C, JavaScript
Implémentations Cappuccino
Licence LGPL
Site web http://cappuccino.org/

Les programmes écrits en Objective-J ont besoin d'être compilés avant de pouvoir être lancés dans un navigateur web. Cette compilation peut être effectuée directement dans le navigateur au moment de l'exécution par un compilateur qui compile les programmes Objective-J en pur code Javascript. Le compilateur Objective-J est écrit en JavaScript, de ce fait le déploiement de programme écrit en Objective-J ne nécessite pas de plugin attaché au navigateur.

Application

La première utilisation connue de l'Objective-J a été faite avec le framework Cappuccino pour le développement de l'application web 280Slides. Bien que l'Objective-J peut être utilisé (et a été conçu) indépendamment du framework Cappuccino, Objective-J a été, à la base, inventé pour supporter le développement web avec Cappuccino.

Syntaxe

Objective-J est un sur-ensemble du Javascript, cela implique que n'importe quel code JavaScript valide est aussi valide dans du code Objective-J. L'exemple suivant montre la déclaration en Objective-J d'une classe nommée Address, cette classe est une sous classe de l'objet de base CPObject qui joue le même rôle que le NSObject en Objective-C/Cocoa. Même si ce n'est pas le même nom pour l'objet de base, ce code pourrait être aussi un exemple pour une déclaration de classe en Objective-C.

@implementation Address : CPObject
{
   CPString name;
   CPString city;
}
- (id)initWithName:(CPString)aName city:(CPString)aCity
{
    self = [super init];

    name = aName;
    city = aCity;

    return self;
}
-(void)setName:(CPString)aName
{
      name = aName;
}
-(CPString)name
{
      return name;
}  
+(id)newAddressWithName:(CPString)aName city:(CPString)aCity
{
      return [[self alloc] initWithName:aname city:aCity];
}

@end

Tout comme en Objective-C, la déclaration des méthodes de classes et des méthodes d'instances commencent respectivement par '+' (plus) et '-' (moins).

Gestion de la mémoire

Contrairement à l'Objective-C, les objets en Objective-J n'ont pas besoin d'être libérés étant donné qu'ils sont automatiquement libérés par le ramasse-miettes en anglais : Garbage Collector de JavaScript.

Voir aussi

Article connexe

Liens externes

  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.