Objective-J

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

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

Програми, написані на 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]

  • Mockingbird [Архівовано 21 грудня 2012 у Wayback Machine.]
  • PicEngine [Архівовано 26 листопада 2012 у Wayback Machine.]
  • GithubIssues
  • TimeTable [Архівовано 21 листопада 2012 у Wayback Machine.]
  • Enstore
  • Almost At [Архівовано 30 травня 2009 у Wayback Machine.]
  • Akshell - Online JavaScript Web-App IDE [Архівовано 8 квітня 2018 у Wayback Machine.]
  • Archipel Project - Virtual machine orchestrator
  • Spot Specific - Mobile App SDK and IDE [Архівовано 25 грудня 2012 у Wayback Machine.]

Синтаксис

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.

Посилання

Вікіпідручник має книгу на тему
Objective-J
  • Офіційний сайт
  • Learning Objective-J. Cappuccino Web Framework. Архів оригіналу за 25 серпня 2013. Процитовано 21 грудня 2012.