The Dialogue: James Thomson
For this edition of The Dialogue, we had the pleasure of talking to James Thomson. James is an indie developer of iOS and Mac software, living in Glasgow, Scotland. He founded TLA Systems with his wife nearly 20 years ago, and now works full time writing software. You probably know him from PCalc — a scientific calculator that is available on every Apple platform.
You have a long history with Mac and Apple since PCalc is now 20 years old. Tell us about the journey and how developing software has changed in the 2 decades.
Twenty three years, this December! The first version of PCalc was released in 1992, and I wrote it in Pascal on an original Mac Classic with a nine inch 512×384 1-bit black and white screen. Some of that code is still running today on my phone. The actual day-to-day process of developing software hasn’t changed a great deal in that time – just the platforms are thousands of times faster. But it still takes the same amount of time to do anything. The main difference is the commercial environment in which I am trying to sell software. The market is significantly bigger, but a lot harder to convince to hand over their money. It’s still possible though.
A lot of new PCalc customers are probably unaware of DragThing and how important it was for OS X and iOS. Tell us a little about DragThing.
DragThing is an application dock, inspired by the original NeXT dock and other Mac launchers of the time like Applicon / The Tilery. It was really an excuse to learn the new drag and drop APIs that were coming in Mac OS 7.5. It was inspired by the NeXT dock, but then DragThing went on to partially inspire the Apple app switcher in Mac OS 8.5, and the Dock in Mac OS X. DragThing is still running over 20 years later – I’ve been more focused on PCalc of late, but I hope to get back to it and give it the rewrite it deserves. But, I also think the market has moved on to some extent – regular users use the Dock, and power users use Spotlight or some other keyboard based launcher.
You joined Apple for a bit a few years ago. How was it working there and what made you decide to go independent?
I always wanted to work for Apple, and the documentation for DragThing and PCalc had a line in it to that effect. In 1996, I got an email from somebody at Apple’s European developer group in Cork, Ireland, and that led to me working there. Apple was a fantastic place to learn, and I worked on lots of interesting projects including the Finder and OS X Dock. That’s not to say it wasn’t stressful at times, and unfortunately Apple was at a point where they were pulling most of the development back into Cupertino and shutting down the international development groups. I didn’t want to move to the States, so I left in early 2000.
I’ve been a PCalc user only for a few years now. It has been amazing seeing it get new features and regular updates, keeping up with Apple’s yearly release schedule for iOS and OS X. How important is it to be ready for X feature or X device on day one?
I think it’s very important for two reasons – one, customers can see that I’m making an effort to keep up with Apple’s technologies, so they feel more confident in buying my software. And two, Apple likes apps that take advantage of their new stuff and tend to feature them on the App Store. That can make a big difference to sales as well. Supporting new devices is also the right thing to do generally though, and being a small developer makes it somewhat easier to move quickly. And, if you keep up, it’s not so bad to adopt the new stuff year on year. Split screen multitasking on iOS 9 for example, was all pretty much working already because of changes I made for iOS 8.
You’ve been vocal about your thoughts on universal software. How do you think that landscape has changed today with all big name productivity giants like Omnigroup also doing universal apps.
I think with the advent of split screen multitasking on the iPad, the distinction between separate iPhone and iPad software has to just go away. You have to have one product that adapts to whatever device it is on, be that an iPhone 4S, or an iPad Pro. Separate apps was always a mistake in my book.
Is iOS development getting less sustainable for independent developers?
I think the trend is definitely pointing in that direction, yes. More and more apps are coming out, at lower and lower prices – or even free – and it’s getting harder to be noticed amongst all that. PCalc has been around a long time, and people know it, so I’ve been lucky so far. I think that the size of the market means that a well-written piece of software can find a big enough niche to be successful, even if it’s not a chart topper, but it’s hard for me to be completely objective because I realise my experience isn’t the same for everybody.
What’s your design workflow and how do you decide on what big feature to include in a release for PCalc?
In terms of features, I see what people have been frequently requesting, or what I think would make an interesting addition myself. And I see what I think would be fun to work on too, from a design or coding perspective. Once I have something in my head, the design process is generally iterative. Build a prototype, see if it works, then refine it and refine it until I’m happy. Sometimes that process takes a long time, sometimes I’m never happy with it! I design stuff on paper, or in Photoshop, but I find that just trying to build something is the best way to figure it out.
Your apps have easter eggs. I know DragThing supposedly has one that barely 10 people have seen. Some of these stem from gaming, like the Sonic debug code. What makes you put these into your apps and will you ever reveal the DragThing easter egg?
I like to put a bit of my personality into my apps, especially in something like a calculator, which might be a bit dry otherwise! And, there’s an old tradition of programmers hiding things. Even just the names of the themes in PCalc are often references to something. I did actually reveal the DragThing easter egg to a select audience, at a talk I gave earlier this year at the Úll conference. But I’ll still keep it quiet for now!
After Apple introduced Today widgets in the Notification Center with iOS 8, PCalc was quickly ready with its own beautiful widget. Soon after, I remember you had to pull this feature after Apple asked you to, leading a lot of negative press for Apple. This backlash was followed by the app being available with the widget again. How did this affect you and do you think apple is too vague with restrictions and rules?
Apple could be better at communicating with developers – that would be my biggest complaint. Apple is a black box, and you can’t see what’s going on inside, or what reasoning they might have for a decision, only the outcome. And that can be frustrating. Luckily, in the case of the widget, there was something of an outcry and the decision was reversed. Nothing actually was ever pulled – it was on the store the whole time. But I think if I wasn’t lucky enough to be well known and have good contacts with other developers and journalists, there wouldn’t have been any chance of that reversal. In the end, the publicity was good for sales, but it was a very stressful time.
What are your thoughts on the Apple Watch so far, and PCalc on it?
I’m not finding myself using it for apps as much as I’d expected – I use it mostly for notifications and giving quick feedback on things. And, I do use it as an actual watch! But I’ve heard from people that they use PCalc on it regularly, particularly in the grocery store or out at a meal to split the bill. You never know what people will find useful, so my strategy is to put PCalc everywhere and let people use it how they want. Hence the version for the Apple TV.
What would be your advice for someone just getting into Mac or iOS development?
There is a great and helpful developer community out there, especially on twitter, so get involved. Go to conferences if you can and get to know people. In terms of learning, there are lots of free online courses, and Apple’s documentation and sample code are certainly worth looking at. Things can feel intimidating, but just give it a go. Oh, and also, writing the software is the easy part. It’s everything else around releasing software to the world that’s hard, particularly the marketing and business side.
What does a day in your life look like?
It varies wildly – sometimes I’m just sat in front of my main computer coding for ten hours straight. Sometimes, I’ll sit on the sofa with my laptop and answer support emails and social media. There are busy days and not so busy days. The annual cycle of Apple product updates around this time of the year has just about finished, so I’m looking forward to a bit of a relax over the xmas period.
I wanted to ask about gaming since you put those easter eggs. Do you game a lot these days?
When I can find the time, yes! I have a PS4 and an Xbox One currently, and I rarely game on my Mac. I’m curious what sort of games the Apple TV will bring. The most recent game I played was Metal Gear Solid V, and I probably put about 120 hours into it. Next on my list is likely Fallout 4, and I’ve heard that’s about 400 hours in total, so I doubt I’ll need anything else to play until next year! My favourite series of the last decade would probably be Mass Effect, or the Bethesda games like Fallout and Skyrim. The Witcher 3 was also a lot of fun.
What software do you use on a daily basis?
Xcode, obviously. BBEdit, Photoshop, Illustrator, Twitterrific iOS, Tweetbot for Mac, and Mail. Those are the big ones.
Which developers or companies inspire you?
The obvious answer is Apple. They set the bar for software on all their platforms, and I try to make my apps reach or surpass that level. Generally, developers that have been in it for a long time – the ones that I will meet up with at WWDC and have a drink as we share war stories about our job. They know who they are!
What’s next for James Thomson?
Once the Apple TV and iPad Pro versions of PCalc are out, and everybody is happy, I’m going to take a bit of a break to recharge, and then start something different in the New Year. No idea what that’s going to be, though, but that’s the plan!
We would like to thank James for his time and patience for doing this and while we worked on this. We can’t wait to see what is in store for both James and PCalc in the future.