Issue 83

28 April 2021

by Lori M Olson

DRD083: Which language you choose depends a lot on what you plan to do with it.

The Rosetta Stone at The British Museum. (image: Cristian Bortes via Wikimedia under CC BY 2.0)

OPED ― Our Unvarnished Opinion

The Right Choice

Someone challenged me a few months ago in my DM’s about being a Ruby zealot, and thinking Ruby was the answer to everything.

Au contraire…

I’ve been developing for (checks calendar) 35 years now. I’ve programmed professionally (been paid for it), in Fortran, REXX, C, C++, HTML/CSS, JavaScript, Java, C#, F#, Ruby, Objective C. I’ve dabbled in Python & Elixir. I’m interested in learning Julia.

I have opinions about a lot of those languages. Those opinions are informed by use, and by experience. One valuable lesson I learned, while still working on my Computer Science degrees, was that there are reasons to use one language over another in many cases.

This was brought home many years ago in the aptly named course, CPSC 500 - A Survey of Programming Languages. In this course, they introduced a number of languages, and the reasoning behind the development of each one. We had 10 programming problems to solve in this course. We had to use at least six different languages to solve those problems. And we had to implement at least three solutions for at least two problems in different languages. I learned that SNOBOL made string manipulation trivial, but solving the same problem with a general purpose language was quite challenging. APL was just a bitch to read and write, but you could solve matrix manipulations with a single line of code. These were interesting lessons to learn.

So, back to today. If I was going to write a device driver, I’d use C. I used C for years, and then C++, then back to C, because C++ took off in weird directions. I recently discovered Orthodox C++, and I suspect I would like using that. C & C++ are great for that low level, highly performant stuff. If I want to create interesting, interactive web pages, I use JavaScript.

But general purpose languages…a lot of those are interchangeable. Preferences for these languages are often expressed by developers who have learned one, and can’t be bothered to really commit to learn another, in order to fairly compare them.

Having used many general purpose languages, for years at a time, I find that I have a strong preference for Ruby. I don’t have to re-iterate those reasons here, you can find most of them in my intro video on the WNDX School home page. I don’t really feel the need to argue about it. I just know it’s the right choice for me. ― WNDXLori

This months’s edition of Motion in Motion is coming. Our subscribers have expressed their preferences, so we are covering Core Data Basics this time! Subscribe now, and don’t miss another episode!

Also, Lori also just spoke at the monthly WNB.rb (Women & Non-Binary Rubyists) meetup. One of the examples she highlighted was an experimental WeatherTV app she put together for Apple TV. Check out the source code on GitHub.

APP ― All Things App

Although it’s not really an app exactly, Apple rolled out its AirTag at their recent event (much to Tile’s chagrin) Already, folks way smarter than us are dreaming up uses we had never ever considered. For example Dave Woodbridge, who is blind, suggested that leaving an AirTag in his family’s car would make it much easier for him to locate it in a parking lot given that in addition to visual cues, the AirTag app uses sound and haptics to guide the search. That’s brilliant!

Actually, we’d probably feel we had gotten our money’s worth if we could just get Siri to say “hey, buddy, do these belong to you?” when we walk away (again!) from our Kremer-esque set of keys at the local mall.

SPOT ― Spotlight On…

You might think that when we called this section Spotlight that somehow big, hairy, audacious projects would be the only ones we would be inclined to feature. Not so. In fact, we’re almost more interested in focusing smaller, more modest projects where the developers have used whatever means at their disposal to get them out there in the wild. A couple of great examples are Don’t Press B 1.0 by Tofo. Simple, but still kind of addictive we must say and super retro. We even like Aleš Lulák getting his game out there on YouTube. In the end it’s all about eyeballs and these efforts will certainly get these brave and bold developers a few new ones. Speaking of eyeballs, do you have a project you would like in the ‘Spotlight’? Let us know!

Also, there is an important update to motion-cocoapods to which you will want to avail yourself given that it deals with some of the Apple M1 problems we mentioned a couple of issues back.

Finally, Amir Rajan has contributed a great geometry library to the DragonRuby Game Toolkit. Clearly making a good thing that much better.

TALK ― Talk of the Tech

This is the section where we highlight interesting tidbits from the two main gathering places for DragonRuby-istas: Discord and Slack. From Discord:

  1. An interesting chat about sprite animations including some snippets of code to help illustrate.

  2. Some insights into the problems encountered by users of non-US keyboards invoking keyboard shortcuts.

  3. Also, ToFo, who we mentioned up there in SPOT, is getting some cool work done, which he discusses here as well.

Meanwhile, from Slack, Amir provides an interim solution for the live reload on RubyMotion apps. That’s going to be really useful.

GAME ― All Things Gaming

Don’t let the edgy title put you off: the Sadistic Self-Care Survival Game is entertaining and dabbles in the gamification of balancing all of that hard work you’re doing with the need for adequate water, food and exercise. Let Chael explain (with Amir’s help) or what the heck, just give it a try. It’s a really interesting idea.

Also, our friend Grotesk let us know there is another game jam in the works: The DragonRuby Classics Game Jam asks participants to come up with something in the spirit of the arcade classic Gauntlet. It’s going to run from May the 15th through June 7 and, most importantly, it’s beginner-friendly.

TWIL ― This Week I Learned

Oh, this is going to kick off a trend in registration of short and heretofore unloved domains names. Like tr35.org, for example. You guessed it, Dave DeLong jumped on that and pointed it to the much less easy to remember Unicode Technical Standard #35 to say nothing of where you would actually find that. It could be the best $8 a year he’ll ever spend.

As if you needed a reminder to stop working and play a game instead, Neil Sardesai came up with a way of putting an entire game (once again, featuring the beloved Flappy Bird) in a push notification. Thanks, Neil. We think.

HAHA ― And They All Laughed

Did you know that Bart Simpson, in human years, is pushing 40? He looks amazing for his age, doesn’t he? In any event, there’s always an opportunity to use that lovable rascal to teach us some profound truth about ourselves and the weird thing we do for a living. Thanks to Rich Campbell for this.

That’s a Wrap!

The world’s best DragonRuby newsletter can be delivered to you—at least it will be if you subscribe! Follow the WNDX School on Facebook, and don’t forget to follow WNDXLori on Twitter and Instagram.

If you enjoyed this issue of the DragonRuby Dispatch, please forward to a friend and ask them to subscribed, too…we really appreciate it!


“Another hundred years may pass before we understand the true significance of Apollo. Lunar exploration was not the equivalent of an American pyramid, some idle monument to technology, but more of a Rosetta stone, a key to unlocking dreams as yet undreamed.” ― Gene Cernan, Two Time Apollo Astronaut

RubyMotion Weekly brought to you by