A improvável persistência do AppleScript

Primeiro, um pouco de história:

Apple adquirida Próximo no final de 1996, com o plano de utilizar os recursos daquela empresa Sistema operacional OpenStep como a base para o futuro do Mac OS. O primeiro plano para esse sistema operacional foi chamado Rapsódia, e a ideia básica era que fosse o OpenStep com aparência de Mac.

A ideia era manter todo o material da NeXT e jogar fora todo o material do Mac. Essa ideia não voou - especialmente com os desenvolvedores de Mac existentes. Isso forçou a Apple a adotar um novo plano, o Mac OS X, que era um híbrido das tecnologias NeXT e Mac. Esse plano foi mais complicado e levou muito mais tempo para ser implementado - o Mac OS X 10.0 não foi lançado até março 2001, e sem dúvida não era realmente utilizável até 10.2 em maio de 2002 - mas conquistou o apoio de desenvolvedores e Mac Usuários.

Ao longo dos anos seguintes, porém, o Mac OS X evoluiu em uma direção decididamente distorcida do NeXT. As tecnologias do Mac OS X que começaram na NeXT (como Cocoa e Services) prosperaram; as tecnologias do Mac OS clássico (como o Carbon) foram obsoletas e eliminadas.

O AppleScript, no entanto, é uma exceção a esse padrão evolutivo - e, em muitos aspectos, excepcionalmente surpreendente.

Não é o único

AppleScript apareceu pela primeira vez no System 7.1 em outubro de 1993, como o primeiro e eventualmente canônico Linguagem de script Open Scripting Architecture (OSA). A ideia era que o OSA forneceria uma arquitetura de baixo nível para scripts inter e intraaplicativos - em outras palavras, um sistema consistente mecanismo para vários aplicativos se comunicarem e trocarem dados uns com os outros, e para os usuários automatizarem tarefas dentro de qualquer script aplicativo. Em vez de cada aplicativo criar sua própria linguagem de macro incompatível, haveria uma maneira universal de automatizar os aplicativos do Mac.

AppleScript não foi originalmente planejado para ser a única linguagem de script OSA, mas foi. A ideia era que o OSA era independente de linguagem, e o plano era que eventualmente houvesse vários deles. AppleScript era a linguagem amigável, derivada do HyperCard HyperTalk (ali outra história inteiramente) e destinado ao uso por não programadores. A teoria é que uma linguagem de programação que parecia prosa em vez de código pode permitir que uma ampla faixa de “não programadores” programe.

A ideia era que eventualmente poderia haver uma linguagem de script OSA mais tradicional (algo que parecesse, sintaticamente, mais com uma linguagem como C ou Pascal) para usuários avançados. Esse sonho nunca se concretizou. Houve algumas exceções obscuras (desenvolvedor Mark Alldritt criou uma versão do JavaScript que funcionava como uma linguagem de script OSA, por exemplo), mas o AppleScript foi a única linguagem OSA que já teve suporte da Apple ou tração entre os usuários.

Uma língua estrangeira

O que torna tão surpreendente que o AppleScript sobreviveu e continua sendo uma tecnologia totalmente suportada pela Apple hoje (incluindo no OS X Mountain Lion) é que ele nunca foi amado por ninguém. Foi uma boa teoria e um nobre experimento, mas acontece que uma linguagem de programação parecida com o inglês não permitiu que um grande número de usuários se tornassem programadores. E, inversamente, a sintaxe semelhante ao inglês do AppleScript muitas vezes fez (e até hoje continua a fazer) coisas mais difícil e confuso para os roteiristas, não menos.

Simplificando, o número de programadores no mundo que consideram o AppleScript sua linguagem favorita caberia em um carro muito pequeno ou talvez até mesmo em uma bicicleta. Mas, como observado, o AppleScript foi a única linguagem de script OSA que ganhou força.

Aumentando ainda mais as probabilidades, a capacidade de script OSA exigia suporte de arquitetura de baixo nível dos desenvolvedores de aplicativos. Os desenvolvedores não podiam simplesmente apertar um botão no compilador para tornar seus aplicativos passíveis de script pelo AppleScript; eles precisavam adicionar suporte de script manualmente, por meio de muito trabalho. E o Cocoa, a estrutura de aplicativos da NeXT, não foi originalmente projetado com o AppleScript em mente.

Ainda vivo e bem

Para recapitular: Tecnologia decididamente antiga da Apple/pré-NeXT. Uma sintaxe de linguagem de programação que frustrou os especialistas e falhou em atingir seu objetivo pretendido de capacitar não programadores para programar. Uma incompatibilidade técnica com a estrutura do aplicativo Cocoa. Você precisa desse contexto histórico para entender o quão improvável foi o sucesso de longo prazo do AppleScript. Alguém com acesso a uma máquina do tempo poderia ganhar muito dinheiro voltando para o Apple’s Worldwide Developers Conference 1998 e aceitando apostas de que o AppleScript estaria vivo e bem no ano 2012.

Mas vivo e bem está.

Eu tive, desde o início, uma relação de amor/ódio decididamente mais bifurcada com o AppleScript do que com qualquer tecnologia da Apple. Eu desprezo a sintaxe da linguagem - sua ambigüidade, sua propensão para conflitos de terminologia difíceis de identificar entre diferentes escopos, sua verbosidade geral. Mas adoro o que o AppleScript me permite fazer. A automação de tarefas frequentemente repetidas. Criar meus próprios pequenos recursos dentro dos meus aplicativos mais usados ​​e dos quais mais dependo.

Estou escrevendo este artigo no BBEdit, um aplicativo para o qual comecei a escrever AppleScripts há mais de 15 anos. Eu uso alguns desses scripts de mais de 15 anos hoje e todos os dias. Eu escrevo novos roteiros o tempo todo. Os detalhes de como eu o uso não importam tanto quanto o resultado final, que é que o AppleScript me permite adicionar meu ter recursos para os aplicativos que eu mais uso - recursos que podem não fazer sentido para o usuário típico, mas que me poupam tempo e aborrecimentos.

E, em um sentido muito real, o AppleScript moderno silenciosamente alcançou seu objetivo original de permitir que não programadores criem seu próprio software - não através do script AppleScript, mas sim através do Automator, que é construído sobre a mesma tecnologia subjacente e é indiscutivelmente mais popular do que seu antecessor.

AppleScript sobreviveu e permaneceu relevante durante uma transição turbulenta de uma década, apesar de sua linguagem não amada sintaxe e obstáculos técnicos, pela simples razão de que resolve problemas do mundo real de uma forma que nenhuma outra tecnologia OS X faz. Em teoria, o AppleScript poderia ser muito melhor; na prática, porém, é a melhor coisa que temos que funciona. Ele exemplifica as vantagens do Mac sobre o iOS para consertadores e usuários avançados.

  • Apr 16, 2023
  • 91
  • 0