Chapter 5
Julia

by Jack Moffitt and Bruce Tate

Writing a language is sometimes compared to writing a book. Each language has a voice. Sometimes, if too many people collaborate or if the language is written over too long a period of time, that voice becomes chaotic and disjointed. You can imagine our trepidation when we started working with Julia, which had four primary authors.

So far, the authors of this book have collectively interviewed 14 language creators. Sometimes, as with Haskell, we interviewed more than one, and once, with Prolog, we didn’t interview the creator. Each time, the process is different. There’s usually a dominant voice on the team. With Clojure, it’s unquestionably Rich Hickey, even after his company merged with Relevance, LLC. With Erlang, it’s Joe Armstrong. When we approached a Julia mail list with a request to interview the creators, you can imagine our surprise when not one but four of them responded, at once, with a single voice. “We will answer you,” the voices said in unison, “within two weeks.” And two weeks later, the answer came back, from four voices in unison, with an incredibly thoughtful and well-reasoned interview.

As we dove into the language, we felt ourselves drawn into the community—at once eager and polite. Think “Borg,” the Star Trek character of aliens where individuals were drawn into the collective. Julia works in that spirit, like a giant hive-mind, a collective consciousness that subsumes the whole. Working with integers, or rationals made up of integers, or reals or even imaginary numbers? No problem. Julia gets you. Plus is plus. She knows what to do.

What about a multidimensional array? No problem. Plus is still plus, and will add to each element. You can even distribute the plus across the whole.

If you feel yourself drawn toward something bigger, don’t fight it. Think of the whole. Let’s get to work. Maybe in the end, you too will be assimilated.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset