I set up this site last summer and just now I thought that it’s about time to write another post. The first job now will be to figure out how to post to this blog. There’s a deploy script; let’s see if it works.
It worked just fine. Great.
So, what’s happened since you last heard from me? Well, I switched job in april 2019, a few weeks before I posted previously. I have not been doing a lot of iOS coding on my new job. Instead, I do backend coding, in Java and Kotlin. We use an architecture where the content in the app is driven by the backend. The native apps are given “screens” in JSON from something that we call the view layer; the front-most part of the backend. I find that this works fairly well for the app we are building, and it’s a lot of fun to work with as you get to write features immediately visible to the user while having full control over backend.
We use Kotlin for these “view layer” services and Java for the backend of the backend. At first I thought that Java felt very boring. The “enterprise” language. Clunky and boring. Uninteresting. And, it kinda is. As a language, is does not really excel at anything. What I am really starting to appreciate, though, is that a programming environment is never about just a language. It’s also about the tooling that you use with it. Working with Java in IntelliJ IDEA, the IDE that we use, is a lot of fun, when you start to become friends with all the various refactoring tools and various kinds of automation.
Ironically, it does a lot better job with Java than with Kotlin, the language invented by the same people (Jetbrains) that gives us IntelliJ IDEA. It’s quicker and a lot more features exist, or work better, with Java than with Kotlin. Not that surprising of course: for one thing, it is originally a Java IDE and they’ve had a lot more time to polish that stuff. Secondly, Kotlin is a language that requires a lot more processing to parse. The situation is the same as in Apple land (when I left it): while Swift is the nicer, more modern language to use, the tooling (Xcode) works a lot better for Objective C, with things like auto-complete being way snappier.
So it makes me happy to see the news from this year’s WWDC, about how they’ve spent considerable effort on improving the developer experience in Xcode and, for one thing, it is now doing the auto-completes up to 12 times faster. Makes me itch to start up a couple of hobby projects. As usually happens in the summer.
Of course, they never lead anywhere. But that’s not necessarily the point. Tinkering is the point.