Apple did their annual developer announcements last month. The general response is that there's good stuff in store for the Mac/iOS/tvOS ecosystem. Common dev toolkit across all platforms, a new declarative interface builder, multi-window UI and thumb-drive support for iPads, a consistent undo gesture. Decent controller support for iOS games.
I could link to articles with titles like "Audacity" and "Changes Everything". Let's just go with this summary from Dave Mark.
I have spoken to a lot of longtime developers, and many new developers this week to gauge the reaction of what’s going on behind-the-scenes at WWDC. The response has been overwhelmingly positive for what Apple has introduced publicly and what they are saying and doing in the talks and labs during the conference. [...] If developers are happy, consumers are going to be pleased because we are going to get some great apps in the coming months.(--Dave Mark, Thoughts on WWDC 2019)
That all sounds nice, and I bumped along for a few weeks in a cloud of mild Apple euphoria. But at some point I started trying to figure out what this means for me, specifically. How does my life improve?
Turns out -- it doesn't. I know that sounds weird; I'm a lifetime Mac user and I have no intention of jumping ship. But somehow, I'm not in the app market. I just don't buy productivity tools.
Let me try to quantify this. I've just spent a year helping to organize and run an IF conference. As co-chair, I was involved in every aspect of this thing -- the web site, the program book, the budget, everything. What was my toolset for this daunting job?
BBEdit. My Mac text editor since forever. I spent a surprisingly long time on the free BBEdit Lite and TextWrangler tools, but when TextWrangler retired a couple of years ago, I paid for the full version. Therefore, I am now out of the market for text editors.
Emacs. Yes, I use both Emacs and BBEdit. I go back and forth without thinking. Don't
Numbers. This is the spreadsheet that comes free on Mac/iPhone/iPad. We kept piles of data in spreadsheets. However, there was nothing specifically Apple about the way I did it. I could have used Excel or Google Sheets. In fact, when sharing data with the rest of the team, I always exported it to .xlsx files, .csv files, or Google.
Pages. This is Apple's free word processor, sibling to Numbers. Again, it was nice to use a native app, but any number of equivalent tools would have worked. The end goal was always to export a PDF. (If I didn't want a PDF, I'd be in Emacs or BBEdit.)
Inkscape. Open-source vector illustration editor. This is actually in a precarious state -- the Mac port is two years out of date and about to capsize in the MacOS 32-bit purge. But it's still my go-to tool for any kind of illustration.
Google Forms and Google Docs. We ran several attendee surveys and questionnaires.
Dropbox. Our shared document repository.
Slack. For what you use Slack for.
Python. For ad-hoc everything. Also for the web site, which was based on the Pelican static generator.
Really, you ask, Python? Yup. For example, when I laid out the program book, I did it in two columns for the two-page spreads. Oops -- the printing service wanted one column per page. Rather than reformatting, I wrote up a quick script to (1) convert the PDF to image data; (2) slice that into left and right halves; (3) write them out as PNG files.
Similarly, when I sent out email to attendees, I used a little script which chewed through the attendance spreadsheet (in .csv form) and sent email to each address. Stuff like that. There's plenty of ways to do these tasks, but I reach for a script.
This is why I bounce off all those articles saying "I've switched to the iPad as my regular work machine!" We got another round of them this month -- not without justification. But the fact is that all of my workflows eventually expand to include a Python script. It sounds like a joke, but it's the honest truth.
(I'm writing this blog post in BBEdit. When I'm done, I'll pipe it through a script to convert the Markdown syntax to HTML, and shove that into Google's Blogger interface. That's how I roll.)
This is probably more detail than you need about my tech obsessions. It boils down to: I like open-source tools and tools which can interoperate with them. And I'm quite resistant to changing gears. If something works, I'd rather figure out how to keep it working.
As a result, I have no idea what the last dozen hot new drawing apps are. Sorry! (Nor am I asking for recommendations.) I suppose this entire post is an indulgence of cane-waving. Sure, new tools can be fun, but haven't you already figured out how to do your work twenty years ago? Rarggh, kids, lawn, etc.
When I look at my iOS devices, the last serious app I installed was Slack. And Slack's been going for a while now, right? Oh, and I installed a bank app because I opened an account at a new bank.
(Note that games are a different scene entirely. I grab new iOS games at a whim; I regularly browse the app store lists looking for new ones. Sometimes I'll try a new game because it's a lazy morning and I'd rather pay three bucks than get out of bed right then. You know how it is.)
Let me turn the question around (before this gets any more embarrassing). What are the tools that have changed the way I work? And when did I adopt them?
(I'm not going to count software development languages, because that's work in its own right. I'm talking about tools that help me with not-inherently-software tasks. Like running a convention.)
Text editors (Emacs, BBEdit). Before that I think I wrote stuff down in my terrible handwriting until my hand cramped. I used word processors in high school, but mostly for assignments, not saving data. Then I got my first computer account where I could save files -- and not in the uncertain hell of floppy disks. Life-changing. (Arguably, this includes the crucial flip-side skill of "organizing files in a directory tree".)
Email. Any serious communication, I want it in email. Email is my memory. Plain text please; HTML just gets stripped. Attachments are fine but I'll save them off separately.
Vector graphics (PostScript, Inkscape/SVG). I did not do art until I could program it. Then I found out about PostScript and started trying stuff like this. Not that this is terrific art, but it was a space I could mess around with. I worked up to projects like the Hadean Lands map, which I did in Inkscape.
Scripting languages (csh, Python). See above. Perl happened to a lot of people of my generation, but I skipped it.
Online chat (Zephyr, MUDs, IRC, XMPP, Slack). Many different work, social, and mixed-work-social circles. Chat has gone through a lot of different platforms; I've used all of them in roughly the same way. I can coordinate with people entirely via email, but chat complements email by letting you have a discussion right now. Yes, Slack has nice amenities -- file attachments! -- but when Slack is ruined by corporateness we'll move on to something else. (Note: Discord is a bad replacement and will not survive.)
Distributed version control (Git). Yes, I used SVN before Git. And RCS before that. RCS was bad, SVN was fine. But Git was when I said, oh right, I should use this on anything that might need revisions. No server setup, just
git initand start work. Revelatory.
Spreadsheets. I came very late to spreadsheets. I didn't start one until I wanted to track sales of iOS apps, which was 2011. They certainly solve a bunch of problems, though.
Bug/issue trackers? I'm not sure this looms as large as the other items, but it's a runner-up.
And... that's it. That's the toolbox. Oh, I use innumerable other tools ad hoc, but these are the ones that rearranged how I do everything.
You see immediately that these are all old technologies. I picked most of them up in college. Git and spreadsheets are the only recent additions, and of course spreadsheets were around much earlier. So if there's a moral (and I've been rambling long enough that there better be a moral), it's that I've been a conservative old fart my entire life.
That said, you never know. I did figure out spreadsheets at age 40, and I'm not dead yet.
pbpaste | blogmark.py | pbcopy