¿Puedes ganar dinero escribiendo AppleScript? ¿Y es difícil elegir a un no programador?

A2A

¿Solo haciendo eso, y solo eso?

Puedes ganar algo de dinero con eso, ya que hay trabajo a destajo / trabajo en equipo disponible para hacerlo. Sin embargo, creo que sería imposible ganarse la vida haciéndolo.

La mayoría de los trabajos que involucran AppleScript implican muchos otros trabajos y un poco de AppleScript; en otras palabras, son como un desayuno con huevos, papas fritas, tocino, jugo de naranja, leche, tostadas y un tazón de cereal.

AppleScript es el azúcar que quizás le pongas al cereal, la sal que le pongas a los hash browns, la pimienta que tal vez le pongas a los huevos.


AppleScript tenía mucho potencial, pero al principio hubo varios problemas que hicieron imposible que AppleScript se convirtiera en la “Respuesta de Apple a Visual Basic”.

Y para que pueda ganarse la vida: ese es prácticamente el nicho que necesitaría llenar por completo.


Lo primero que salió mal es que Apple apostó más o menos por el caballo equivocado, cuando se trataba de paradigmas de desarrollo; los ha convertido en ciudadanos de segunda clase en el ámbito de las pequeñas empresas desde entonces.

Cuando desea interactuar con los datos creados por un programa de Microsoft, como Word , en su propio software, es realmente muy simple: utiliza el archivo DLL de Microsoft que sabe cómo están organizados los datos y lo abre en su programa con LoadLibrary ( ), encuentra la función que desea con GetProcAddress () y luego llama a través del puntero de función para llamar a la función de biblioteca.

Puede ser mucho más simple que eso, pero eso es lo básico de cómo hacerlo, usando llamadas de bajo nivel.

En otras palabras: Microsoft usa un modelo centrado en datos, en el cual la biblioteca posee los datos.

Cuando desea interactuar con los datos creados por un programa de Apple, como iTunes , en su propio software, es realmente muy simple: abre una instancia de iTunes, el programa iTunes sabe cómo están organizados los datos y lo envía mensajes diciéndole a iTunes qué quieres que le haga a los datos.

Y si iTunes lo desea, y el programador que diseñó la API de mensajes lo permitió, y si no está excluido arquitectónicamente, iTunes hará a los datos lo que usted le pidió que hiciera, pero nunca podrá toca los datos tú mismo.

En otras palabras: Apple usa un modelo centrado en el actor, en el que la aplicación posee los datos.

Una de las ventajas de esto es que, aunque su biblioteca de iTunes (para continuar con el ejemplo) está almacenada en el disco con un montón de archivos y un árbol de índice XML ( eXtensible Markup Language ), e iTunes puede manejar el contenido de eso, no puede usar la parte ‘X’ de ‘XML’.

Entonces, si desea, por ejemplo, tomar una aplicación de biblioteca de música de Windows y agregar anotaciones a cada canción, puede hacerlo.

Pero si quisieras hacer lo mismo con una biblioteca de música de iTunes, no podrías.

¿Cuál es una anotación útil que Apple no pensó en proporcionar en el momento en que congelaron el esquema XML para iTunes en cemento? ¿Qué tal “Estoy designando de 0: 07.2 a 0.15.8 de esta canción como el tono de llamada favorito de Bob # 1 “?

Ahora, no tengo que sacar esa canción de iTunes, guardarla en Garage Band, editar la pieza para incluir solo esa parte, guardarla como un nuevo MP3 y luego volver a importarla en iTunes como tono de llamada.

Y ese es solo un ejemplo.


La segunda cosa que Apple hizo mal fue que no anotaron widgets.

Esta es la forma elegante de decir “no todo en la interfaz de usuario debe tener un nombre que pueda usarse para hacer referencia a él”.

Entonces, si va a automatizar una tarea, debe hacerlo desde fuera del programa que está tratando de hacer el trabajo por usted.

La forma en que esto normalmente funciona es: usted sabe cómo trabajar el programa, por lo que obtiene todos los pasos que debe seguir, como si un humano hiciera el trabajo, en lugar de un programa.

Luego, representa todas las imágenes de todo lo que necesita hacer clic, utilizando la misma fuente que se utiliza en el programa .

Luego escribe scripts para encontrar esas imágenes en el búfer de cuadros en la pantalla, y mueve el mouse allí para hacer clic en la cosa. O comienza a “escribir” la entrada que desea.

¿Y tal vez? No es la primera aparición de ese patrón de píxeles, la búsqueda de izquierda a derecha, de arriba a abajo, es la tercera. Entonces le dice que busque el tercero y haga clic en él.

¿Y si dejas de probar la versión en inglés y ahora quieres probar la versión en alemán?

Representas todas las imágenes de todo lo que necesitas hacer clic, usando la misma fuente que se usa en el programa, solo en alemán, y esperas que todavía sea la tercera ocurrencia, y que no se mueva contigo cuando cambiaste de idioma.

Esto es un dolor

En otras palabras: Apple usa un modelo de objeto UI no anotado.

Hacer esto en Windows es mucho más fácil si tiene que hacer las cosas de esta manera: todo está organizado en una jerarquía de objetos y todo tiene un nombre. El nombre es invariante en la fuente, ya que nunca se muestra a un humano que no sea un programador.

Es invariante en su valor ordinal, porque no es una jerarquía aplanada en un búfer de trama, por lo que simplemente baja la jerarquía hasta llegar a ella.

En otras palabras: Microsoft usa un modelo de objeto de IU anotado.

Para ser justos: Apple ha revisado las pautas de la interfaz de usuario, y se supone que debes usar el mejor modelo (anotado) en su lugar, para que puedas escribir las cosas para poder conducir el programa para que haga lo que quieres hacer, si no hay ningún mensaje para decirle al programa que lo haga.

No todos siguen estas pautas … ni siquiera los programadores en Apple.

¿Qué hay de Microsoft? Si recuerdas, aunque puedes hacer estas cosas en cualquier sistema de Microsoft, porque ha forzado la anotación … casi nunca tienes que hacerlo , porque puedes abrir la DLL y usarla para explotar los datos directamente, sin hablando con un programa


Hay al menos media docena de otras cosas que Apple hizo mal : la verificación previa es muy importante, por ejemplo: pide permiso, en lugar de perdón, lo cual es genial, hasta que esté operando a través de una red informática.


El gran resultado?

El gran resultado es que AppleScript es solo marginalmente útil, en el mejor de los casos.

Nunca va a juntar un montón de aplicaciones en un flujo de trabajo, para administrar un consultorio dental completo: por un lado, no tendría que tocar la máquina mientras está “haciendo lo suyo”, o podría tirar cosas fuera de control.

Con Visual Basic (y ahora, sus sucesores), es bastante fácil unir un montón de archivos DLL en lo que parece una aplicación, pero en realidad no es más que un montón de código de pegamento, para ejecutar ” Dr. Bob’s Dental Destination! “.


Si quieres hacer este tipo de cosas, sería mejor que te quedes con Microsoft como plataforma; Es mucho más fácil hacerlo allí.

Escribir AppleScript fue mi primer concierto pagado a tiempo completo, así que sí, puede (podría) hacerse …

Pero, en general, no, es un lenguaje extremadamente especializado, y Apple no lo admite de ninguna manera real.

¿Es difícil de recoger? Sí, lo es, incluso como programador, es un lenguaje difícil, la documentación suele ser mínima o inexistente, y el “vocabulario” cambia según la aplicación que esté escribiendo. En AppleScript avanzado, hay muchas conjeturas y piratería.

El mundo de Mac se está alejando de AppleScript, no va a ninguna parte, puede haber trozos de trabajo para recoger de vez en cuando, pero si algún lenguaje se va a morir, será AppleScript.

Una pregunta interesante Mi trabajo durante más de diez años ha sido como desarrollador de Mac para una empresa de impresión y empaque. Las soluciones internas ahorran alrededor de 800 horas hombre al mes y la mayoría de estas soluciones implican al menos * algunos * AppleScript.

Al comienzo de mi carrera, muchas soluciones solían ser 100% AppleScript. Ahora son principalmente Objective-C y / o Swift, aunque todavía hay algo de AppleScript flotando y muchas soluciones no funcionarían sin él.

En resumen, puede ganar dinero escribiendo AppleScripts (¡lo hago!), Pero probablemente no encontrará un trabajo que le pague por * solo * escribir AppleScript, aunque sigue siendo una habilidad adicional útil para los desarrolladores de macOS.

Dudo que puedas ganar dinero si esa fuera tu única habilidad. Escribo (o edito) el código Applescript para mi trabajo, pero es una parte muy pequeña de mi trabajo. Sucede que la semana pasada pasé 2 o 3 horas trabajando en un script, pero la mayoría de las semanas pasé cero horas haciendo el trabajo de Applescript.

Creo que un no programador podría mirar mi código y descubrir qué hace la mayor parte. (A menudo mezclo el script de shell bash en mi applecript; eso probablemente sería opaco para los no programadores).

Si desea invertir tiempo en aprender un lenguaje de secuencias de comandos, sería mejor con Python, Perl o Ruby

Probablemente pueda ganar dinero haciendo cualquier cosa, aunque esto es bastante especializado; No puede haber demasiadas partes interesadas. Sin embargo, sé cómo programar en al menos 20 idiomas y honestamente encuentro AppleScript el más incómodo. Un no programador probablemente podría aprenderlo, pero su sintaxis aparentemente inglesa hace que sea más difícil de aprender que la mayoría.