Personally I’m finding myself more and more using compiled Swift scripts (i.e. binaries), also in conjunction with KM.
For my personal use this is not a problem, since I just throw them into my ~/bin folder.
But I noticed, especially while writing this post, that this might not be as straightforward to other users. You have to provide instructions on how to to place executables in the PATH, and furthermore how to make the PATH available to KM. — Or telling the user to prefix the executable with an explicit path in the shell script. Which isn’t very user-friendly either.
This is due to the fact that KM macros are plain XML files.
Now, let’s have a look at how this is handled by LaunchBar:
When distributing a LaunchBar action I can include any script, executable, etc. inside the package/bundle. As long as I refer to the correct relative path, of course.
This model (the package/bundle model) makes distribution so much easier, more attractive. Besides being able to put my Swift bins into the package I can also distribute entire perl modules and —if needed— a whole pandoc installation along with my Actions/Macros. For an example see here: page | direct download.
I know that this would mean a really major change to the KM macro format. But maybe a new, advanced macro format could coexist with the traditional one?