1. A method for automatically creating variables in an end-user programming system, wherein the end-user programming system comprises a script, a shared repository, at least one database, a recorder, and an interpreter, wherein a script comprises at least one command, wherein a current user has an entry set stored in said at least one database, each entry set being uniquely identified for each user, each entry set comprising an entry, the entry comprising an entry name and an entry value associated with the entry name, the method comprising: receiving a command to generalize, wherein the command describes an event comprising a target and an action performed on the target, said target representing an object comprising at least one data value, said action comprising a user activity associated with the object and zero or more data values; finding N entries in the entry set for the current user such that each entry value of said N entry is equal to a corresponding data value in the command, wherein N is a positive integer representing a number of data values in the command; generalizing each data value into a variable in the command after said finding; and storing the command having N variables therein into the shared repository, wherein said receiving, said finding, said generalizing, and said storing are performed by the interpreter.