Programming Languages

Summarized using AI

What If Shakespeare Wrote Ruby?

Adam Cuppy • February 10, 2016 • Earth

In Adam Cuppy’s talk "What If Shakespeare Wrote Ruby?" from RubyConf AU 2016, he draws a captivating parallel between Shakespeare's writing and software development, challenging the audience to find joy in their work. Cuppy, a former actor, starts by sharing his background and his passion for amplifying greatness and joy through performance and software development. He highlights Shakespeare’s ability to create complex narratives and characters with minimal documentation, posing the intriguing question of how this approach could be applied to writing software.

Key Points Discussed:
- The Power of Language: Cuppy emphasizes the significance of language and poetry in both Shakespeare's writing and programming, asserting that both are expressive forms of communication.
- Shakespeare’s Documentation-less Writing: Cuppy points out that Shakespeare had no formal documentation for his plays but was able to convey depth and richness instead through his mastery of language. Shakespeare created over 800,000 words, including 1,700 new word forms, showing the levels of creativity possible without explicit stage directions.
- Acting is Reacting: A critical concept introduced is that in acting, each line is a reaction to what has come before it, suggesting that software development can similarly involve responding to prior code.
- Performance Demonstration: Cuppy engages the audience with a performance of a scene from "Romeo and Juliet" to illustrate his points about expressiveness, engagement, and the requirement for actors to listen actively.
- Expressive Convention in Programming: He likens the need for clear communication in Shakespeare’s texts to the importance of having a shared understanding in software teams. By utilizing consistent conventions in programming, developers can create code that others can understand and modify.
- The Role of Empathy in Development: Cuppy concludes with the notion that focus should not just be on the technology (machines) but also on the people (humans) who create and maintain it, reinforcing the idea that joy and teamwork are vital in the software development process.

Concluding Takeaways: Cuppy encourages programmers to think like poets and artisans. He invites them to embrace the complexity and artistry of software development in the same way Shakespeare embraced the craft of playwriting. His main message is that joy in work can lead to innovative solutions within coding and software development.

What If Shakespeare Wrote Ruby?
Adam Cuppy • February 10, 2016 • Earth

RubyConf AU 2016: Did you know that Shakespeare wrote almost no direction into his plays? No fight direction. No staging. No notes to the songs. Of the 1700 words he created, there was no official dictionary. That’s right the author of some of the greatest literary works in history, which were filled with situational complexity, fight sequences and music, include NO documentation! How did he do it?

In this talk, we're going "thee and thou." I'm going to give you a crash course in how: Shakespeare writes software.

RubyConf AU 2016

00:00:01.560 I've been told that if I say this word, the timer starts. So instead, good day! Or however you pronounce it! Good a well. My name is Adam, I'm from Zeal, a consultancy in the States. You can find me on Twitter, I'm @adamcy. Please feel free to get in touch with me; I would love to hear from you.
00:00:12.920 Now, a little bit about myself. As she said, I am and was an actor. I worked professionally for a long while, and I found out pretty fast that I loved the art form but hated the profession. This experience comes from a show where I played 14 different characters out of a total of 15. I played a classroom full of children, a mother, a father, grandparents, young people—basically all of the above.
00:00:25.439 These are the various faces, and I wore the same costume the whole time. It was really quite exciting to try and pull off, but there's also another passion of mine, and that is working with kids. I was the lion, wearing a head-to-toe bodysuit made of polyester. It was outdoor theater, and it was about 95 degrees in the summer. I literally sweated through the costume, and they could wring it out when it was done. And then I would put it on again the next night, and it wasn't dry yet.
00:00:50.640 So that happened! Now, here's the thing: my objective here today is really quite simple. In fact, before we get too far, if you've got a laptop, you're not going to need it. All of this is going to be available online, so I'm going to ask that you close it if you have the chance because this is going to be a little bit of a ride.
00:01:05.200 This is actually a group of random people that I met outside of the tickets booth off Broadway when I was getting a ticket. I often come back to this photo, and every time I see it, it reminds me of my objective in life, which is very simple: to bring joy and amplify greatness. That's my goal here. So, as we go through a lot of things, the bottom line is that I want you to feel joy and excitement when you walk away from this.
00:01:49.000 So again, when I look at this, I think about those people. I don't know any of their names, but I did my job here. But there's an action round. What I want you first to do is scooch all the way in! Get close to the people next to you, scooch into the center. You're going to have to do it! Come on, scooch all the way in! Yes, move your stuff, scoot in, scoot in! No one's going to steal your things; it's all good!
00:02:28.760 Now, like I said, joy comes in many forms, and we feel a lot of joy in our lives. All of the things that we do should bring us joy, and I think there's a lot of opportunities for that. So, just by a show of hands, how many of you have felt joy today? All right! Now, instead of your hand, if you feel joy about the sun, say 'yes!' How about Australia? Say 'yes!' Monkeys, puppies, dolphins, ice cream cones, wine—how about some beer? Absolutely! Coffee! How about love for your fellow people, writing code in Ruby, absolutely! Pizza, music, lollipops—how about cake? Anyone like cake? Happy poos!
00:02:45.599 What about movies? Documentation? No? What is wrong with you? No, because documentation is a liar, which means you're a liar! That's right, no, what's wrong with you? I mean, if we have a method like this, the question mark is, 'I don’t know what I’m going to pass in.' See, this is the part of the 'what,' and this is the part of the 'how.' The documentation part goes up there—you know that the 'what' part takes a lot of time and the 'how' part takes a lot of time.
00:03:40.519 If you add the two together, you basically get a big fat hell no! This is the way this kind of works because documentation is a pain. This is very real; we talk about it all the time, and I hear it all the time. There are a lot of tools, but even they have bugs! But the bottom line is, it is a pain; it's really hard to do.
00:04:46.080 But what if the 'what' and the 'how'—the 'how' you do it and the 'what's' being done—are kind of similar? Right? Like, what if the two could work together? But even better than that, or at the very least, what if the 'what' could inform the 'how'? Like, what if that was possible? Well, wouldn't that be kind of nice? But this talk is not about documentation; this talk is about poetry.
00:05:10.800 Yeah, I don't know what the heck I'm talking about! Right? So we're going to start here: language is powerful. It's a very, very powerful thing, and a couple of years back, there's a gentleman right here you probably know—he goes by DHH. He created Rails. For those of you who are not familiar with that, a couple of years back at RailsConf in the US, he made a statement that said we should be considered software writers.
00:05:36.240 Now that pretty much made a lot of people flip their desks with quite a bit of anger. And I kind of ruminated on this, wondering why it mattered. Why was it something that resonated so negatively for some and positively for others? I went to the dictionary and looked it up, and it said, 'A person who has written a particular text.' Here's the reality: being a writer is just not sexy. But there was this little synonym at the bottom that I fell in love with—it was 'poet.' Like, all right, that resonates for me! Yeah, totally! Poet—I'm in!
00:06:31.680 So let's start here. This is a man named William Shakespeare. He may not have existed, and he may not have looked like this, but for the sake of our demonstration today, this is exactly who we’re talking about. Now, Mr. William Shakespeare wrote a bunch of things and he put them in this big book just like this. This thing is massive—it's about this large. I would have had to check another bag to make it out here and bring this book; literally, it would have been too heavy.
00:07:33.600 But if you look a little deeper and analyze the text, we find that there's over 800,000 words in the text that he wrote. 800,000 words! Now, for those of you who are not aware, I didn’t mention this before, but William Shakespeare wrote most of this in the very late 1400s and early 1500s. So now we're talking about hundreds of years ago, and again we're talking about 800,000 words.
00:08:05.360 At any given day of the week, there are at least five productions of something written by Shakespeare that are currently being staged. This is hundreds of years later! Right? Now, many of you may not know this, but I'm about to tell you: he created a lot of words; he created a lot of phrases.
00:08:19.600 Things that we use day in and day out in many different countries across the English language have been translated many, many times. Throw out a number! How many do you think? Throw out a number! Thousand? There are approximately 1,700 word forms.
00:08:51.839 Now, here's what's pretty fascinating about this: 800,000 plus words and 1,700 new words or word forms he produced. And take a guess how much documentation he wrote! There were songs, fight sequences, and incredible complexity written into the text that has persisted for hundreds of years, and there is practically no documentation.
00:09:09.220 So, as a software engineer coming from theater, I kind of look at this and go, 'What? How is that even possible?' So, I was like, 'Okay, there's got to be some tie between here.' There's got to be two things that we can relate to at least a little bit.
00:10:02.760 So, I need five volunteers! Five! One, two, three, two more! Come on, two more! Four and five—come on up! Give them a round of applause! Excellent, excellent! Okay, if you wouldn't mind, line up and come on up to the front here. Okay, Gregory, Samson, Abraham, Bolio, and Tibalt.
00:10:39.400 All right! These are the RubyConf Australia players—give them a hand! Now, a couple of things, and I want you to take this and think very abstractly about it and go, 'How can I apply this to my life?' The first thing to think about is this: when Shakespeare wrote the text or many of the texts, especially plays, there wasn't accessibility to things like the printing press.
00:11:03.140 There was not the ability to very quickly duplicate multiple scenes for all the actors on stage, so much of it was handwritten. This became kind of a problem. How do you handle it? Well, they would literally be given only their part, while they actually had the whole script for the scene we’re going over.
00:12:00.480 You may ask, 'How did they know when their line was coming? Well, in acting school—which I attended about 15 years ago—there was a phrase that was used quite often: it was 'acting is reacting.' Let me explain what that means; it means that your line is actually the answer to someone else's, even if it's not the answer to a question being asked.
00:12:42.160 And literally speaking, it is in response to something else. The question is how did they know again—there was no stage directions written? Well, they simply knew by listening and paying attention, and slowly but surely, they would figure it out. Now, the next question is how long would it take for a stage show to be staged and produced? Anywhere from two days to two weeks at the very most, and they would be totally off-book, as we refer to it.
00:13:31.020 Now, these things would be called foul papers. Many, many years later—hundreds to be exact—after they started to reconstitute this, they would take the pages that had been written down and try to restructure what the play was in its entirety. That was one of the very first times this had ever happened in history. Imagine trying to write software where one person is working on one part and the other person is working on another. Have you ever had to do that? Exactly!
00:14:08.919 So, give our players a round of applause! Little did you know that you are now all groundlings! What that means is that you are allowed to react vocally to anything that you might hear—in fact, you are required to do so! Now, in today's time, you are expected to sit quietly in your seat and not say a word whatsoever, but we don't do that here. So, you are asked to act and react as much as possible. Can you do that for me? Can you do it for me?
00:14:26.560 Very good! All right, to our players! Now, don't forget: very large hand motions! Very large hand motions, Jeff! Very large! And, of course, there is a fight sequence, and you are required to at least thrust and parry, if not slightly engage. Sounds good? All right! To our players! And the curtain is up!
00:15:44.560 My naked weapon is out! Corral! I will back the fe! Let us take the law of our signs! Let them begin! I will frown as I pass by and let them take it as they wish—nay, as they dare! I will bite my thumb at them, which is a disgrace to them if they bear it. Do you fight your thumb at us, sir?
00:16:26.680 Which means you fight your thumb at us, sir? No, sir! I do not fight my thumb at you, sir, but I fight my thumb!
00:16:47.520 Do you quarrel, sir? Quarrel, sir? No, sir! If you do, sir, I’m for you! I serve as a good man, as do no better! Well, sir! Hey! Better here comes one of my master’s kinsmen!
00:17:25.000 Yes! Better you lie, draw if you be a man, Gra! Remember thy swashing!
00:20:00.000 What? Drawn and talk of peace? I hate the word, as I hate hell, all Montagues, and thee! Have it, be cowards, and they fight!
00:20:29.200 Very good! To our players! Round of applause! Standing Ovation for our players! And bow, my players, bow!
00:21:14.560 Bow! Totally! I’d get shot for that! Okay, very good! Well done, my players! Well done, my groundlings! Very nicely played, very nicely played! So, there's a scene that's actually from the opening of Romeo and Juliet, if you're not familiar with that.
00:21:44.320 So again, there's a lot that's happening inside of there. Let’s set aside just the literary side of it for a moment. Let’s take a little bit of a look at what we can glean from it.
00:22:08.200 So, this is funny—that's Ruby! What is expressive convention? It ultimately means we are talking about patterns with meaning. A lot of that happens—you heard many times over, 'I bite my thumb at thee, sir! I bite my thumb! Do you bite your thumb at me, sir?' I do bite my thumb!
00:23:04.640 You hear a lot of very expressive things going on, but there’s a lot of subtlety that's never spoken about in the text. This is the part that matters. Absolutely nothing! Mind raising your hand if you've heard of iambic pentameter?
00:23:23.720 Now we’re talking iambic pentameter, which is referred to as metered verse. Well, metered verse is broken down into iambs, which is a set of a downward and upward inflection, with five of them in a row.
00:23:46.520 So if you were to beat it out in terms of a drum, it would be like 'b boom, b boom, b boom, b boom, b boom.' So do it with me—b boom, b boom, b boom, b boom, b boom. What happens is when you layer it over the top of the actual text, it does in fact do this.
00:24:12.320 When I do count the clock that tells the time—that's iambic pentameter. Most people don't have any idea that when it was originally presented in its original form, it was done in a far more metered and patterned manner. And if you go see very traditional texts, a lot of models will criticize it, saying, 'Wow, it’s not something totally understandable!' But what's actually happening is they are reading it in the way it was presented.
00:24:46.040 The next question is, why does that matter in the least or at all? You may have seen this, 'To be or not to be—that is the question.' This is a very famous line from Hamlet! I'm going to point out a couple of things. Number one, 'To be or not to be—that is the question.' Notice the last two iambs: there's a very interesting thing.
00:25:36.000 The last two are inverted, so the emphasis is on 'that'. And importantly, there’s an 11th beat! Why does that matter? Ultimately, it matters for a couple of reasons. You might be confused about what's going on here—totally understandable.
00:26:10.280 This is actually a selfie I took of myself! Anyway, here's the only thing you need to know: what Shakespeare and many poets did was when structuring the verse, they included things that illustrate meaning.
00:26:44.090 This is it; it says there's something out of touch happening, and this matters. First and foremost, by establishing an expressive convention, you're setting a tone that is meant to be replicated. When you violate it, basically, you’re saying that something here matters, and it’s important to pay attention to.
00:27:28.960 Now, in the context of how this is seen, it informs both the director and the actor that by falling on a downward inflection, it illustrates that they are not necessarily making a statement of male or female—instead, it refers to a fall in the feminine. And in doing so, it indicates uncertainty. Just that downward inflection indicates uncertainty—this is not something that's written but is embedded into the text, itself.
00:28:53.440 This is how Shakespeare communicated with everyone else. No documentation. It's actually the text! The next is metaphor, or what we can also refer to as abstraction. This was said by Jeff: 'My naked weapon,' which means 'my unshed sword.' Interestingly, it can mean something a little bit more explicit, and that is by design. This is all baked into this text.
00:29:45.440 One of the reasons Shakespeare is referred to as one of the greatest poets of all time is because he would take a lot of metaphor and bake it directly into the text, leaving interpretation to those implementing it. That was the idea: he's not saying, 'Oh, here's my sword; it's out!' Instead, he's giving an indicator that represents intention — the 'why,' the purpose behind it.
00:30:02.920 The feeling, the emotion inside, and he’s allowing the performer to interpret that. This is why you can see Shakespeare's like Romeo and Juliet that was produced as a film with Leonardo DiCaprio in the late 90s, why you can see that done as modern, where 'my naked weapon' is a gun instead of a sword.
00:30:30.880 But here’s the thing: to be or not to be, or to live or die? The last thing we’ll talk about is harmony, or layering and composition. There’s an exercise I don’t have time for today, but bear with me and I’ll talk you through it.
00:31:18.440 Imagine standing in a circle, and in that circle, there are ten of us. I'm going to throw a ball into the group. You can't hold the ball and have to pass it to someone else, and you cannot pass it back to the person that passed it to you. All right?
00:31:41.080 Now, as the exercise continues, I'm going to throw one ball, then another and another until we eventually have ten balls among ten people, and the whole thing comes crumbling down! Have you ever experienced that? Some people are laughing, but here's how harmony works in the context of 800,000 words. We keep interactions very simple.
00:32:26.080 Do you bite my thumb? I bite my thumb at thee, sir! Do you bite your thumb? No! Let’s say there are five people on the stage, but it's only between us right now. What happens is I’m going to take that convention, I’m going to take that interaction, and I’m going to layer it with another one!
00:32:58.480 So I can now have one going on and another going on. They may overlap and provide harmony, but they never collide, and by never colliding, they harmonize. Ultimately, the layered composition works the poetry.
00:33:27.919 So, we can get very expressive with it! Right? This is like looking at this: I put Ruby on the screen. I felt it was obligatory at some point! But the whole idea is: Ruby gives us—there was a great talk given on idioms yesterday, and I think this is wonderful because ultimately what Ruby has provided us is the ability to represent our intentions.
00:34:15.560 We can be declarative in that model! So we can do very interesting things with it! All of them might be functionable; none of them might be wrong, but they’re all valuable! So, what would happen if Shakespeare wrote Ruby? First and foremost, remember this: language is powerful!
00:35:05.240 If we use expressions, if we use conventions that are consistent and kept throughout, we’re setting a standard that can persist through the growth, not only of the team but also of the products that we build! And of course, this also has a secondary meaning that ties back to empathy. To remember that part is very important—not only to the social dynamic but also to the functional dynamic as well!
00:35:45.640 If you remember acting is reacting, this is so great! I'm almost done here. No, really! What I wanted to say is that ultimately we're reacting to the things around us, so it requires us to listen, not necessarily to be heard. Okay, I'm going to close up with this: I just think this is a really important thing to remember.
00:36:27.360 Often, people focus on machines. They think that by focusing on machines, those will run more effectively! But in fact, we need to focus on humans, and how humans care about doing programming! We are the masters; the machines are the slaves! And of course, I want to check in with you. Did I bring you joy today?
00:36:56.760 Absolutely! That’s good! I recommend that you do the same thing—bring joy to the world around you! I hope you had a fantastic conference and a wonderful day. I’ve got plenty of stickers; that's what my hand looks like if there were stickers on it! They're in the back!
00:37:06.960 I would love for you to have one. This is the name of my company, but more importantly, I hope it's something that takes you further in life, and you bring zeal to the world!
00:37:16.760 Thank you so much! You can find me on there—this is my name. Have a wonderful, wonderful day!
Explore all talks recorded at RubyConf AU 2016
+15