Célkitűzés-J | |
Az első változat kelte | 2008 |
---|---|
Paradigma | objektum-orientált , reflektív , imperatív , funkcionális , Script |
Szerző | 280 North, Inc. |
Utolsó verzió | 0.6 |
Gépelés | dinamikus , gyenge , kacsa |
Befolyásolta | C-objektív , JavaScript |
Végrehajtások | Cappuccino |
Engedély | LGPL |
Weboldal | http://cappuccino.org/ |
Az Objective-J egy programozási nyelv, amelyet a Cappuccino keretrendszerrel egyidejűleg fejlesztettek ki . Szintaxisa lényegében megegyezik a C-objektuméval . Ezenkívül megosztja a Javascript-lel ugyanazt a kapcsolatot, mint az Objective-C és a C nyelv között : ez egyfajta szuperhalmaz, amely hozzáadja az öröklődés fogalmát , valamint a stílus dinamikus tipizálását. Smalltalk / Objective-C a JavaScript-hez .
Az Objective-J-ben írt programokat össze kell állítani, mielőtt elindíthatnák őket egy webböngészőben . Ezt az összeállítást közvetlenül a böngészőben futtathatja le egy fordító, amely az Objective-J programokat tiszta JavaScript kódra fordítja. Az Objective-J fordító JavaScript-ben van megírva, így az Objective-J-ben írt programok telepítéséhez nincs szükség plugin- re a böngészőhöz.
Az Objective-J első ismert felhasználását a Cappuccino keretrendszerrel alkalmazták a 280Slides webalkalmazás fejlesztésére . Bár az Objective-J a Cappuccino kerettől függetlenül is használható (és megtervezett), az Objective-J-t eredetileg azért fejlesztették ki, hogy támogassa a webes fejlesztéseket a Cappuccino segítségével.
Az Objective-J a JavaScript egy halmaza, ez azt jelenti, hogy minden érvényes JavaScript-kód érvényes az Objective-J-kódban is. A következő példa az Address nevű osztály Objective-J deklarációját mutatja be , ez az osztály a CPObject alapobjektum egyik alosztálya, amely ugyanazt a szerepet tölti be, mint az NSObject az Objective-C / Cocoa fájlban. Még akkor is, ha ez nem azonos az alapobjektum nevével, ez a kód példa lehet az Objective-C osztálydeklarációjára is.
@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]; } @endCsakúgy, mint az Objective-C-ben, az osztály metódusok és a példány metódusok deklarálása „+” (plusz) és „-” (mínusz) kezdettel kezdődik.
Ellentétben a Objective-C tárgyak Objective-J nem kell elengedni, mert azok automatikusan megjelent a szemétgyűjtő in English : szemétgyűjtő JavaScript.