Q:

ArcGIS Runtime or ArcObjects - which should I learn to become a GIS Developer?

I'm a GIS analyst hoping to upgrade to GIS Developer some day. I hope to make this switch for a few reasons:

I think I can earn more money as a developer (generally true?).
I'm tired of scrubbing data and other mundane aspects of analysis.
I love programming. Currently I do as much work as possible with
Python.

The direction of development that interests me is for Windows/desktop applications, since this is what I know and work with the most. I'd like input into which direction to pursue to be as marketable as possible. So should I focus on ArcObjects or ArcGIS Runtime? ArcObjects seems very popular, and between ArcObjects and Runtime there are far more questions for ArcObjects here on this site. But is Runtime going to eventually be a replacement for ArcObjects? Is it generally superior and just needs to catch on? In the job market for GIS development currently, which will be best? Or should I focus on a something completely different to become a developer that I'm not even aware of?

A:

These types of questions almost invariably get closed as "primarily opinion-based", but I will say that it's going to be much more difficult and take much more time to learn ArcObjects than Runtime, especially when you take into consideration that in either case you will also have to learn a new programming language and framework (e.g. C# and .NET).
ArcObjects is close to 20 years old, is absolutely huge, and is based on COM which is itself an arcane monstrosity. ArcGIS Runtime is much more recent and meant to be much simpler to pick up and use, without all the baggage that comes with ArcObjects, and although it is not going to be nearly as flexible, it does support more platforms than ArcObjects.
I don't know what the adoption rates are for the two, but I doubt Runtime is going to "take off" in any big way, and likewise, ArcObjects is not going to disappear anytime soon, though its popularity is certainly waning.
It really all depends on what you want to do, who you want to work for and what they need, and how much you are willing to dedicate yourself to learning a whole bunch of new stuff.
Also I think you are definitely limiting yourself by choosing between these two libraries. There are lots of other ways to become a "GIS Developer", whatever that means.
My suggestion would be to get on some of the job sites out there and survey the types of jobs, industries and companies you are interested in to see what skills and experience they demand.
And if you just want to get started with one of the two, start with Runtime because it's going to be a lot easier, and some of the knowledge will likely be transferable over to ArcObjects if you do decide to start learning that as well.

