开发商好东西

周末有三个有趣的开发者工具新闻:

项目构建器支持BBEdit

最新版本的Project Builder最后支持外部编辑,特别是两个文本编辑器在相反的两端:BBEdit和emacs这是一个令人愉快的消息到目前为止我只修补了它,但看起来还不错。

You probably don’t use developer tools like Project Builder, but if you use a Mac, you’re no more than one degree of separation away from someone who does良好的开发工具使程序员感到高兴,快乐的程序员编写更好的软件。

脚本编辑器2.0 Beta

Apple发布了一个测试版的Script Editor 2.0,为Mac OS X重写对于旧的脚本编辑器来说,这绝对是一个重大的改进,因为它非常糟糕,不足以给AppleScript带来一个坏名声旧脚本编辑器已存在至少10年,但仍然没有查找命令在编程编辑器中。

新的脚本编辑器不仅添加了查找对话框,还提供了改进的用户界面,在脚本窗口中提供了更多信息例如,新脚本编辑器在每个脚本窗口的底部提供了一个Result选项卡,而不是单个“Result”窗口来显示最近执行的脚本的结果。尼斯。

最重要的是,新的脚本编辑器本身就是一个可编写脚本的应用程序可耻地,旧的脚本编辑器不是支持其他现代设施,例如多次撤消。

在粗略的测试中,它看起来很稳定Its “beta” status might be more an indication of a lack of UI refinement than under-the-hood instabilityFor example, the Font and Format menus both seem superfluous — there seems to be no need for any of the commands in either of these menus.

这是不对的脚本调试器,但没关系 - Script Debugger对大多数用户来说都是过度的The new Script Editor is like iMovie; Script Debugger is like Final Cut Pro旧的脚本编辑器就像试图用铅笔和湿纸制作翻书电影。

GUI脚本

然后就是GUI脚本, which MDJ/MWJ publisher Matt Deatherage described as “this weekend’s ‘holy crap’ link” on the MacJournals-Talk mailing list来自Apple的描述:

Scripters have often requested the ability to control, via AppleScript, applications which either do not have AppleScript support or are only partially scriptableThe new Developer Tools release contains a beta version of the System Events application incorporating support for scripting the GUI (Graphic User Interface) of applications.

Using this version of the System Events application, AppleScript scripts can select menu items, push buttons, enter text into text fields, and generally control the GUI of most non-Classic applications.

神圣的废话是对的。

如果您不使用AppleScript,这可能听起来不像是一个令人惊讶的功能但是上面描述的那种“宏”脚本与AppleScript过去的所有功能相反AppleScript不是一种像自动化用户那样的宏语言,它驱动应用程序的可视化界面相反,Apple是一种用于发送Apple事件的语言,用于驱动可编写脚本的应用程序的内部接口(GUI脚本不是好兆头QuicKeys, 我认为。)

这意味着在GUI脚本之前,AppleScript仅对自动化脚本化应用程序有用太多的Mac应用程序都没有脚本化,甚至在那些应用程序中,很多都提供脚本词典,这些词典是不充分,肤浅和糟糕的组合。

因此,有些人经常会抱怨AppleScript不合适,因为它不允许脚本化不可编写的应用程序其他人会抱怨更多的应用程序应该是可编写脚本的例如,许多Apple自己的应用程序,其中许多都没有任何严重意义上的脚本。

事实上,Apple的GUI Scripting网页上的许多示例脚本都在探讨Apple的Mac OS X应用程序,例如System Preferences这样的应用程序。应该是真正的脚本,但不是。

例如,从更改鼠标(或触控板)设置的GUI Scripting示例中查看此代码段:

tell application "System Events"
   tell process "System Preferences"
      click menu item "Mouse" of menu "View" of menu bar 1
      delay 3
      tell window "Mouse"
         -- powerbooks will have two tabs: mouse and trackpad
         if (exists tab group 1) then
         tell tab group 1
            -- tabs are considered radio buttons
            click radio button "Mouse"
            delay 1
            -- Tracking Speed: 0.0 to 7.0
            set value of slider 1 to 7.0
            -- Double-Click Speed: 0.0 to 1.8
            set value of slider 2 to 1.2

这意味着您的脚本完全依赖于可视界面的确切布局您必须引用GUI控件,而不是引用命名对象和类按位置如果将来鼠标首选项面板的布局发生更改,则此脚本将中断Or worse, the script will misbehave in seemingly random ways; if the sliders for tracking speed and double-click speed swap positions in a future version of the Mouse panel, the above script will still run, but it will change the wrong settings.

是的,这只是一个示例脚本但是,如果Apple承认您可能想要通过AppleScript更改鼠标的设置,他们应该允许您以正确的方式执行此操作。

这并不是说GUI脚本概念没有吸引力首先,我可以想象在QA测试应用程序时模拟用户操作非常有用并且不可否认的是,存在许多不能正确支持OSA脚本的应用程序,但这对于自动化是很方便的然而,我担心的是,GUI Scripting将为懒惰和无知的开发人员提供保护,他们不希望为他们的应用程序提供真正的脚本接口。我们不需要提供像样的脚本字典,只需使用GUI脚本。

但是,如果不是脚本编辑器2.0测试版,我会感觉更糟糕,这表明Apple至少有一些开发人员仍然对创建良好的脚本编写接口感兴趣。

以前: bbdiff 1.1
下一个: 坏蛋