Alcides Fonseca

40.197958, -8.408312

MetaSoftware

I’m a huge believer in scriptable software. Developers should design the core of their apps, with the most-common features, so it works out of the box. If the application is popular, users will ask for features for their particular usage, which makes sense to them, but not only to everybody.

The solution is to make the software extensible and there’s a few ways of doing this. The easiest is open-source the code. In some cases, this might add additional work when new versions come out, but it’s without any doubt, the option that gives more power to the users (or whoever they buy the changes from).

Another option is to allow plugins. This happens when there are bundles of features that make sense together and do not interfere with the core of the application. One good example is the Textmate bundles that extend the application for one language or technology.

Finally there’s another way of extending your application: scripting. This one is chosen when you need to change or add the behavior of your application. Scripting exists from old school editors like vim to full office suites like Microsoft Office (via VBScript).

Take the example of MetaEditor or Textadept, two small apps that have the core basics of an editor, and everything else can be added through small IronPython or Lua scripts. If you have you have a specialized task that only makes sense to you, you can go ahead and script it to increase your productivity.

The scripting ability is not only for programmers, regular users that spend a lot of time with some apps also need that power. There are a lot of companies that live off writing scripts for Microsoft Office and other Corporate Systems. Here in Portugal there is a whole business around a ERP software scripting.

In a recent interview with LifeHacker Woz said he still used Eudora Mail Client because it allowed him to add custom buttons.

Any feature in the menu list, any action there, can be added as a button. I changed it so I have a vertical menu bar, so I can have tons and tons of pre-made buttons saved right where I want them up top, and I learn where those place are. You can script actions to the buttons, too, so I can quickly copy messages to my assistants.

Why isn’t it just built into the operating system? he later adds. Well, Mac OS X has AppleScript, a way of scripting some applications to change or add some behavior. The problem is that few developers add all of the possibilities to the “manageable actions”. 50% of all the applescripts I’ve used myself have some System Events call to hack into some menu item, or shortcut.

I believe all the OSes should provide a simple ‘scriptable interface’ for programmers to implement, just like they do to GUIs. It would give more power to the users and therefore more satisfaction, as well as create more business opportunities.