4 ms·
Telescript (programming language)
- temeya 3y agoAs 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 3y agoYeah, 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.
- tapoxi 3y agoFor anyone else amazed by General Magic, the recently released documentary is available for free (legally) on YouTube: https://youtu.be/JQymn5flcek?si=zm-PJtQExOHol7r- https://youtu.be/JQymn5flcek?si=zm-PJtQExOHol7r-
- 7373737373 3y ago"This video is not available" for me
- tapoxi 3y agoIt'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/ https://www.generalmagicthemovie.com/
- froh 3y agothe 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 3y agoIt 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.
- 7373737373 3y agoHow did the server side prevent infinite loops?
- Rohansi 3y agoCan't confirm but since it's running in a VM it could easily just time out and abort.
- cryptonector 3y agoDoes 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 3y agoI 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 3y agoTelescript 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 3y agoApparently this system was called "Permits", I just found a description here: https://web.archive.org/web/20210625004816/http://www.datarover.com/Telescript/Whitepapers/wp1/whitepaper-1.html https://web.archive.org/web/20210625004816/http://www.dataro... > 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 50¢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.
- samsquire 3y agoThis 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 3y agoTemporal? (I'm fascinated by e.g. termite scheme, I like learning about more variations on this theme :)
- lacrimacida 3y agoWhats termite scheme and what is it used for?
- mst 3y agoIt's basically dead now* but it was an extension of gambit scheme that was designed to be part of a networked system out of the box, including the capacity to spawn a 'process' (think erlang-style) on another node from a thunk. There was a paper on providing r7rs module support that I preserved a copy of here: https://trout.me.uk/lisp/termite-r7rs.pdf https://trout.me.uk/lisp/termite-r7rs.pdf * as tends to rapidly become the fate of esoteric lisp projects, but I still find them fascinating to steal ideas from
- samsquire 3y agoThis is the project's homepage from the people who made it I think came from Uber: https://www.temporal.io/ https://www.temporal.io/ It's a workflow system that is resilient to crashes but when I asked them on their forums how it worked, they explained it to me: it memoizes/stores API call results to a server backend so that if you replay your program with the same API call results it should get into the same state. It requires your program be deterministic. Thank you for mentioning Termite scheme, I'll look into that. I'll drop you an email if you want to talk about thoughts, dreams about this topic since you're interested :-)
- dang 3y agoRelated: Telescript programming language - https://news.ycombinator.com/item?id=17483436 https://news.ycombinator.com/item?id=17483436 - July 2018 (13 comments)
- cout 3y agoA 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 3y agoStackless Python can do it as well, very cool: https://stackless.readthedocs.io/en/2.7-slp/library/stackless/pickling.html 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.
- mometsi 3y agoInteresting 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/ https://www.wired.com/1994/04/general-magic/)
- fmajid 3y agoI actually worked on this at the beginning of my career (I still have the mug to prove it), quickly concluded the technology was inadequate and doomed (mostly due to considerations around atomic transactions), and bailed shortly after. General Magic had a partnership with AT&T and they did much of the heavy lifting to make it semi-viable, for instance Bell Labs developed "High Telescript" (the underlying Telescript was more akin to Forth). AT&T expended a ridiculous amount of money on the project, with almost no revenue to show up for it, but some of those investments like their dialup modem server or their email platform were later repurposed in their Internet Service Provider offering.
- ralphc 3y agoIf you have a classic Mac or emulator you can get a MagicCap emulator and SDK. I even toyed with making a High Telescript server but that would be a lot of work with almost no documentation. If you want to mess around with the emulator and SDK you need a FPU in a 68K Mac or the PowerFPU extension in a PowerPC Mac. Despite the bad name that extension adds emulated 68K FPU to the 68K emulation.
- cjohnson318 3y agoThis shook me: In 1990, Marc Porat convinced then-Apple-CEO John Sculley that the future of computing lay not in desktop personal computers, but much smaller portable devices combining computing power, communications systems, and data located on network-accessible servers.[1] 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.