[HN Gopher] Telescript (programming language)
       ___________________________________________________________________
        
       Telescript (programming language)
        
       Author : vector_spaces
       Score  : 44 points
       Date   : 2023-09-08 04:34 UTC (1 days ago)
        
 (HTM) web link (en.wikipedia.org)
 (TXT) w3m dump (en.wikipedia.org)
        
       | tapoxi wrote:
       | For anyone else amazed by General Magic, the recently released
       | documentary is available for free (legally) on YouTube:
       | https://youtu.be/JQymn5flcek?si=zm-PJtQExOHol7r-
        
         | 7373737373 wrote:
         | "This video is not available" for me
        
           | tapoxi wrote:
           | It's uploaded by the film's production company so they might
           | have limited it to the United States. Here's the website for
           | the film, I highly recommend watching it:
           | https://www.generalmagicthemovie.com/
        
             | froh wrote:
             | the US and the UK only indeed as per the size you've kindly
             | linked. the trailer was on Vimeo, though.
             | 
             | too bad, now I'm dead curious, lol.
        
               | 7373737373 wrote:
               | It is possible to buy the full version on Vimeo. I just
               | watched it and
               | 
               | tl;dw: The folks at General Magic invented/envisioned a
               | mobile handheld computer with tons of capabilities and a
               | human-centered user interface (aka the iPhone before the
               | iPhone, but fifteen years before it). Development and
               | investment proceeded with big hope, hype and excitement,
               | but then the web became popular, which they ignored, and
               | made personal computers more relevant, and Apple released
               | the Newton at the time. They struggled to hit product
               | release deadlines and when they finally released a
               | product, sales were negligible. Soon, the company shut
               | down because it failed as a business, to the great
               | sadness and disappointment of employees. So a story of an
               | idea implemented too early, before its time and
               | technology had come and had a chance to be accepted by
               | the public.
        
       | cout wrote:
       | A long time ago, I wrote a library that could marshal a running
       | Ruby program over a socket to another VM. It seemed like a cool
       | idea at the time, but I never found a good use for it. Turns out
       | it's simpler to send the source code over the wire instead.
        
         | 7373737373 wrote:
         | Stackless Python can do it as well, very cool:
         | https://stackless.readthedocs.io/en/2.7-slp/library/stackles...
         | 
         | Eve Online uses (used?) it to move game server instances to
         | more powerful hardware when more players joined one region than
         | a smaller hardware server could handle.
        
       | temeya wrote:
       | As someone interested in obscure (extinct?) Programming
       | Languages, Telescript always struck me as interesting as it
       | apparently followed the Agent Programming paradigm, but as no one
       | is maintaining the language anymore, I guess its lost to time.
        
         | esfandia wrote:
         | Yeah, mobile agents were a hot topic back then (mid 90s), and
         | Telescript was one of the early programming languages that
         | enabled this idea of agents roaming around doing stuff on the
         | web. Java coming along around the same time with dynamic
         | loading of code (used in applets for example) gave the idea
         | another boost. Ultimately, I don't think the security issues
         | (agent could attack the host, host could attack the agent,
         | agents could attack each other, etc.) were worth the trouble
         | and the research seemed to fizzle.
         | 
         | I always wondered if message passing between static agents
         | wasn't a functionally equivalent yet safer and simpler
         | alternative to mobile agents.
        
       | dang wrote:
       | Related:
       | 
       |  _Telescript programming language_ -
       | https://news.ycombinator.com/item?id=17483436 - July 2018 (13
       | comments)
        
       | samsquire wrote:
       | This reminds me of Smalltalk image model and Temporal.
       | 
       | Migratable processes would be useful to shutdown my machine, move
       | it and then resume where I left off, a bit like hibernate.
       | 
       | This reminds me of X11 server/client model a bit.
        
         | mst wrote:
         | Temporal?
         | 
         | (I'm fascinated by e.g. termite scheme, I like learning about
         | more variations on this theme :)
        
           | lacrimacida wrote:
           | Whats termite scheme and what is it used for?
        
       | 7373737373 wrote:
       | How did the server side prevent infinite loops?
        
         | cryptonector wrote:
         | Does it matter? You don't need infinite loops to eat up all
         | available CPU and take forever to finish. Imagine nesting N
         | loops that run from the smallest integer available to the
         | largest integer available, so if you have 64-bit integers
         | that's (2^64)^N, and N could be whatever you can fit in the
         | code, which could be very large. You can prove that such a
         | program terminates, but not in your lifetime for large enough
         | N. And that's just the most trivial way I can think of to write
         | a provably-terminating-but-not-practically program, and you can
         | always implement faster growing functions and still terminate-
         | just-not-really.
        
           | 7373737373 wrote:
           | I should have formulated my question differently: "How does
           | the server side prevent computational resource exhaustion?",
           | which includes the ability to preempt infinite loops. It
           | matters and can be done, e.g. by using an instruction (and
           | memory usage) counter and aborting/suspending after a certain
           | number of instructions have been executed, or by using a
           | timer as stated below.
        
             | classichasclass wrote:
             | Telescript apps ran with an execution budget (measured in
             | "Teleclicks"). There was also a permissions system. Apps
             | were signed to identify their origin and on whose behalf
             | they were running.
        
               | 7373737373 wrote:
               | Apparently this system was called "Permits", I just found
               | a description here:
               | 
               | https://web.archive.org/web/20210625004816/http://www.dat
               | aro...
               | 
               | > Every Telescript place or agent has a permit that
               | limits its capabilities in the electronic marketplace.
               | Permits help protect the marketplace from malicious or
               | misprogrammed agents by preventing their unbridled
               | consumption of resources. Permits also protect the
               | authorities under which agents operate by providing
               | misprogrammed agents with a safety net.
               | 
               | > Because agents move, their permits, like their
               | credentials, are of special concern. An agent's permit is
               | established when the agent is created programmatically,
               | and it is renegotiated whenever the agent travels between
               | regions. The destination region may deny the agent
               | capabilities that it received at birth as long as the
               | agent is in that region. (The region may not extend the
               | agent's capabilities, however.) The region denies the
               | agent entry unless it agrees to the restrictions the
               | region imposes. When the agent eventually leaves the
               | region, the restrictions are lifted (although those of
               | another region are imposed).
               | 
               | > Two kinds of capability are granted an agent by its
               | permit. One kind is the right to use a certain Telescript
               | instruction. An agent in the role of shopkeeper, for
               | example, typically is denied the use of the go
               | instruction. Another kind of capability is the right to
               | use a particular Telescript resource, but only in a
               | certain amount. An agent is granted, among other things,
               | a maximum lifetime, measured in seconds (e.g., a 5-minute
               | agent); a maximum size, measured in bytes (e.g., a 1K
               | agent); and a maximum overall expenditure of resources,
               | the agent's allowance, measured in teleclicks (e.g., a
               | 50C/agent). (In theory, the teleclick is an abstract unit
               | of measurement. In practice, however, an "exchange rate"
               | between teleclicks and money is established.)
               | 
               | > The Telescript engine that supports an agent constantly
               | monitors its resource consumption. If the agent exceeds
               | any of its quantitative limits, the engine destroys the
               | agent unceremoniously. No grace period is extended. The
               | agent has, as the saying goes, "no place to run, no place
               | to hide."
               | 
               | > An agent's permit plays an important role in the
               | electronic marketplace by enabling the agent's authority
               | to constrain the agent's activities a priori.
        
         | Rohansi wrote:
         | Can't confirm but since it's running in a VM it could easily
         | just time out and abort.
        
       | mometsi wrote:
       | Interesting that the concept of Cloud Computing dates back to at
       | least 1994:
       | 
       | > "The beauty of Telescript," says Andy, "is that now, instead of
       | just having a device to program, we now have the entire Cloud out
       | there, where a single program can go and travel to many different
       | sources of information and create sort of a virtual service. No
       | one had conceived that before.
       | 
       | (from https://www.wired.com/1994/04/general-magic/)
        
       ___________________________________________________________________
       (page generated 2023-09-09 23:01 UTC)