Sketch Symbols and the Self programming language


From their blog:

Symbols are now very much like Artboards and they occupy one central place in your document. Instances of Symbols are no longer groups which you can edit directly, but are instead single layers that just mirror the content from their master. If you’ve ever accidentally ruined your carefully created Symbols because you moved a layer that you hadn’t realized was part of a Symbol, you’ll be happy to know that this is now a thing of the past.

So now Symbols are close to classes / objects to me. You have a master of a graphic, then instances of that graphic, and you can override the properties (say, different text or images in each instance of the symbol). Cool!

It feels like this Symbol system is almost a full-blown object-oriented environment, but you can’t really interact / send messages between the objects. It’s mostly a hack to make graphics easier (which is fine because Sketch isn’t trying to be an OOP system :slight_smile: ).

Reminds me a bit about the Self programming language:

Self is a prototype-based dynamic object-oriented programming language, environment, and virtual machine centered around the principles of simplicity, uniformity, concreteness, and liveness. Self includes a programming language, a collection of objects defined in the Self language, and a programming environment built in Self for writing Self programs. The language and environment attempt to present objects to the programmer and user in as direct and physical a way as possible. The system uses the prototype-based style of object construction.

It seems like the natural next step to me. What do you think?