Objective-J

Un article de Wikipédia, l'encyclopédie libre.

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 https://www.cappuccino.dev


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.

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Article connexe[modifier | modifier le code]

Liens externes[modifier | modifier le code]