Objective-Everything Release 5.
Copyright ©1994-1998 by TipTop Software, Inc. All Rights
Reserved.
Objective-Everything
Introduction
The Objective-Everything framework provides a true language independence
for the OpenStep/YellowBox (i.e., Objective-C) object model. The
framework provides seamless integration of several high-level interpretive
languages and the Objective-C runtime. The framework not only breaks
the barrier between interpreted and compiled code, but it also breaks the
barrier between various programming languages. Objective-Python, Objective-Tcl,
Objective-Perl, and Objective-WebScript are languages currently available.
Architecture
The following diagram illustrates the Objective-Everything architecture.
(AppKit-related modules are excluded from the diagram.)
The Objective-Everything Meta Runtime layer provides true language
independence. It provides runtime services not only to the
language-specific modules which sit on top of it, but also to the
Apple-provided languages from below! That is, although TipTop
superstructure sits on top of Apple Yellow Box, all the languages involved
are first-class citizens: ObjC, Java, ObjPython, ObjTcl, ObjPerl, ObjWebScript, etc.
As a result of this, classes can have mixed implementation; certain
methods can be implemented in Objective-C, other methods can be
implemented in Tcl, yet some other methods can be implemented in Python,
etc. It is transparent and irrelevant to the sender of a message
which language implements the corresponding method---the method looks "native"
to the caller.
Uses and Benefits
Objective-Everything is a comprehensive YellowBox development and runtime environment which complements the Apple-provided runtime system and tools. Some of the popular uses and benefits include:
-
Rapid application prototyping and development environment. The
Objective-Everything languages, Objective-Python, Tcl, Perl, and WebScript
provide an interactive interpretive environment. You get immediate
feedback to all your programming actions in this environment, so you
can prototype and develop much more rapidly. You can define and
redefine classes and methods on-the-fly, at runtime.
For example, the advanced InterfaceBuilder integration lets you build
entire applications directly in InterfaceBuilder in record time!
-
True language independence. The Objective-Everything infrastructure
brings true language independence into the YellowBox development
environment. It allows you to develop programs for YellowBox and
Carbon without being restricted by the lack of expressiveness, class
libraries, or other limitations of a particular programming language.
With Objective-Everything you can use the language best suited for
the task at hand, or even mix-and-match languages! Classes can have
mixed implementation; certain methods can be implemented in Objective-C,
other methods can be implemented in Tcl, yet some other methods can
be implemented in Python, etc. It is transparent and irrelevant to
the sender of a message which language implements the corresponding
method---the method looks "native" to the caller.
-
Carbon development and scripting. Objective-Everything is Carbon-ready!
It lets you leverage the Carbon API from any of the Objective
languages.
-
Exploration and debugging. The dynamic nature of Objective-Everything,
and its powerful runtime introspection capabilities make it an ideal
tool for exploratory programming and debugging.
In this respect, Objective-Browser, a graphical tool which allows you
to visualize objects and object-relations in a running program, is
especially useful. The browser allows you to view live objects within
a running application in many object-specific ways. OB allows you to
easily investigate the structure and methods of various objects and
classes. For example, classes hierarchy, methods, instance variables,
and other object information can be viewed and *edited* during
execution.
-
Scripting environment. The Objective-Everything runtime
can be used with any YellowBox application to provide high-level
scripting control.
In addition, when Apple provides the scripting infrastructure (ie, in
Rhapsody CR) you will be able use any of the Objective languages to script
YellowBox applications via the Apple Event Manager!
-
Testing environment. Objective-Everything is ideally suited for
regression testing.
-
Augment YellowBox and Carbon with high-level languages, augment high-level
languages with the YellowBox and Carbon APIs. Objective-Everything
provides Python, Tcl, Perl, or WebScript programmers with full
access to the powerful YellowBox and Carbon APIs from these languages.
Symmetrically, it augments the YellowBox and Carbon environments with
powerful high-level languages and associated class libraries.
-
Cross-platform portability. Programs developed with
Objective-Everything run without any porting and recompilation on
all YellowBox platforms (Rhapsody, Windows, Mach).
-
Objective-Everything is easy! You will be able to use it to explore
the YellowBox system and build non-trivial apps in no time.
Components
Objective-Everything comes in the form of OpenStep frameworks:
- ObjCore. All language-independent functionality,
including the Objective-Everything meta runtime is provided by this
framework
- ObjAppKit. ApplicationKit-specific functionality, such
as GUI interactors, and miscellaneous panels are in this framework
- ObjPy. Objective-Python language module.
- ObjTcl. Objective-Tcl language module.
- ObjPerl. Objective-Perl language module.
- ObjWebScript. Objective-WebScript language module.
- ObjBrowser. Objective-Browser.
- ObjMeddle. Meddling support.
- Python, Tcl, Perl. Plain language frameworks.
In addition:
- ObjPalette.palette. InterfaceBuilder palette.
- ObjShell.app.GUI application which you can use to interact
with any of the Objective languages
- Shell executables (objpy, objtclsh, objperl, objwebscript).
- Remote shells (robjpysh, robjtclsh, robjperlsh).
- Examples.
- Documentation.
Quick Start
To quickly get started with Objective-Everything, start by reading the "Quick Tour" documentation sections in the module of your interest: ObjBrowser, ObjPy, ObjTcl, ObjPerl, ObjWebScript.
Then, read the rest of the documentation, starting by the Using InterfaceBuilder section.
Language Comparison
No language is perfect! That's the whole point of Objective-Everything --- use the best language for the task at hand.
Here are the references to the web sites for each of the languages:
-
- Python
- http://www.python.org
- Tcl
- http://www.sunscript.com
http://www.scriptics.com
- Perl
-
http://www.perl.org
http://www.perl.com
- WebScript
- file:/NextLibrary/Documentation/NextDev/WebObjects/WOPages/LocalDoc/DevGuide/WebScript/WebScript.html
http://developer.apple.com/techpubs/enterprise/WebObjects/DevGuide/WebScript/WebScript.html
Contact Information
- TipTop Software, Inc.
info@tiptop.com
http://www.tiptop.com
+1-301-656-3837 (9am--5pm US EST, Mon--Fri)
+1-301-656-8432 fax
PO Box 30681, Bethesda, MD 20824, USA
[previous][contents][next]