You can make add-ins right now.
Here is how to create one:
Create a script, supply the code you want to run, test / run, etc. Then save the script to a file under ~\Bin, ~\Bin64 or ~\Shared. Use ~\Bin if you want the script to run only in 32-bit mode, ~\Bin64 if you want the script to run only in 64-bit mode, ~\Shared if you want it to run in any mode. Make sure the extension of the script file appropriately reflects its language (.CS for C#, .FS for F#, .JS for JScript.NET, .PL for Perl, .PY for IronPython, .RB for IronRuby, .VB for VB.NET, .VBS for VBScript). Then invoke Tools - Add-ins - Rescan, and your script file should appear in the Tools - Add-ins menu.
Try it with the attached file (put it into ~\Shared).
We will have events as well. What specific scenarios are you looking for? If we are talking about firing events when there are changes to data in component X, one can already do quite a lot with version numbers (ie, a script can record the version of a component in a service table / comment / wherever, and when it is ran again, it can check whether the component has changed since, and act appropriately).
Added: reuploaded the original attachment as a ZIP in a post below.