In previous years, I’d have reached for Ruby (specifically rake) if I had to build a little helper tool or script that needed more than my limited knowledge of shell scripting. I wrote server code with Rails for a long time and still enjoy writing code with Ruby. It’s also great for knocking up little tools to automate repetitive tasks.

That’s changed recently, and it’s primarily down to one Swift package, swift-argument-parser. I built two small command line tools for some behind-the-scenes work on the Swift Package Index recently (1, 2) and used argument parser for both.

First of all, this package is seriously underselling itself. It should be named CommandLineKit or something that lets people know this is about much more than just parsing arguments. Making a tool that operates just how you’d expect any other command line tool to work is trivial. It’s fantastic. If you combine it with something like ShellOut you quickly find yourself with a powerful command line tool environment.

Secondly, it’s a great reminder that it’s easy to miss when a language you use regularly becomes significantly better at solving a problem. I had taken a quick look at argument parser when it first came out but hadn’t built anything with it and had missed what a step change it was for creating little utilities like these.

I hope this inspires a few of you to build your next utility with it! I don’t think you’ll regret it.

Dave Verwer  





Senior iOS Developer @ Shape Games – Join a team of talented developers who are passionate about working with Swift. We offer visa and relocation support if you want to join us in lovely Copenhagen. We are also open for fully remote team members. – Remote (within European timezones)

iOS SDK Developer @ Stream – Do you want to work on an open-source chat SDK used by hundreds of high-profile companies and startups that impact billions of users? If you are a product-minded engineer and care about software quality, apply on the link below. – Remote (within European timezones) or on-site (Netherlands)

Freelance Interview Engineer @ Karat – We're dedicated to improving access in tech. If you are too, join us as a Karat Interview Engineer. As such, you'll conduct technical interviews of developers like you on behalf of our hiring clients (including Duolingo, Indeed, and more) using the Karat Platform and its data-tested questions. – Remote (within US timezones)

Senior iOS Engineer @ DuckDuckGo – Our app is now downloaded more than 50M times a year, and our private search engine packaged with it has become the #2 search engine on mobile in the U.S., Canada, Australia and the Netherlands. Oh, and we've been profitable since 2014 with revenue currently exceeding $100 million a year! – Remote (Anywhere)

Mac & iOS Software Engineer @ Flexibits Inc. – We make Fantastical and Cardhop, award-winning calendar and contacts apps for Mac and iOS. We were honored to win Apple's Mac App of the Year in 2020 and we're looking to make our apps even better! Our team is a 18 person, fully-remote company spread across the US and Europe. – Remote (within US or European timezones)


And finally...

I couldn’t find a recording of the Tim Cook, Laurene Powell Jobs, and Jony Ive interview immediately after it happened, and I forgot to follow up on my search.

Until this week, when I looked again and found it!