Objective-J

Objective-J, ծրագրավորման լեզու, մշակվել է որպես Cappuccino-ի մաս և նախատեսված է վեբ-հավելվածների համար։ Նրա շարահյուսությունը գրեթե նույնն է, ինչ Objective-C-ինը։ Objective-J-ն վերաբերվում է ինչպես JavaScript-ին, այնպես էլ Objective-C ծրագրավորման լեզվին. նրա խիստ, բայց կոմպակտ գերակայությունն է։ Objective-J-ն JavaScript-ում ավելացնում է ավանդական ժառանգություն և դինամիկ պլանավորում Smalltalk/Objective-C ոճում։ 
Մաքուր Javascript-ում, որպես նախատիպի լեզու, արդեն առկա է օբյեկտի կողմնորոշման և ժառանգության մասին պատկերացում, սակայն Objective-J-ն JavaScript-ին ավելացնում է դասակարգային ծրագրավորման օգտագործման հնարավորությունը։

Objective-J-ում գրված ծրագրերը պահանջում են նախապատրաստում, նախքան JavaScript-ի վիրտուալ մեքենայի օգնությամբ վեբ բրաուզերում իրագործելը։ Այս փուլը կարող է կատարվել վեբ բրաուզերում իրագործման ընթացքում, օգտագործելով կոմպիլյատոր(բանաքաղ), որը ծրագրերը թարգմանում է Objective-J-ում` մաքուր JavaScript-ի ծածկագրով։ Objective-J բանաքաղը գրված է JavaScript-ում, այդ իսկ պատճառով Objective-J-ի ծրագրերի տեղակայումը բրաուզերի համար չի պահանջում որևէ հատուկ հավելում։

Կիրառումը 

Objective-J-ի առաջին լիիրավ կիրառումը կապված է Cappuccino-ի շրջանակի հիման վրա ստեղծված 280Slides վեբ-հավելվածի հետ։
Թեև Objective-J-ն կարող է օգտագործվել Cappuccino-ից անկախ, սակայն այն առաջին հերթին նախատեսված է համացանցի կատարելագործմանն աջակցելու համար և ստեղծվել է Cappuccino-ի հիման վրա ։

Շարահյուսություն 
Objective-J-ն JavaScript-ի գերշահույթն է, ինչը նշանակում է, որ ցանկացած JavaScript-ի վավերական համարվում է նաև Օբյեկտիվ-J-ի վավերական կոդ։ Հետևյալ օրինակում նկարագրվում է Objective-J դասը՝ Address անվամբ։ Այս դասը տարածվում է CPObject-ի արմատային դասի վրա, որը կատարում է NSObject-ի դերը Objective-C-ում։ Այս կոդը համարվում է նաև Objective-С դասի նկարագրման օրինակ։
@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-ի, Objective-J-ի օբյեկտները ազատ արձակելու կարիք չկա, քանի որ դրանք ավտոմատ կերպով ազատվում են JavaScript-ից։

Տես նաև 
 Cappuccino
 SproutCore
 Cocoa
 Ծրագրավորման լեզուների ցանկ

Արտաքին հղումներ 

 

Օբյեկտ կողմնորոշված ծրագրավորման լեզուներ
2008 հիմնադրումներ