I'm currently using KeyRemap4MacBook:
<autogen>__KeyToKey__ KeyCode::CONTROL_R, KeyCode::VK_MODIFIER_EXTRA1</autogen>
<autogen>__KeyToKey__ KeyCode::F11, KeyCode::VK_OPEN_URL_Safari</autogen>
<autogen>__KeyToKey__ KeyCode::I, ModifierFlag::EXTRA1, KeyCode::VK_OPEN_URL_iTunes</autogen>
If you have the Powerpack for Alfred 2, you can create a workflow like this:
Hotkeys have a short delay by default, but you can reduce it by changing the trigger behavior:
Other applications that support assigning shortcuts to opening applications:
Apptivate, BetterTouchTool, Butler, iKey, Keyboard Maestro, KeyLauncher, Keymando, Launch it!, NuKit, Quickeys, Quicksilver, RocketShip, Shortcuts, Spark, Twitch
You could also assign shortcuts to shell commands like
open -a TextEdit.
open /Applications/TextEdit.app/ doesn't seem to be any faster. The script below is blocked until TextEdit finishes opening, and it raises all windows instead of a single window:
tell application "TextEdit"
reopen -- open a new default window if there are no open windows
activate -- make the application frontmost
Another option would be to use Automator services:
There is a bug in 10.7 and 10.8 where the shortcuts for Automator services don't always work until you hover over the services menu from the menu bar. There is also a small delay before services are run, and shortcuts for services don't work when an application that doesn't have a services menu is frontmost.