10 ms·
How Apple Programmer Sal Soghoian Got Apps Talking to Each Other
- hellofunk 8y agoI'm quite surprised they fired Soghoian in 2016 rather than assign him elsewhere within Apple when they decided Automator wasn't worth it anymore (despite that they still have a page for it here: https://support.apple.com/guide/automator/welcome/mac https://support.apple.com/guide/automator/welcome/mac). He was obviously a brilliant guy, so I find it strange he couldn't have had a good fit anywhere in the company.
- sswaner 8y agoI wish they had moved Sal to the Siri team. Imagine the possibilities.
- canuckintime 8y agoAgreed. That's the next step in making automation more accessible to most people. A personal assistant that automatically suggests workflows you can download would be a game changer
- hhas01 8y agoMillions more sales for Siri’s competitors.
- spicy_jew 8y agoUsually this means there were other obscure reasons e.g. Jobs was afraid Soghoian would take his positions through automation.
- deleted 8y ago[deleted]
- cpr 8y agoSal is a world-class jazz musician, which is his real love. Great man.
- mathattack 8y agoI thought he looked like a musician rather than a programmer. (Even if many programmers are also musicians)
- kumarvvr 8y agoFired without any notice. Simply told his position doesn't exist anymore. Since corporations are people, this one is a cold hearted bitch.
- gaius 8y agoThat’s at-will employment. Never happen in France.
- kumarvvr 8y agoWhat I am alarmed at, is the apparent casual nature of conversation we have about people 'positions not existing anymore'. It no longer alarms anyone, no longer seems wrong to anyone that worker rights, which are the bedrock of a fair and just society, are being eroded right before our own eyes. I don't advocate for socialism, but unchecked capitalism will lead to a fragile society, rife with periodic revolutions and collapses. Lack of empathy for workers and the masses is the true cancer of democracy.
- blackbrokkoli 8y agoDespite this sounding like some kind of demagogic propaganda, I kinda was with you until > Lack of empathy for workers and the masses is the true cancer of democracy. ...what? This is such a incredible weird statement - like, dictators are more empathetic for the workers? You kinda propose socialism (while sounding like nobody should touch it with a ten foot pole) but not in a democratic manner? Might I point towards the EU, where the problem we're talking about is non-existent and also it's a democracy with socialist elements...?
- test001only 8y agoNot the original poster but I don't think he is decrying democracy. When he says cancer, it is not democracy he is talking about, he is talking about lack of worker rights which should be rectified in the context of democracy. I believe he is agreeing with his parent post – democracy with socialist aspect, similar to France and in turn agreeing with you - similar to EU.
- awat 8y agoSpeaking of Sal Soghoian I’ve always loved this little party trick Applescript that sings Happy Birthday. I can’t remember the old Mac site I got it from but I remember him being credited for it. https://hastebin.com/becorikaja.sql https://hastebin.com/becorikaja.sql
- j-pb 8y agoI would love easy app automation, but applescript was and is the worst coding experience I've ever encountered. It basically boils down to dictionary and syntax guessing with no clear semantic.
- scarface74 8y agoExactly. It was like the uncanny valley of programming. It was so close to English that you would think should work didn't. I never had that issue with HyperTalk back in the day. But, Applescript was always just an implementation detail. The underlying Open Scripting Architecture has always worked with multiple languages.
- ryanianian 8y agoBoth the syntax and the built-in Script Editor application are unhelpful and confusing. I find even C++ more approachable. In recent years they've added JavaScript bindings which solves the syntax and editor problem. But most documentation is still presented for AppleScript coders so you have to mentally translate what you want to the AS first and then to JS, so it's still basically useless without extreme mental energy. And good luck debugging.
- hhas01 8y agoHere’s a little screed I tried posting in Disqust. Not great, but I don’t have time to rewrite it right now. ------------------------------------------ Evening Wired, Well, that story was a bit of a hot mess. Wrong title, buried lede (Workflow! WWDC!), unfocused and confusing. At least until compared to one of my screeds—enjoy! has -- 1. Who’s the “One Apple Programmer [who] Got Apps Talking to Each Other” of your title? ’Cos it’s definitely not Sal Soghoian. Sal’s not, and never was, an “Apple Programmer”. He was an amateur AppleScript user and early evangelist, who lucked his way into his management job at Apple several years after Apple broke up the original AppleScript team. (More about Sal later.) The Apple programmers who led the creation of AppleScript were William Cook and Warren Harris, who in turn were building on the HyperTalk language Bill Atkinson previously created for HyperCard and the Apple event IAC (Inter-Application, or Inter-Process, Communication) architecture then being developed for Apple’s first true multitasking Mac OS, System 7. Conceived around 1989, development started in ’91 and shipped in ’93, initially as a Pro extra, then as a standard feature from 7.1 on. Then Apple management gutted their department, reassigning half the team “to get OpenDoc ready to throw away” [as one internet wag drolly put it], and Cook and Harris quit in response. That the suddenly-orphaned infant AppleScript survived at all is a testament to its remarkable virtues; that using it causes as much hair-pulling as joy may be largely due to the subsequent lack of toilet training. Dr Cook documented the full early history of AppleScript’s creation in the following paper: www.cs.utexas.edu/~wcook/Drafts/2006/ashopl.pdf Invaluable insights for anyone who wants to understand why Applescript was created and how it interacts with Mac desktop applications. (Hint: Unlike traditional object-oriented messaging systems—CORBA, DCOM, Distributed Objects, SOAP, etc—Apple event IPC uses RPC plus simple relational queries, more akin to SQL. VERY powerful, very user-oriented. Ubiquitously misunderstood.) .. 2. I’m going to speculate here that Apple will announce a new cross-platform automation strategy at WWDC next week, built on the Workflow app and team they bought in a couple years ago; hence the timing of this article. In which case, you really should’ve made the hot new Workflow App and its ambitious team of indie creators the centerpiece of your article; not some old failed automation product manager whose old failed automation products are about to be ousted. As to Workflow itself, if/when it ships, no doubt there will be much fanfare and many claims that it’s the greatest innovation since sliced bread, but the truth is: it’s weak sauce at best; a gilded cell at worst. There is a vast history of end-user computing and computer education for explorers and innovators to draw on; far too long to get into here, but TL;DR: Papert was Right. Workflow, Automator, Scratch, Windows Workflow Foundation, et al are works of evangelical techies who think the way to evangelize their idea of “programming” to #OrdinaryPeople is to slather some lickable lipstick on their beloved pig and present it as “Programming for the Rest of [You]”. Whereas ordinary people would think, “WTF would I ever want to lick a pig?”, and work from there. Papert demonstrated decades ago(!) that the right way to make computing accessible is to shape the language to fit its users; and the right way to do that is to give users the power to grow and shape that language by and for themselves, by growing its basic vocabulary with their own words and phrases for expressing the ideas and behaviors that interest them. In other words: don’t hand the user a predetermined set of tools to use, but rather give her the tools she needs to make her own tools to use. Workflow, Scratch, &co don’t merely fail to empower users this way; they don’t even try at all. The resulting software may be a glitzy, seductive App that provides a lower barrier to entry than “Real Programmer” languages, but with an extremely low, immovable ceiling too. Papert’s Logo derived from Lisp/Forth for a reason: that stuff scales. Today’s mainstream programming world knows and thinks in “C”, which does not. .. [cont…]
- mimimihaha 8y ago“Saul whom you all know” https://youtu.be/8V67pNDRrDM https://youtu.be/8V67pNDRrDM Happens at 9:55
- amitagarwal 8y agoDirect link - https://youtu.be/8V67pNDRrDM?t=595 https://youtu.be/8V67pNDRrDM?t=595
- Eric_WVGG 8y agoA couple weeks ago I wrote an Automator folder action that faxes any PDF dropped into it (https://github.com/EricWVGG/birchfax https://github.com/EricWVGG/birchfax, if anyone is interested). Uses a bit of Automator, a bit of Applescript, a bit of Node. Fun little exercise and has been enormously useful to a friend whose life now depends on faxing forms to hospitals and insurance companies every week. But the whole experience also left me sad about the Macintosh platform. Applescript is a hot mess of a language; it can be done in Javascript now, but that's largely undocumented. Thanks to poor accessibility of the technology, the support for scripting in apps is waning. Automator, goodness, what a wild tool… but again, the documentation is horrible. Apple made two phenomenal technologies and then completely fumbled on the last mile. The future of initiatives like Siri needs robust inter-app scripting. My only wish for the future of MacOS and iOS is a renewed push for this. (okay, that and lock screen "complications")
- neurobashing 8y agoThe "JavaScript for Automation" stuff is extremely incomplete, and to make matters worse, whatever dingus in XCode generates the documentation only knows about AppleScript, so sometimes you get object methods called properties and in any event the return type is wrong, etc. Basically made it work well enough for a few things that ship on a default OS X install and stopped.
- crooked-v 8y agoIt also has the problem that there's no straightforward way to use external packages at all, which is a killer for efficient Javascript use.
- hhas01 8y agoThis. This. And Absolutely This. npm integration was an absolute must-have to ensure popular adoption; even I could see this straightaway. Alas, as last Apple bastion of Not Invented Here, the Mac Automation team insisted on rolling everything themselves. All problems I told Sal about before JXA ever shipped. Told him about lots and lots of problems, which he pretty much ignored. Even wrote and sent him a quick-n-dirty JavaScript OSA implementation (https://sourceforge.net/projects/appscript/files/ https://sourceforge.net/projects/appscript/files/), by which time the man didn’t even have the common manners to say “thanks but no thanks”. A charming chap who talks great game, but a thin-skinned martinet. There was no technical reason JXA could not have been 99.9% as good as AppleScript at application automation, and a million times better at everything else. 100% PEBKAC.
- spiralpolitik 8y agoThe automation side of Apple has been moribund for many a year. It's almost like they can't bring themselves to make the hard decisions that they need to make: kill off AppleScript, burn out the dead wood, focus on standardizing on one system wide scripting language that is well documented supported by a first class toolchain. Although in this case I think the rot started much earlier with the abandonment of HyperCard under Jobs 2.0. I remember in the 90s many small business built their own HyperCard stacks to run the business and it made a lot of people Mac owners even in the dark days of 92-97. Imaging having the same system today available across the platform, especially on the iPad. You can see the shoots of the idea there in the form of Playgrounds, Workflow etc but they need to think much bigger.
- yuhong 8y agoYea, AppleScript was good when it was invented in 1993 with System 7 Pro. One early problem with it was the CFM port of ObjectSupportLib (68K used a static library), which took until the release of version 1.2 in 1997 before most of the major problems was solved.
- hungerstrike 8y agoThis article fawns over a guy who quite mistakenly thought his terrible automation software was better than Windows, who then went on to "invent" callback URLs.
- saagarjha 8y ago> This article fawns over a guy who quite mistakenly thought his terrible automation software was better than Windows The technology behind it was (and still is) amazing. I'm not aware of anything in any other major operating system that even comes close. > who then went on to "invent" callback URLs No, that was Greg Pierce. Soghoian was still at Apple at that point.
- db48x 8y agoPerhaps it depends on how you define "major", but Smalltalk and the Lisp Machine come to mind.
- stormking 8y ago> I'm not aware of anything in any other major operating system that even comes close. ARexx on AmigaOS was pretty similar and shipped first (1990).
- saagarjha 8y agoI wouldn't consider that to be a major operating system.
- stormking 8y agoIt was, in the day (and market).
- cromwellian 8y agoThe AmigaOS was far more advanced than MacOS in 1990 just as the Amiga hardware was 5 years more advanced than the Mac at launch. There were about 5 million Amigas in circulation, especially in Europe, by 1990. How many home users owned Macs at that point? Apple users seem to overstate the importance of early pre-OSX Apple. For example, The Apple II was brutally outsold by the Commodore 64 which was far more powerful and became the most popular 8bit home computer ever sold. (That is, the Apple II was far less important than the hagiography makes out)
- makecheck 8y agoI’m wondering if Swift Playgrounds (both the app and the Xcode pane) and the purchase of Workflow could be leading to an updated automation strategy. If they want students to learn Swift on an iPad, they must think it isn’t too complex for other stuff. AppleScript has always been powerful at the great expense of being a pain to implement. And it has a sort of Visual BASIC kind of dependency among longtime Apple customers (probably why it never dies entirely). When I abandoned AppleScript and switched to Python bindings, one of my reasons was that I wanted a more standard language with access to useful libraries. Swift could be that now...
- hhas01 8y agoNah, Apple’s selling Swift to kids cos Tim Cook is a dingus who learned nothing of marketing while under Steve Jobs. Ol’ Steve would decide what consumer market he wanted to create, then beat all his engineers mercilessly to make the products that would fit that market. Tim just lifts whatever sack of crap they’ve got and tries to find suckers to buy it. Swift is rubberized C++; an Apple engineer’s vanity project made good; a second-rate development language for Cocoa development, and a pedagogical joke as far as kids are concerned. If Tim thinks SP is going to save Apple’s ed markets from being eaten by Chromebooks, he’s even less fit as a CEO than Stephen Elop. .. As to AppleScript, the pain for App developers was always in how to design and implement a robust, powerful, and user-friendly query-driven UI on top of their app, without Apple even telling them it was query-driven (not OO); never mind giving them a robust, powerful, and developer-friendly framework in which to build it. Still a non-trivial technical challenge, mind (just ask SQL/RDBMS engineers), but Apple could’ve still made it a lot less painful (i.e. better docs and support) and a lot more worthwhile (i.e. tons more users). Make it worth programmers time financially and/or personally, and they’ll crawl over broken glass to do it. But Apple mismanaged AppleScript almost from the start: pissing off its key designers so they walked out, taking all their knowledge with them, and then downhill from there. And as for all the popular languages that Sal _could_ have won over to Mac Automation, along with their millions of users for whom it should’ve been 100% pure Catnip for Geeks: * Python (appscript, 2005—hey! have we met?) * Ruby (rb-appscript, 2006) * Objective-C (objc-appscript, 2007) * JavaScript (“JavaScript OSA”, 2014; NodeAutomation, 2017) * Swift (SwiftAutomation, 2015) I wrote production-quality Apple event bridges for every one of the above, and tested, used, and supported most of them too. (We still use Python3+appscript ourselves—the stuff it can do is phenomenal.) And in the end I buried them all too, after Sal’s team, thinking they knew everything, stuck their own broken-ass garbage in Mac OS X and stunk those markets out. Part of which is my bad for being an utterly useless salesman; but mostly it’s on Sal for being such an arrogant ignorant and/or downright incompetent Product Manager for 20 years; and on Apple for not sacking his ass years sooner, before he ran Mac Automation into the ground for good. Good times.
- mankash666 8y agoWe live in a post-OS world. Having an 'Apple'Script for Apple-only devices isn't scalable. A cross platform, OS, processor agnostic equivalent of Apple script should do well in today's world
- hhas01 8y agoTitle is wrong. William Cook and Warren Harris were the Apple programmers who created AppleScript: www.cs.utexas.edu/~wcook/Drafts/2006/ashopl.pdf Sal Soghoian was the Product Manager hired years after they left who ran AppleScript into the ground.
- sriram_malhar 8y agoI have always hated the Automator experience. I'm never sure about the syntax ... it looks like English, but never what I can come up with. Most apps that I use don't publish their dictionaries.
- peterashford 8y agoThis sounds like what Amiga people were doing with Arexx from 1987