Ruby (programming Language) - Philosophy

Philosophy

Matsumoto has said that Ruby is designed for programmer productivity and fun, following the principles of good user interface design. He stresses that systems design needs to emphasize human, rather than computer, needs:

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run faster. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.

Ruby is said to follow the principle of least astonishment (POLA), meaning that the language should behave in such a way as to minimize confusion for experienced users. Matsumoto has said his primary design goal was to make a language which he himself enjoyed using, by minimizing programmer work and possible confusion. He has said that he had not applied the principle of least surprise to the design of Ruby, but nevertheless the phrase has come to be closely associated with the Ruby programming language. The phrase has itself been a source of surprise, as novice users may take it to mean that Ruby's behaviors try to closely match behaviors familiar from other languages. In a May 2005, discussion on the newsgroup comp.lang.ruby, Matsumoto attempted to distance Ruby from POLA, explaining that because any design choice will be surprising to someone, he uses a personal standard in evaluating surprise. If that personal standard remains consistent, there would be few surprises for those familiar with the standard.

Matsumoto defined it this way in an interview:

Everyone has an individual background. Someone may come from Python, someone else may come from Perl, and they may be surprised by different aspects of the language. Then they come up to me and say, 'I was surprised by this feature of the language, so Ruby violates the principle of least surprise.' Wait. Wait. The principle of least surprise is not for you only. The principle of least surprise means principle of least my surprise . And it means the principle of least surprise after you learn Ruby very well. For example, I was a C++ programmer before I started designing Ruby. I programmed in C++ exclusively for two or three years. And after two years of C++ programming, it still surprises me.

Read more about this topic:  Ruby (programming Language)

Famous quotes containing the word philosophy:

    The sun of her [Great Britain] glory is fast descending to the horizon. Her philosophy has crossed the Channel, her freedom the Atlantic, and herself seems passing to that awful dissolution, whose issue is not given human foresight to scan.
    Thomas Jefferson (1743–1826)

    The fact is, mental philosophy is very like Poverty, which, you know, begins at home; and indeed, when it goes abroad, it is poverty itself.
    Henry David Thoreau (1817–1862)

    There is, I confess, a hazard to the philosophical analysis of humor. If one rereads the passages that have been analyzed, one may no longer be able to laugh at them. This is an occupational hazard: Philosophy is taking the laughter out of humor.
    A.P. Martinich (b. 1946)