I wonder what are the advantages of using symbols over constants. For example: I want to define representation of SQL comparison operators. If I use constants - I have to define them, but I don't have to do explicit check when using them (because exception will be raised on non-existing constant). It is also easy to see which operators are defined when looking at the source code. Another advantage - constants have namespaces: they can be defined in the class scope. If I use symbols - I don't have to define them, but I need to verify whether the symbol is valid. I have also to write additional documentation to indicate valid Symbols for operators. I find kind of general tendency on this group to recommend using symbols rather then constants. From what I wrote above I'd rather use constants. Could you please explain me why should I use symbols? Am I missing some important symbols advantage? -- Marek Janukowicz