I hope not for my sake :) Im currently contracting writing C++, but my previous contract was with the ASP.Net stack. Before that I was working on a lot of Java services (introduced Scala to good effect)
I also have started a side business helping small companies by making small apps helping with their everyday stuff - sometimes Ill make iPad apps with Swift, but more recently Qt/QML to make something that runs on both OSX and Windows desktops natively. I also made (very small!) web apps for them hosted on both Azure (MS stack) and AWS (linux stack)
After a while learning the core aspects of a new language doesn't take very long, and they generally have to address the same high-level concerns. That said, learning iOS development was a continual hassle but feels like it was worth it to have a native app that I can deploy easily using HockeyApp etc.
edit: I will undermine my whole point here by saying that I abandoned a personal Android project because the dev environment felt so ad-hoc and duct-taped. I spent a ridiculous amount of time trying to get the simulator to render GL properly without any luck (on Windows)
That only works when there is an "open" that is in competition. iOS is certainly the most closed platform but Android isn't really open enough to be competition. Microsoft is making their platform more like iOS and Android every day. Linux on mobile is a non-starter as usual.
The fact that the past played out a certain way is no guarantee that it will play out the same in the future.
I kind of agree on being a mostly single-stack developer. I dabble in C, C++, C#, etc and I'm perfectly ok with using very different platforms for very different problems. But using very similar platforms to solve very similar problems feels like a huge waste of time and mental effort.
I can program directly against viewControllrs or Activities, but i dont have to. I use Rx for all async stuff and my Views/Models are eventSourced just like my aggeregates an their views are on the server.
Not saying Xamarin is bee's knees or anything, it has its own quirks and own bugs, but in terms of andriod vs iOS dev, i dont have to buy into any of the core OS's to get the job done.
Why is that insane? Sure, your core APIs and tooling change, but software developers should be able to learn, and read documentation. Chances are, you're writing the same sorts of applications in both, and the same principles of good software development apply. Why would a Java developer be water in .NET's oil? Or vice versa? They're reasonably similar languages targeting similar niches. It's like saying that a Django web-dev could never move to a RoR job.
I'm curious because I spent a few years self-learning .NET (C# but I love F#) because I was trying to get into the industry in a town dominated by .NET, and ended up being hired by a Java shop.
How boring! I'd go mad if I didn't get to work in new domains with different tools every so often.
When we are interviewing and I see CV's that have so many technologies listed that I am fairly sure they have very little depth of knowledge to many of them.
On our case we are required to stay flexible and take whatever projects come when one is released from a project, it is not always possible to say "I don't do X".
So every few months there is a new stack to work on.
Over time any set of "core technologies" will be legacy and your career will be over. In this business, you'll always need to absorb and learn new ideas, platforms, technologies, languages, etc. or eventually you'll have to do something else.
Sure it does. We do consulting projects in Java, .NET and C++.
Right now I am doing exactly three customers in .NET and one in Java.
We won over the Windows desktop because mobile killed the desktop.
iOS and Android are actually very similar and become more and more similar with each major revision. Where the syntax diverges, the unique concepts remain the exact same.