Objective-J

From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search

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}}}{{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

  1. 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...