Marco Arment:

Ed Finkler:
I find myself more and more concerned about my future as a developer. …

My tolerance for learning curves grows smaller every day. New technologies, once exciting for the sake of newness, now seem like hassles. I’m less and less tolerant of hokey marketing filled with superlatives. I value stability and clarity.

… I feel the same way, and it’s one of the reasons I’ve lost almost all interest in being a web developer. …

After reading Marco’s post The Developer’s Dystopian Future and subsequently Ed’s post of the same title , which Marco linked, I find myself thinking about the same topic. At 45, my age lands me squarely into the aging programmer group, even more so than Marco.

There is certainly something to be said about age and it’s inverse correlation with ability to learn new things. After all, the saying “you can’t teach old dog new tricks” was not plucked from thin air. However, at my age, I’m actually excited at learning Swift. Just that my motivation is not because of the newness of Swift but more because I find that Swift is the way forward if one is to keep doing development work on the iOS platform. It is also a chance to pick up some of the more current paradigm in modern programming languages that I’ve wanted to pick up for a while but had no opportunity until now. But most of all, I have always been passionate about programming and keeping up with the times is part of the passion.

There is some reluctance of course but it’s not the urge to resist learning something new. I feel it’s a little too early for me to move away from Objective-C. I have just started to learn Objective-C two years ago and I have yet to venture as deep into Objective-C as I like. I’ve mentioned in the About page that Objective-C feels like my mother-tongue even though I’m relatively new to Objective-C and there is uncertainty as to whether Swift will be as natural to me as Objective-C. In other words, I’ve not had enough fun programming in Objective-C. Note that none of these reasons have anything to do with my age.

Having said that, I do wonder from time to time if I’m too old for this shit. The constantly chasing the next programming trend can be tiresome at times. The fear of getting too old to be still valuable in the field is real. I am by no means trying to put down Marco or Ed about their feeling of age and seeing themselves somehow becoming less valuable in the field. Just that I find the thing that keeps me going is the passion to write code and to solve programming problems.

Marco Arment:

Swift looks interesting, but in all of Overcast’s development so far, I’ve never run into a problem that’s the language’s fault that Swift would have handled better. It appears to solve problems I don’t have, to gain small (and still theoretical) optimizations that I don’t need, at the expense of many Objective-C features I really like.

Beyond reflecting about my age and my future as a developer, there is one point I don’t agree with Marco. Marco pointed out that while developing in Objective-C for Overcast, he has not ran into problems that are the language’s fault. I don’t think any problems in any program written in any language can really be fairly attributed to the language’s fault. Language features are designed to support the paradigm behind the language design. Some languages are said to have a mixed paradigm, and features of the language are designed to support more than one paradigm. If a paradigm is applied using a language that is designed with the same paradigm, it usually mean the code is easier to write and clearer to read for other programmers. Usually. However, any paradigm can be applied to any language regardless if the language is designed for said paradigm. An extreme example would be writing code with the Object Orientated paradigm in Assembly Language (Don’t laugh. Have a look at this book: Object-Oriented Assembly Language). No doubt, without language feature to support a given paradigm, it will be difficult to write code using said paradigm but it’s not unachievable. But if a paradigm is applied with a language that is not designed with the same paradigm and things goes wrong, it is no fault of the language. The problem lies most definitely with the programmer.

In other words (or TL;DR in Internet speak), Swift is a different language that is designed with a different paradigm. In Apple’s own words, Swift is Objective-C without the baggage of C. So,  before you start learning Swift, you need to check your C baggage at the door.

—Swiftloc signing off.