HOME

TheInfoList



OR:

Telescript is an Agent-oriented programming language written by
General Magic General Magic was an American software and electronics company co-founded by Bill Atkinson, Andy Hertzfeld, and Marc Porat. Based in Mountain View, California, the company developed precursors to " USB, software modems, small touchscreens, to ...
as part of the overall Magic Cap system. Telescript programs used a modified C-like syntax known as High Telescript and were compiled to a stack-based language called Low Telescript for execution. Low Telescript ran within
virtual machine In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
interpreters, or "Telescript engines", on host computers. The basic model of Telescript is similar to
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, and differs primarily in where the applications would run. Java was modelled to make it possible to download Java applications onto any platform and run them locally. Telescript essentially reversed this, allowing end-user equipment with limited capabilities to upload Telescript programs to servers to allow them to take advantage of the server's capabilities. Telescript could even migrate a running program; the language included features to
marshal Marshal is a term used in several official titles in various branches of society. As marshals became trusted members of the courts of Medieval Europe, the title grew in reputation. During the last few centuries, it has been used for elevated o ...
a program's code and serialized state, transfer it to another Telescript engine (on a device or a server) to continue execution, and finally return to the originating client or server device to deliver its output. General Magic had originally developed as a team within Apple Inc., and were spun off in 1990. When they began to generate some press buzz in 1992, Apple decided to enter the same market with their Newton
tablet computer A tablet computer, commonly shortened to tablet, is a mobile device, typically with a mobile operating system and touchscreen display processing circuitry, and a rechargeable battery in a single, thin and flat package. Tablets, being com ...
. General Magic were unable to find a niche within the market, and Telescript services were soon
deprecated In several fields, especially computing, deprecation is the discouragement of use of some terminology, feature, design, or practice, typically because it has been superseded or is no longer considered efficient or safe, without completely removing ...
in favor of new products unrelated to
mobile computing Mobile computing is human–computer interaction in which a computer is expected to be transported during normal usage, which allows for the transmission of data, voice, and video. Mobile computing involves mobile communication, mobile hardware ...
.


History

In 1990, Marc Porat convinced then-Apple-CEO
John Sculley John Sculley III (born April 6, 1939) is an American businessman, entrepreneur and investor in high-tech startups. Sculley was vice-president (1970–1977) and president of PepsiCo (1977–1983), until he became chief executive officer (CEO) ...
that the future of computing lay not in desktop
personal computer A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or te ...
s, but much smaller portable devices combining computing power, communications systems, and data located on network-accessible servers. He noted that portable computers would always have less power than the machines they would connect to, and suggested that this be part of the design - instead of trying to build a portable computer that could perform the tasks of a desktop system, the portable device should invisibly use the computational power of the servers to produce a similar result. Sculley agreed to allow Porat to begin researching the concepts under the code-name "Pocket Crystal". Key members of the early team were Porat, and famous
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc., Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and ...
developers
Bill Atkinson Bill Atkinson (born March 17, 1951) is an American computer engineer and photographer. Atkinson worked at Apple Computer from 1978 to 1990. Atkinson was the principal designer and developer of the graphical user interface (GUI) of the Apple ...
and
Andy Hertzfeld Andrew Jay Hertzfeld (born April 6, 1953) is an American software engineer and innovator who was a member of the original Apple Macintosh development team during the 1980s. After buying an Apple II in January 1978, he went to work for App ...
. The team quickly found themselves ignored by upper management and left continually struggling for resources. They approached Sculley again with the idea of spinning off Pocket Crystal as a separate company. Sculley agreed to this, as well as the idea of inviting in new partners on the hardware side. The new company, General Magic (GM), was created in May 1990 with Apple,
Sony , commonly stylized as SONY, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. As a major technology company, it operates as one of the world's largest manufacturers of consumer and professional ...
and
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, Motorola ...
each holding a 10% stake. The company ranks soon filled out with other Macintosh alumni, including
Joanna Hoffman Joanna Karine Hoffman (born July 27, 1955) is a Polish-American marketing executive. She was one of the original members of both the Apple Computer Macintosh team and the NeXT team. At the time she began at Apple Computer, the Mac was "still a r ...
, Susan Kare, Dan Winkler, Bruce Leak and
Phil Goldman Phillip York Goldman (July 17, 1964 – December 26, 2003) was an American software engineer and entrepreneur. He was a Macintosh software engineer at Apple Inc., and was best known for co-founding WebTV. Early life Phillip York Goldman was born ...
. By 1992 GM had signed development agreements with a number companies to work with the Magic Cap environment, including Sony, Motorola, Matsushita,
Philips Koninklijke Philips N.V. (), commonly shortened to Philips, is a Dutch multinational conglomerate corporation that was founded in Eindhoven in 1891. Since 1997, it has been mostly headquartered in Amsterdam, though the Benelux headquarters is ...
,
British Telecom BT Group plc (trading as BT and formerly British Telecom) is a British multinational telecommunications holding company headquartered in London, England. It has operations in around 180 countries and is the largest provider of fixed-line, b ...
and
AT&T Corporation AT&T Corporation, originally the American Telephone and Telegraph Company, is the subsidiary of AT&T Inc. that provides voice, video, data, and Internet telecommunications and professional services to businesses, consumers, and government agen ...
. This generated considerable press "buzz". Apple had by this time started the Newton project, a design for a larger hand-held tablet-like computer more similar to the full-sized
iPad The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc., Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, ...
. With General Magic's success in the press, they re-positioned the Newton squarely in the same market and rushed it to release in 1993. They also sold their stake in General Magic and sued them. General Magic's partners did not release hardware until 1994, by which time the Newton had essentially defined what a
personal digital assistant A personal digital assistant (PDA), also known as a handheld PC, is a variety mobile device which functions as a personal information manager. PDAs have been mostly displaced by the widespread adoption of highly capable smartphones, in part ...
(PDA) should be, and PDA systems were being judged on their
handwriting recognition Handwriting recognition (HWR), also known as handwritten text recognition (HTR), is the ability of a computer to receive and interpret intelligible handwritten input from sources such as paper documents, photographs, touch-screens and other de ...
capabilities. Magic Cap was a
point and click Point and click are the actions of a computer user moving a pointer to a certain location on a screen (''pointing'') and then pressing a button on a mouse, usually the left button (''click''), or other pointing device. An example of point and cl ...
interface (similar to
HyperCard HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web. HyperCard combines a flat-file database with a graphical, f ...
or the modern iOS). By 1995 the company was a shell of its former self and most of the original developers had left. In 1996 Steve Markman was hired to take over, and he hired
Kevin Surace Kevin Surace (born July 12, 1962) is an American technology innovator, speaker, Broadway & Film producer and entrepreneur. He is the CTO of Appvance, creator of an AI-based software QA platform. He was Inc. Magazine’s 2009 entrepreneur of ...
to take the company in a new direction. A new team developed the Portico telephone-based personal assistant system, which lives on today as the basis of
OnStar OnStar Corporation is a subsidiary of General Motors that provides subscription-based communications, in-vehicle security, emergency services, turn-by-turn navigation, and remote diagnostics systems throughout the United States, Canada, China, ...
. The original handheld group was spun off in 1998 as DataRover Mobile Systems Incorporated and later renamed Icras in 2000,Dan Hanttula
"Magic Mirror"
''Pen Computing'', April 2000
serving a number of
vertical market A vertical market is a market in which vendors offer goods and services ''specific'' to an industry, trade, profession, or other group of customers with specialized needs. A horizontal market is a market in which a product or service meets a ...
s before shutting down in 2001.Mark Beaulieu
"Wireless Internet Applications and Architecture"
Addison-Wesley Professional, 2002, 9780201733549, p. 12.
The remains of the original company were liquidated in 2004.


Description


Underlying concepts

Telescript was modelled on the concept of small programs known as '' agents'' that would interact with computing services known as ''places'' all of which would run on a cluster of one or more servers that hosted what was called a Telescript cloud. The user's handheld device was one such place, albeit one with limited capabilities. The model assumed that most information and services would be provided by places running on larger server computers hosted by the communications providers like AT&T. Even early documents refer to this as running in the cloud. User-facing programs would consist of a number of such agents, which might run locally, on the provider's hosts, or even be forwarded to 3rd party servers. To coordinate communications, Telescript also included the concepts of a ''telename'' that uniquely identified users, and ''teleaddresses'' which identified the device even as it moved between networks. For example, consider a shopping application that the user asks to find prices on a new
barbecue grill A barbecue grill or barbeque grill (known as a barbecue or barbie in Australia and New Zealand) is a device that cooks food by applying heat from below. There are several varieties of grills, with most falling into one of three categories: gas-f ...
they wish to purchase. In a traditional
client–server model The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate ov ...
, the application would form a number of queries, send them to a number of services, and then collect the results and display them. In the Telescript model, the application would instead build a new agent populated with the data from the request, stamp it with their name and address, and then send that to a store place on a server for processing. That server could then handle the request directly, or hand off the agent to other places, like the actual vendors' places, for further processing. The results could be placed in the agent's internal data fields and sent back through the network to the user's device, or a new "messenger" agent could be spawned to carry only the result data and sent back to minimize network data transfer. The model also differs from traditional solutions in the way that data exchange occurs in the case of interacting programs. For instance, if the user chooses to buy one of the barbecues they found in their previous search, in a conventional system the task of filling out the order forms and confirming payment would be accomplished through direct communications between the user's device and the remote server, requiring a "live" communications channel throughout the process. In the Telescript model, a new agent with the information needed to complete the purchase is sent to that vendor's store place, interacts with the store place or agents from the vendor, and then returns with the success or failure. The main communications takes place between the agents and places on the remote server, so communications over the network is required only at the start and end of the process. Telescript was object-oriented (OO) and used a number of uncommon terms to describe object state and communications. ''Attributes'' correspond to what other languages refer to as instance variables or fields.
Method Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
calls were known as ''requests'', and the act of running a method's implementation was known as ''performing'' it. All such calls always responded with a message indicating success or failure, it was up to the requesting object to optionally trap those and respond to them. Hints on how to pass the data into and out of method calls were known as ''constraints'', and covered the common " by ref" and " by value", among others. Telescript was generally stateless in terms of data lifetime. All data within the program, both instance and local variables, were always serialized. Agents could be invoked or suspended at any instant, and would not lose their state. This same mechanism also allowed agents to be easily communicated between hosts.


Syntax and layout

Although Telescript's control and layout was inspired by C, its precise syntax was considerably different. One obvious difference was the replacement of C-style curly braces with parentheses at the definition level, retaining curly braces for grouping statements within logic and flow control statements, and the use of the colon to separate a name from its definition. The following code defines the interface for objects of the type ''Pie'':These examples are modified from the originals found in the Guide, correcting a number of errors in syntax and spelling. Pie: interface(Object) = ( public name: String; initialize: op(name: String); ); Note the use of the keyword op, which corresponds to the function or sub found in other languages. The implementation of the Pie could be used in one or more class objects, which can be organized into moduless in a fashion similar to
Visual Basic .NET Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
's namespace construct. #include is used to import header files, but the import is local to the modules, not the file as a whole. Telescript's agent and places concepts were invoked simply by sub-classing those two classes, Agent and Place, both of which were subclasses of Process. For code clarity, one could place both of these in a single file, and even gather them into a single module. The following code defines the agents needed to implement a store that sells Pies: PieStoreModule: module = ( #include "pie.i" PieBuyer: class(Agent) = ( public live: sponsored op() = ; ); PieSeller: class(Place) = ( public sellPie: op() Pie = ; ); ); The PieBuyer object, an Agent, contains a single method, live, the standard startup method used by all Agents. Simply creating a PieBuyer and invoking it will cause the live method to be called, in a fashion similar to the new operation found in most OO languages, although this method is called after setup. The * replaces what is more commonly implemented as self or Me, referring to the object itself, in this case the PieBuyer agent. The code basically says that when it is created, the object should send itself (*.go) to the location sent to it during creation (*.destination). Once there, it should tell the matching place object, in this case a PieSeller, to sellPie. When that command is complete, the agent will return to its place of origin. The invoking application can then examine the results by inspecting the myPie variable. The PieSeller object, a Place, also contains a single method, sellPie. It defines a local variable called aPie, defining it to be a Pie object, or "nothing", which is used in the case that there are no pies. It then attempts to set aPie to a value by calling its own getPieFromStock method (not shown here) and then checks if that returned a value. If it did not succeed, for instance, if the stock was empty, it then builds a new PieBuyer object of its own, sends that request off to another shop, and then waits for a response. That shop might forward the request off to another, and so on. When this chain of events concludes, either with a pie or unsuccessfully, the PieSeller place finally returns that to the calling PieBuyer. Objects are normally "owned" by the place that created them. Ownership also confers capabilities and security settings. The language can take ownership of an object through the own construct, or in this case, use the sponsored keyword to indicate it should run within the ownership of the place it is running in. This might be used, for instance, to grant the agent the ability to see stock in the inventory, values that would otherwise be private. Using sponsored is exactly the same result as placing the code in an own block, but allows this to take place in the caller. Telescript includes several built-in collection types, Set, List, Dictionary, and Collection, the last of which is essentially a List with text indexes (one half of a Dictionary). One common source of errors in Telescript was that while a collection as a whole could be passed back in an agent, individual items within it were owned by the place. Thus if one used return MyCollection omeIndex, it would arrive back on the user's device as null. The solution was additional syntax, the DictOwned and ColOwned hints, which caused the ownership of returned values to be changed on return, and thus be serialized into the results when returning to the original place. Sub-classes were known as ''flavors''; the PieBuyer class outlined above is a ''flavor'' of Agent. Telescript also included the concept of mix-in classes, which offered features similar to
multiple inheritance Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object or ...
by allowing the creation of classes containing only code that could then be included in other classes. Mix-ins were not flavors. Like many modern OO languages, Telescript separated interface and implementation, placing these in .i files for the interface, and .t files for the implementation (t as in "t"elescript). Uncommonly, the language also defined a third type of file, .d, which combined multiple .i files together. Compiled code was placed in a .s file, which was guided by
linker Linker or linkers may refer to: Computing * Linker (computing), a computer program that takes one or more object files generated by a compiler or generated by an assembler and links them with libraries, generating an executable program or shar ...
instructions in a .l file. The External Application Framework allowed
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
code to be called by Telescript.


Notes


References

Citations Bibliography * * * * * {{refend Object-oriented programming languages