Objective-J

Objective-J - це мова програмування, яка була розроблена у складі веб-фреймворку Cappuccino. Синтаксис мови майже ідетичний з синтаксисом Objective-C та зберігає таке ж відношення щодо JavaScript, як Objective-C щодо C, а саме: є строгою, проте невеликою, надмножиною мови; додає традиційний механізм наслідування та динамічної відправки повідомлень у стилі Smalltalk/Objective-C. В чистому JavaScript, що базується на використанні прототипів, частково реалізовані відношення між об’єктами та наслідування, проте Objective-J доповнює JavaScript повноцінною можливістю програмувати класи.

Objective-J
Парадигма Декілька: рефлективна, об’єктно-орієнтована, функціональна, імперативна, скриптова
Дата появи 2008
Розробник 280 North, Inc.
Система типізації динамічна, слабка, duck
Під впливом від Objective-C, JavaScript
Ліцензія LGPL
Вебсайт cappuccino.org

Програми, написані на Objective-J, повинні бути пере-компільовані в Javascript перш ніж виконуватись у віртуальній машині програми-оглядача клієнта. Цей крок може бути здійснений самою програмою-оглядачем в ході виконання, або ж спеціальним компілятором, що транслює Objective-J програми в чистий JavaScript. Objective-J компілятор написаний на JavaScript, і тому не для розробки та розгортання на стороні клієнта не потрібно встановлювати додаткових розширень до веб оглядача. Objective-J можна скомпілювати і виконувати на Node.js

Програми

Першим відомим застосуванням Objective-J стала програма 280 Slides, що базується на фреймворку Cappuccino. І хоча дизайн Objective-J передбачає використання мови як самостійного інструменту, початковим призначенням мови була підтримка розробки веб аплікацій у Cappuccino.

Програмне забезпечення, що використовує Cappuccino та Objective-J[1]

Синтаксис

Objective-J є надмножиною JavaScript, і це означає, що будь-який написаний на Javascript код буле виконуватись і на Objective-J.

У посліуючому прикладі показано оголошення та реалізація Objective-J класу, що називається Address; цей клас розширює базовий об’єкт CPObject - аналог Objective-C NSObject. Різниця між наведеним прикладом та традиційним Objective-C полягає в тому, що CPObject відображає весь нижче-підпорядкований фреймворк Cappuccino, коли NSObject - Cocoa. В Objective-J не використовуються вказівники, і тому визнчення типів не містять символів зірочки. Змінні завжди оголошуються в секції @implementation.

@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

Як і в Objective-C, оголошення статичних та динамічних методів класів починаються з '+'(плюс) та '-'(мінус) відповідно.

Управління пам’яттю

Як і в режимі збирача сміття в Objective-C 2.0, пам’ять під об’єкти не потрібно звільняти самотужки, оскільки вона буде звільнена збирачем сміття Javascript у потрібний час.

Див. також

  • wikipedia:Cappuccino (application development framework)

Посилання

  1. Demos in Cappuccino. Demos in Cappuccino. Архів оригіналу за 25 серпня 2013. Процитовано 26 лютого 2011.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.