Hello World!

Hello, world! Since I am starting a blog about programming, I thought it would be appropriate for my first words to be the first line that every programmer learns to code. Here’s how it looks in Ruby on Rails.

puts 'Hello, world!'

These two words are so simple, and yet I believe that they embody two of the core ideas of programming that make it so interesting to me.

Hello

Hello is a word of greeting. We use it to start a conversation, answer the phone, or begin a speech. It is a word that enables communication and interaction. So why would anyone want a computer program to say “hello”? When humans create something, it is a very personal act. In a way, the work of a person’s hands becomes a reflection of that person. We speak of being able to see the artist in his sculpture or of how a woodworker poured herself into her craftsmanship. Programming is very much a personal act of creation like painting, welding, or poetry. A programmer should see the program he writes as a reflection of himself through which he is actually communicating with anyone who uses it. “Hello”, then, becomes a perfect word to use if you want your program to say something.

World

This is where programming separates itself from other acts of craft that deal with manipulating physical objects and moves into the realm of words and ideas. If an architect creates a building, that building is confined to a particular geographical location. Even if it is a mobile structure, it can only be at one place at one time. Words, ideas, and computer programs can be copied, shared, and distributed many times over. So, to encompass the entire sphere of our existence in saying hello to the world is not too much of a stretch. Computers are inherently good at copying, so a program has the ability to reach a wide user base. Add a global communication network of computers, and now your program really gives you a way to reach the entire world.

Hello World

When these two words combine, they speak of the ability of a programmer to influence an entire world of users looking for ways to learn something, have a new experience, or do something they have never been able to do before. This is enabled by the high-leverage nature of software which can be built once, distributed to the world, and used to allow people to interact with the thoughts and ideas of the programmer.