Objective-J
Objective-J is a programming language developed as part of the Cappuccino web development framework. Its syntax is nearly identical to the Objective-C syntax and it shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset; adding traditional inheritance and Smalltalk/Objective-C style dynamic dispatch. Pure JavaScript, being a prototype-based language, already has a notion of object orientation and inheritance, but Objective-J adds the use of class-based programming to JavaScript.
Programs written in Objective-J need to be preprocessed before being run by a web browser's JavaScript virtual machine. This step can occur in the web browser at runtime or by a compiler which translates Objective-J programs into pure JavaScript code. The Objective-J compiler is written in JavaScript, consequently deploying Objective-J programs does not require a plugin attached to the web browser.
Application
The first widely known use of Objective-J is in the Cappuccino-based web application 280 Slides. Even though Objective-J can be used (and has been designed) independently from the Cappuccino framework, Objective-J has primarily been invented to support web development in Cappuccino. Easy conversion to Objective-C means that Objective-J web applications can be ported to the iPhone.[1]
Syntax
Objective-J is a superset of JavaScript, which implies that any valid JavaScript code is also valid Objective-J code. The following example shows the definition in Objective-J of a class named Address; this class extends the root object CPObject, which plays a role similar to the Objective-C's NSObject. This example differs from traditional Objective-C in that the root object reflects the underlying Cappuccino framework as opposed to Cocoa, Objective-J does not use pointers and, as such, type definitions do not contain asterisk characters (in Objective-C, all objects must be dynamically allocated). In addition, instance variable definitions are never done in the @implementation file.
@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
As with Objective-C, class method definitions and instance method definitions start with '+' (plus) and '-' (dash), respectively.
Memory Management
Like Objective-C 2.0's garbage-collected mode, objects in Objective-J do not need to be manually released because they are automatically freed by JavaScript's garbage collector.
See also
External links
{{Expansion depth limit exceeded| none =
| =
[[Image:{{Expansion depth limit exceeded| commons = Commons-logo.svg
| meta|metawiki|m = Wikimedia Community Logo.svg
| wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg
| wikiquote|quote|wqt|q = Wikiquote-logo-en.svg
| wikipedia|wp|w = Wikipedia-logo-en.png
| wikisource|source|ws|s = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktionary-logo-en.svg
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity-logo.svg
| mediawiki|mw = Mediawiki.png
| #default = Wikimedia-logo.svg
}}|40x40px|link={{Expansion depth limit exceeded| {{Expansion depth limit exceeded| commons = commons
| meta|metawiki|m = meta
| wikibooks|wbk|wb|b = b
| wikiquote|quote|wqt|q = q
| wikipedia|wp|w = w
| wikisource|source|ws|s = s
| wiktionary|wkt|wdy|d = wikt
| wikinews|news|wnw|n = n
| wikispecies|species = species
| wikiversity|wvy|v = v
| mediawiki|mw = mw
| #default =
}}
| Special:Search/{{Expansion depth limit exceeded}}
| lang =
}}| Search {{Expansion depth limit exceeded| commons = Wikimedia Commons
| meta|metawiki|m = Meta
| wikibooks|wbk|wb|b = Wikibooks
| wikiquote|quote|wqt|q = Wikiquote
| wikipedia|wp|w = Wikipedia
| wikisource|source|ws|s = Wikisource
| wiktionary|wkt|wdy|d = Wiktionary
| wikinews|news|wnw|n = Wikinews
| wikispecies|species = Wikispecies
| wikiversity|wvy|v = Wikiversity
| mediawiki|mw = MediaWiki
| #default = sister project
}}]]
| #default =
}} |
{{Expansion depth limit exceeded| The Wikibook {{Expansion depth limit exceeded| wikibooks | {{{Expansion depth limit exceeded}}} | {{{Expansion depth limit exceeded}}} }}
| Wikibooks
}} has {{Expansion depth limit exceeded| a page
| {{Expansion depth limit exceeded| a book
| more
}}
}} on the topic of
{{Expansion depth limit exceeded|
{{Expansion depth limit exceeded| wikibooks | {{Expansion depth limit exceeded| {{{Expansion depth limit exceeded}}} }}/{{Expansion depth limit exceeded| {{{Expansion depth limit exceeded}}} }} | {{{Expansion depth limit exceeded}}} }}
| {{Expansion depth limit exceeded| {{Expansion depth limit exceeded| wikibooks | {{Expansion depth limit exceeded| {{{Expansion depth limit exceeded}}} }}/{{Expansion depth limit exceeded| {{{Expansion depth limit exceeded}}} }} | {{{Expansion depth limit exceeded}}} }}
| {{Expansion depth limit exceeded| {{Expansion depth limit exceeded| wikibooks | {{{Expansion depth limit exceeded}}} | {{{Expansion depth limit exceeded}}} }}
| {{Expansion depth limit exceeded| wikibooks | Special:Search/{{Expansion depth limit exceeded}} | {{Expansion depth limit exceeded}} }}
}}
}}
}} |
- {{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}{{Expansion depth limit exceeded|
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded|{{Expansion depth limit exceeded| et al.
|{{Expansion depth limit exceeded|;
|{{Expansion depth limit exceeded| & |; }}
}}{{Expansion depth limit exceeded|[[{{{Expansion depth limit exceeded}}} |{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}]]
|{{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|, {{{Expansion depth limit exceeded}}}
}}
}}{{Expansion depth limit exceeded| et al.
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}} ({{Expansion depth limit exceeded|{{{Expansion depth limit exceeded}}}| {{Expansion depth limit exceeded|{{{Expansion depth limit exceeded}}}|}}}}){{Expansion depth limit exceeded|;|;|. }} {{{Expansion depth limit exceeded}}}{{Expansion depth limit exceeded|;|;|. }} {{Expansion depth limit exceeded|p. {{{Expansion depth limit exceeded}}}|{{Expansion depth limit exceeded|pp. | }} }}.
Notes
- ↑ SD Times Issue No. 219, April 1, 2009, pp. 1, 21
| ||||||||||||||
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...