Ruby SymbolFirst created in the mid-1990s, Ruby is a popular computer programming language that’s object-based. In object-oriented programming languages like Ruby, programmers write code that creates objects that are manipulated by programmers to perform whatever tasks Ruby-based programs have been written to perform. Together with Ruby on Rails, a web application development technology responsible for well-known Web applications such as Twitter, Ruby makes it easy to code and thus write a wide variety of computer programs. Udemy’s advanced Ruby training course offers a thorough understanding of Ruby Symbols, and can be a great place to start for the expert who already has an advanced understanding of many features of the program, but wants to boost his or her skills.

All code in a Ruby program is made up of data entered into it and the data entered eventually becomes an object, a class or a module. The data entered in a Ruby-based program is composed of strings or lines of characters that become objects. The basic building block of a string in Ruby is the Symbol. Used extensively in Ruby as well as Ruby on Rails, Symbols are seen everywhere. If you think of Symbols as strings you’re well along the Ruby and Ruby on Rails programming path. But there’s one important difference between a Ruby Symbol and a string, and it’s that a Symbol is immutable or unchangeable.’s Ruby on Rails blog makes it easy to see what all the excitement is when it comes to Ruby and Rails, so check it out if you want to learn more about Ruby overall.

Ruby Symbol and Immutability

Immutability simply means that Ruby Symbols cannot be changed after they’re made into Ruby objects. In other words, an immutable Ruby object, made that way by the use of Symbols, can’t be changed once it’s given assignment or coded to perform its tasks: it can only be overwritten. A string in Ruby is, of course, mutable; it’s just the Symbol that’s not.

Mutability in a string, though convenient and even desired in most cases, can cause problems in any computer programming languages that use strings. A mutable Ruby string composed of Ruby Symbols could suffer in terms of unexpected “results” or output as well as in performance of the program written using an OOP such as Ruby, for one.

Ruby as a language attempts to account for the issue of Ruby Symbol immutability versus string mutability by offering programmers a menu or choice of Symbols to customize their programs and thus reduce or eliminate unexpected results as well as reduced performance.

Ruby Symbol Mutability

Using the right Ruby Symbols, mutability or changeability can be just as high as what may be found in a string in Ruby. Here’s an example of some Ruby strings and the Symbols that directly match them:



“hello world”

:”hello world”

bang = “!”

“hello world#{bang}” # => “hello world!”

:”hello world#{bang}” # => :”hello world!”

In the example above, you see a wide variety of characters, many of them nonalphanumeric and not commonly associated with a Ruby Symbol, which is typically alphanumeric only. By using quotation marks to create a Ruby Symbol you can not only use the same characters as you would in a Ruby string, but you can also “interpolate” or construct new Symbols. In certain, very specific circumstances the only thing an immutable Ruby Symbol needs to become as mutable as a string is a colon symbol prepended as illustrated in the example below:

:"hello world".to_s # => "hello world"
"hello world".intern # => :"hello world"

Check out the Ruby programming for beginners training course to get a fuller understanding of the nature of the Ruby Symbol and how it relates to string performance.

Ruby Symbol Similarity to a Ruby String

A Ruby Symbol is extremely similar to a string or line of characters once the colon : symbol is added. But a Symbol still can’t be changed as a programmer would change a string on the fly or on the run or as a Ruby program itself would automatically change it. Consider the example below, which illustrates clearly why a Ruby Symbol can’t change:

puts "hello" << " world"
puts :hello << :" world"
# => hello world
# => *.rb:4: undefined method `<<' for :hello:Symbol (NoMethodError)

As you can see from the above, the programmer tried to insert “world” into the end of a Ruby string and a Ruby Symbol. Because the Ruby string above is mutable it updated itself automatically, or changed automatically, as show in line 3 of the example. The immutability of the Ruby Symbol prevented a change and returned an error to the programmer as shown in line 4 of the above example.

Why Use Ruby Symbols?

So while a Ruby Symbol can be mutable in a certain way it’s almost always fairly immutable without the programmer going through extra effort to give it a kind of mutability. The question to be is asked then is if a Ruby Symbol is so inflexible, why would it even be included within Ruby? The answer is that string mutability brings with it a certain level of potential problems that can cause a Ruby program to perform poorly, freeze up, or otherwise give the user trouble.

By adding relatively rigid and inflexible or immutable Ruby Symbols to a Ruby-based program’s code the programmer can provide more stability to the program than is possible when using fairly fluid and mutable strings. There’s much more that goes into Ruby Symbol usage and performance for the programmer. And using Ruby strings and Symbols smartly requires a little coding and programming experience, but the beauty of Ruby and Ruby on Rails is that both are fairly easy to learn and then become proficient at. offers hopeful Ruby and Rails programmers a variety of basic as well as advanced Ruby and Ruby on Rails training courses. An Udemy beginners Ruby coding course can quickly have a new coder and programmer up and running in relatively little time, so if you’re curious about what Ruby programming is like don’t hesitate. You can get Up and Running on Ruby in no time at all.

Ruby students also learn

Empower your team. Lead the industry.

Get a subscription to a library of online courses and digital learning tools for your organization with Udemy for Business.

Request a demo