5 ms·
Emacs was Amazon's first Customer Service email system: "Shel wrote Mailman in C, and Customer Service wrapped it in Lisp. Emacs-Lisp [...] Mailman was the Cus
by pbourke 6y ago
Emacs was Amazon's first Customer Service email system:
"Shel wrote Mailman in C, and Customer Service wrapped it in Lisp. Emacs-Lisp [...] Mailman was the Customer Service customer-email processing application for ... four, five years? A long time, anyway. It was written in Emacs. Everyone loved it."
https://sites.google.com/site/steveyegge2/tour-de-babel https://sites.google.com/site/steveyegge2/tour-de-babel
Ironically, while I was searching for that anecdote I happened upon this gem about a successor system:
"I'm only a humble customer service representative in Amazon, I really hate the email editor we use to mail the clients after they call or chat with us. This, of course, means I need to include Emacs on my workflow so I can suffer less, let's Elisp the heck out of this problem!"
https://devrant.com/rants/520714/im-only-a-humble-customer-service-representative-in-amazon-i-really-hate-the-ema https://devrant.com/rants/520714/im-only-a-humble-customer-s...
- PaulDavisThe1st 6y agoThat blog post is incorrect. Mailman was written in C++, like all the early code at Amazon, but Shel and I decided to limit the C++ features we would use to a very small set. More like "C with classes". It was still C++ and it would not have compiled with a C compiler. It goes even "wronger": >Shel, Eric, Greg, and others like them that I wasn't fortunate enough to work with directly: they didn't allow C++ here, and they didn't allow Perl. We explicitly made the choice to use C++ (with the proviso mentioned above). We used Perl for a variety of tasks. Likely some of those choices were modified later, but it is incorrect to ascribe the "no C++" rule back to Shel and the beginning of Amazon, because the opposite is true. Source: Shel was employee #1, I was employee #2.
- DonHopkins 6y agoHa ha! Was "C with classes" influenced by ScriptX's "OIC" ("Objects in C"), which Shel Kaphan and Eric Benson worked on at Kaleida Labs? https://en.wikipedia.org/wiki/Kaleida_Labs https://en.wikipedia.org/wiki/Kaleida_Labs https://en.wikipedia.org/wiki/ScriptX https://en.wikipedia.org/wiki/ScriptX http://www.art.net/~hopkins/Don/lang/scriptx/tech-qa.html#oic http://www.art.net/~hopkins/Don/lang/scriptx/tech-qa.html#oi... >Q: What is Objects In C? >A: Objects in C (OIC) is a suite of function, macro, and class libraries that provide the object model used by ScriptX. OIC is modeled on CLOS, the ANSI standard LISP object-oriented programming system and supports capabilites such as dynamic types, global polymorphism, and dynamic method redirection. >OIC only requires an ANSI C compiler, which makes it highly portable. >Both ScriptX and the Kaleida Media Player are written in OIC. https://www.linkedin.com/in/shelkaphan/ https://www.linkedin.com/in/shelkaphan/ Shel Kaphan Principal Engineer Company Name: Kaleida Labs Dates Employed: Sep 1992 – Jun 1994 Employment Duration: 1 yr 10 mos Wrote a persistent object system for ScriptX, Kaleida's multi-media authoring language. ScriptX also influenced the "MAXScript" scripting language in 3D Studio MAX, which was developed by John Wainwright, one of the other architects of Kaleida ScriptX, and designer of "Objects in C". https://www.linkedin.com/in/john-wainwright-870110/ https://www.linkedin.com/in/john-wainwright-870110/ John Wainwright Chief Architect and Principal Engineer Company Name: Kaleida Labs Dates Employed: 1992 – 1996 Employment Duration: 4 yrs Negotiated the sale of Objects-in-C to Apple and Kaleida Labs, which was then adopted as the underlying object system for ScriptX. Responsible for further design and implementation of the object system. Within 6 months, assumed overal architectural responsibility for ScriptX and was the principal designer of the language and implemented the bytecode interpreter and other runtime system components. John went on to independently develop MAXScript for 3D Studio MAX, which he then sold to Autodesk, who built it in as the official MAX scripting language. Consultant Company Name: Autodesk Dates Employed: 1996 – 2000 Employment Duration: 4 yrs Location: Silicon Valley Independently developed MAXScript, a scripting language for Autodesk's 3D Studio MAX, the leading 3D modelling and animation product. I negotiated the sale of MAXScript to Autodesk for adoption as the core scripting language and continued development of MAXScript under consulting contract to Autodesk through 3 major releases. I migrated to core 3ds MAX development, re-architected the internal object model for enhanced scriptability and added several new features including the parameter-wiring based animation system. I also developed a 3D camera motion tracking system for 3D Studio MAX, presented talks and seminars on MAXScript at several successive SIGGRAPH conferences. I was awarded four patents in the area of 3D animation as inventor on behalf of Autodesk, Inc. MaxScript was a lot like ScriptX in many ways, and I enjoyed using both languages, which were pleasantly Lispy! After working on ScriptX at Kaleida, I used MAXScript at Maxis to develop the exporter and content pipeline for the character animation system in The Sims. Automating The Sims Character Animation Pipeline with MaxScript https://medium.com/@donhopkins/automating-the-sims-character-animation-pipeline-with-maxscript-bc490787d7a2 https://medium.com/@donhopkins/automating-the-sims-character...
- PaulDavisThe1st 6y ago> Ha ha! Was "C with classes" influenced by ScriptX's "OIC" ("Objects in C"), which Shel Kaphan and Eric Benson worked on at Kaleida Labs? I only said it was like C with classes. I don't remember where the decision came from, really. I had been working in C++ quite a bit at UWashington CS&E before starting Amazon (mostly on some private artificial life code), after about 5 years of working in C. It was such an obvious step forward, I didn't want to be limited to C only. As I recall, Shel was nervous about using too much of C++, which he was less enthusiastic about but also willing to see the upside of a limited subset of the language. Having been an onlooker in glib's "Objects in C" attempts for the last 20 years, I remain extremely happy to work in C++. I've just been implementing a constraint layout engine in C++ (using Kiwi) and comparing my code with what has to be done in the GTK version (written in C using glib's object model), it's hard to even begin to make a comparison. Let the compiler do it!
- DonHopkins 6y agoI got a kick out of how Dave Ungar implemented the original Self compiler with a whole lot of hard core C++ code. Implementing such an extremely un-C++-like language as Self in such an extremely un-self-like language as C++.
- TeMPOraL 6y agoI guess once you cross the Greenspun's tenth rule threshold, everything is possible :).
- lispm 6y agoIt has never been released? Interestingly other Lisp hackers were involved: "Real-Time Garbage Collection in a Multimedia Programming Language" https://pdfs.semanticscholar.org/7fa1/6e4c4c92d45e4435646bacb275cd1a36fec4.pdf https://pdfs.semanticscholar.org/7fa1/6e4c4c92d45e4435646bac...