Programming Languages

Summarized using AI

Ruby: How a Language Affects its People

Alex Coles • February 09, 2017 • Earth

The video titled "Ruby: How a Language Affects its People," presented by Alex Coles at RubyConf AU 2017, delves into the unique qualities of the Ruby programming language and its influence on community and culture. Coles argues that Ruby stands out as one of the most human-like programming languages, fostering a strong connection between its syntax and the way people communicate.

Key points discussed include:

- Human-Centric Nature of Ruby: Coles asserts that Ruby appeals to developers because it feels more 'human' in comparison to other programming languages like C++ or PHP. This human aspect is linked to the language's ease of expression and fluid syntax, allowing developers to communicate with machines similarly to how they interact with one another.
- Evolution and Influence of Language: The talk emphasizes the historical context of language development, exploring how languages evolve and influence societies. Coles discusses both natural and constructed languages, using examples such as Modern Hebrew to illustrate how societies can revitalize languages.
- Community's Role: Coles highlights that language, whether spoken or programming, thrives within a community. The vitality of Ruby as a language depends heavily on its community of users who shape its development and application over time.
- Linguistic Features: Ruby’s syntax is noted for its resemblance to English, making it accessible and intuitive. Coles points out Ruby’s unique conventions like the use of question and exclamation marks in method naming, which enhance expressiveness.
- Cognitive Influence of Language: The Sapir-Whorf hypothesis is introduced to discuss how language shapes thought processes and cultural understandings. Coles elaborates on how Ruby, through its structure and syntax, influences developers' thinking and approaches to coding.
- Social Nature of Coding: Coding is portrayed as a social activity, with an emphasis on creating understandable and maintainable code. This speaks to a broader mission among developers to cultivate a positive societal impact through their work.

In conclusion, Coles posits that if language indeed shapes community, then Ruby distinguishes itself as a profoundly human-oriented programming language. This perspective not only showcases Ruby's technical advantages but also underscores the importance of a cooperative ethos within the programming community, suggesting that Ruby might help cultivate more humane and inclusive practices in coding. The takeaway is that programming languages like Ruby can significantly affect their communities and the individuals within them, ultimately reinforcing the social fabric of software development.

Ruby: How a Language Affects its People
Alex Coles • February 09, 2017 • Earth

http://www.rubyconf.org.au

In human-to-human languages the same core ideas get shaped differently depending on the language in which they are spoken. What if every computational language engenders a set (or a subset) of culture and values, and as a consequence attracts and shapes a corresponding community? What are the values that entered into the language by way of its core committers and what are the values we identify with as a community. How can making these values explicit help us foster a better community?

RubyConf AU 2017

00:00:08.190 Why do we write Ruby? Any ideas?
00:00:11.440 Well, it's fast, no, not really. Actually, if you've used Truffle, then you might get some real performance benefits there, but generally, it’s not just about speed. We write Ruby because we like it—in fact, we love Ruby. As Tim mentioned yesterday, there's something almost visceral about Ruby. We really like it, but we can't quite put our finger on why. Saying 'because I like it' might sound a bit like a cliché. To someone outside of our community, it might seem defensive to say that we like it. However, ask yourself: Would someone be so similarly enthusiastic about another language like C++, PHP, or Java?
00:00:41.380 I will contend today that we like Ruby because it is the most human among mainstream computing languages. Historically, language has always worked in relation to other agents— that is, the world, things, everything that doesn't speak or write: a coffee cup, a chair, or a boomerang. This includes not just objects but also nations or individuals. The other agent is people and their words. Humans are almost unique among animals in this regard. I say 'almost unique' because dolphins arguably also have a language, but today we will just focus on humans and what we can do with language.
00:01:09.070 What we can do with language is we can replace things, people, and vast regions with words. It’s a bit like pointers in C; you don’t need the thing to be right there—you have an abstraction. If I say 'sea,' you can visualize it in your mind even if there’s no sea in sight. Throughout this talk, when I refer to people, I'll discuss them as 'speakers' or 'the speaker.' In singular, those that are actually writing are thinking in a specific language. For several decades, there has been something of a quiet revolution in language, and in this relationship, that I described a few moments ago, we can add one more member to our schema: computing software and hardware, in the abstract, also known as ICT (Information Communication Technologies). Analyzing these relations can shed light on what languages do for us and what we can do with our particular language of choice—Ruby.
00:02:34.480 So, I invite you to follow me for the next 15 to 20 minutes as I explore these possible relations. Good afternoon, Melbourne! Just a few quick words about me: I am not the Australian Broadcasting Corporation; I have nothing to do with them. I’m also not related to a supermarket baron, although I wish I were. I currently live in England but was previously in Berlin for quite some time. The Ruby community is something that I value, hence this particular talk. I have found myself attending a couple of conferences.
00:03:01.990 I’ve been part of RubyCamp and RubyConf or EU and have also emceed at EuroCocoa in Salzburg. I've contributed in the past to some cool projects like DataMapper and Refinery CMS. I mention those projects because those people may or may not be in the room. Currently, I’m hacking on Trailblazer, and I also have part-time availability—there's my shameless plug. Now, how do people affect language? There are various types of languages: natural languages, evolving organically, shaped by history, literature, and significant political or social changes. We also construct languages, such as the international auxiliary language Esperanto, which I’m afraid I don’t speak.
00:03:56.690 We develop formal languages in specialized areas like mathematics and computing. For example, in natural language, there's often an academy that validates usage. These days, it's commonly accepted that usage comes before the rules, but in informal languages like JavaScript, we need more rigidity to be accurate. For instance, ECMAScript, the formal name for JavaScript, is governed by the European Computer Manufacturers Association (ECMA). As a group, people evolve languages in ways that are not deliberate and cannot necessarily be foreseen, so understanding language requires us to understand history.
00:05:26.170 We wouldn’t be speaking English today if not for the history of European colonization in the 1700s. If James Cook hadn’t landed in Botany Bay in 1770 or if Captain Arthur Phillip and British settlers hadn't arrived in 1788 to establish a penal colony in New South Wales, we might be speaking something entirely different amongst ourselves. Language influences our discussions on politics and commerce: Ask anyone in the United Kingdom what 'post-truth,' 'Brexit,' or 'flat white' meant ten years ago, and they would look at you blankly. Language adapts to cultural and political events— to new tastes, to changes.
00:06:15.239 However, as long as there has been language, there have also been deliberate attempts by various societal groups, sometimes the powerful and sometimes marginalized, to reform and revive language. A good example is Modern Hebrew. Modern Hebrew was the result of a language revival that began in the late 19th and early 20th century, largely in Europe, predating Zionism. After a large scale migration of Jews beginning in 1862 to what was then British Palestine, there was a revival of the spoken language. The Israeli Declaration of Independence in 1948 recognized modern Hebrew as an official language.
00:07:02.540 Modern Hebrew is unique among major natural languages as, at one point, it had no native speakers. Closer to home, in the Adelaide Plains of South Australia, the language of Kaurna has been revived. The language became extinct when the last known native speaker died in 1931. However, thanks to the efforts of linguists and elders in the 1990s, it is now taught in schools and at the University of Adelaide. While it’s usually groups of people that affect language, some notable individuals have had an impact as well.
00:08:01.320 I'm sure you're familiar with Shakespeare, whose influence on the English language is profound. He is the most quoted author in the English language and coined a vast number of new words. In the book 'Mother Tongue' by Bill Bryson, it's mentioned that Shakespeare used 17,677 unique words in all of his writings, and of those, one-tenth had never been used before. Similarly, our very own Yukihiro Matsumoto, or Matz, gave us Ruby. Although Ruby borrows heavily from other languages, Matz’s linguistic ecology has given us something truly unique.
00:09:36.650 Ultimately, however, language, whether it be Kaurna or Ruby, needs a community to flourish. It's not an individual endeavor, but rather, a whole community of language users that guarantees the survival and practicality of a language. Let's consider the other side of this relation: language with its words gives shape to the world. For example, when we determine that a shade is too clear to be labeled as white, but we recognize it has a tint or shadow, we might then call it gray. We decide on the boundaries for the usage of words.
00:10:23.600 Language reflects our collective decisions. We group animals together and refer to them as dogs, despite the difficulty of distinguishing which characteristics they share with wolves, for example. Additionally, grammar and the repeated use of specific phrases by a particular language influence our worldview. When we refer to certain concepts, we should be mindful that we are discussing the worldview of a particular community and express that through precision in language.
00:11:05.690 This brings to mind the Sapir-Whorf hypothesis, which suggests that the structure of a language affects its speakers' worldview and cognition. This is not only about vocabulary but is deeply rooted in structure and grammar. A stronger form of this concept, known as linguistic determinism, posits that language structure determines the speaker's worldview. Different languages shape thought processes and cognitive styles in distinct ways. Humboldt, a cultural anthropologist, found that common cultures share many characteristics, with the most significant being their shared language. Over time, this concept evolved into the idea of a nation bound together by a common language.
00:12:01.610 Now let's take a closer look at Ruby. Ruby is often likened to English in its syntax, especially its RSpec testing framework, which has been designed to allow expressive syntax for test creation. Some of this is attributed to good choices in method naming, yet much is a product of Ruby itself. Ruby permits good punctuation and allows question marks in method names, adhering to a convention for predicate methods. Matz introduced the use of question marks from Scheme, and similarly, we see the use of exclamation marks in method names to signify modifications to the receiver.
00:13:02.180 The absence of semicolons and excessive parentheses and braces, often seen as visual noise in other languages, makes Ruby feel more fluid and human-like in expression. Moreover, modern versions of Ruby support Unicode characters in identifiers, allowing for the use of non-Latin characters and emojis in variables and methods. This can enhance expressiveness of the language, aligning with how we communicate today through vernacular languages, which often include emojis and emoticons. This flexibility mirrors our current communication methods on platforms like Facebook and Telegram.
00:14:27.590 Most of us in this room are native English speakers, which can lead us to assume writing systems are universal, yet we often forget the implications of directionality in text. Despite Ruby’s Japanese origins, we don’t write Ruby code vertically, as is customary in Japanese, nor do we utilize Ruby characters, which provide pronunciation guidance. Assumptions in programming languages often reflect mathematical equations originating from ancient civilizations. While previous languages enforce specific structures, we must be aware of how the language we use can shape our thinking patterns.
00:15:49.970 In Ruby, operators exhibit English-like characteristics. While some may advise against using logical operators, I find value in their application, advocating for flexibility. Languages affect each other, often seen through lexical borrowings and grammatical influences. Ruby, for instance, prospered due to the rapid advancements in computing languages during the 1950s and 1960s, drawing inspiration from Matz’s favorite languages—Perl, Smalltalk, Eiffel, Ada, and Lisp. The 'do-end' blocks in Ruby are a direct borrowing and enriching contribution from the Eiffel language.
00:16:56.930 As we shift from computing languages back to human languages, it’s important to recognize that the distinction between the two is not always clear. Software development transcends the code we write; it also involves meta-information through documentation. We possess both economic and social interests in creating maintainable code. Ideally, we should strive for code to be self-documenting, reducing reliance on constant documentation. When we achieve this, we encounter the essence of human-centered programming, which Ruby embodies.
00:17:37.320 Why do we write Ruby, then? We do so because we aspire to communicate with each computer as if it were another human being. Writing code enables us to shape our digital world, exerting the same kind of control over it as we do with our own children. Yet, as adults, we are not solely motivated by individual desires; we also aim to contribute positively to society.
00:18:08.240 This makes coding inherently social, prompting us to create understandable code that we can share with others. In conclusion, if we accept the hypothesis that language shapes community, then Ruby may be the most human and natural of programming languages at our disposal. Thus, the computing language contributes to making us more human. That's quite a mouthful.
Explore all talks recorded at RubyConf AU 2017
+20