Use Precise Vocabulary

In software engineering, programmers deal with a lot of abstraction. This can easily make concepts and talking point confusing. One thing programmer can and should do is use precise vocabulary when explaining concepts.

Use Programming Terms

I am writting the line number in the margin for clarity.

1| a = 'bonjour'
2| b = a
3| a = 'au revoir'

On line 1 we are initializing the local variable a to a string object of value bonjour to it.

(We could also say we are assigning the string object with a value bonjour to the local variable a. Local variable a is referencing that string object.)

On line 2 we are initializing the local variable b to a string object that the local variable a is referencing. Both local variables are pointing to the same object.

On line 3 we are reassigning the local variable a to a different string object of value au revoir. Now, local variable a is referencing to a string object of value au revoir and local variable b is referencing to a string object of value bonjour.

 1| def looping(str)
 2|   i = 3
 3|   loop do
 4|     puts str
 5|     i -= 1
 6|     break if i == 0
 7|   end
 8| end
 9|
10| looping('bonjour')

This code output the string bonjour 3 times and returns nil. The returned value comes from the last line of the method, here break if i == 0, which returns nil.

On line 1-8 we are defining the method looping which takes one parameter.

On line 2 we are initializing the local variable i to an integer object of value 3.

On line 3 we are calling the method loop (of the Kernel module) and passing in the do..end block as an argument.

On line 4 we are calling the method puts and passing in the local variable str as an argument.

On line 5 we are reassigning local variable i to an integer object of value i - 1 (we are actually reassigning the local variable i to the return value of method call - on local variable i with integer 1 passed to it as an argument.

On line 6 we are breaking out of the loop with the keyword break if the value of the object that local variable i is referencing is equal to 0.

On line 10 we are calling the method looping and passing in the string bonjour as an argument to it.

Vocabulary to remember

  • Variables: we are…
    • Initializing
    • Assigning
    • Referencing/pointing
    • Reassigning
  • Methods: we are…
    • Defining (with parameter(s))
    • Calling (with argument(s))
    • Passing in (a block)
  • Blocks: they are…
    • Called
    • Executed
  • Codes…
    • Output
    • Return
    • Mutate

Objects are physical spaces in memory. Local variables are referencing them.