Cel-J - Objective-J

Cel-J
Paradygmat Wieloparadygmat : refleksyjny , obiektowy , funkcjonalny , imperatywny , skryptowy
Deweloper Cappuccino Core Deweloperzy i społeczność.
Po raz pierwszy pojawiły się 2008
Dyscyplina pisania dynamiczny , słaby , kaczka
Licencja LGPL
Stronie internetowej cappuccino-project.org
Wpływem
Cel-C , JavaScript

Objective-J to język programowania opracowany jako część frameworka do tworzenia stron internetowych Cappuccino . Jego składnia jest prawie identyczna ze składnią Objective-C i dzieli z JavaScriptem tę samą relację, jaką Objective-C ma z językiem programowania C : jest to ścisły, ale mały nadzbiór; dodanie tradycyjnego dziedziczenia i dynamicznej wysyłki w stylu Smalltalk /Objective-C . Czysty JavaScript, będący językiem opartym na prototypach , ma już pojęcie orientacji obiektowej i dziedziczenia, ale Objective-J dodaje użycie programowania opartego na klasach do JavaScript.

Programy napisane w Objective-J muszą być wstępnie przetworzone przed uruchomieniem przez maszynę wirtualną JavaScript przeglądarki internetowej. Ten krok może wystąpić w przeglądarce internetowej w czasie wykonywania lub przez kompilator, który tłumaczy programy Objective-J na czysty kod JavaScript. Kompilator Objective-J jest napisany w JavaScript; w związku z tym wdrażanie programów Objective-J nie wymaga wtyczki przeglądarki internetowej . Objective-J można skompilować i uruchomić na Node.js .

Aplikacje

Pierwszym powszechnie znanym zastosowaniem Objective-J było użycie aplikacji internetowej 280 Slides opartej na Cappuccino, opracowanej przez samą firmę 280 North. Mimo że Objective-J może być używany (i został zaprojektowany) niezależnie od frameworka Cappuccino, Objective-J został wynaleziony przede wszystkim do wspierania tworzenia stron internetowych w Cappuccino.

Aplikacje zaprojektowane przy użyciu Cappuccino Framework

Składnia

Objective-J jest nadzbiorem JavaScript, co oznacza, że ​​każdy poprawny kod JavaScript jest również prawidłowym kodem Objective-J.

Poniższy przykład przedstawia definicję i implementację w Objective-J klasy o nazwie Address; ta klasa rozszerza główny obiekt CPObject, który odgrywa rolę podobną do NSObject Objective-C. Ten przykład różni się od tradycyjnego Objective-C tym, że obiekt główny odzwierciedla podstawową strukturę Cappuccino w przeciwieństwie do Cocoa , Objective-J nie używa wskaźników i jako takie definicje typu nie zawierają znaków gwiazdki. Zmienne instancji są zawsze definiowane w @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

Podobnie jak w przypadku Objective-C, definicje metod klas i definicje metod instancji zaczynają się odpowiednio od „+” (plus) i „-” (myślnik).

Zarządzanie pamięcią

Objective-C używa ARC (Automatic Reference Counting) do cofania nieużywanych obiektów. W Objective-J obiekty są automatycznie usuwane przez Garbage Collector JavaScript .

Zobacz też

Bibliografia

  1. ^ „Demo w Cappuccino” . Prezentacje w Cappuccino . Zarchiwizowane z oryginału w dniu 25 sierpnia 2013 roku . Źródło 26 lutego 2011 .
  2. ^ http://blog.acclivitynyc.com/post/64981755172/dumped-cappuccino-and-switched-to-ember

Linki zewnętrzne