3 ms·
Even with my personal projects, I am wondering "What am I learning?" and "How might this benefit me professionally?" Other times I'm thinking "I just want this
by lowbloodsugar 5y ago
Even with my personal projects, I am wondering "What am I learning?" and "How might this benefit me professionally?" Other times I'm thinking "I just want this to work".
I started with C# with 1.0, back when structs inside structs didn't serialize properly. I've written iOS apps with Xamarin. I am a C# fan. I haven't used it professionally in a decade and my last personal project was years ago.
When is C# the right idea? The only time is when the project is entirely captured by the Microsoft ecosystem. There are plenty of places where this is the case. Windows desktop applications. Small business contract work who are still using Windows. Big business IT who still use Windows. Opportunities to migrate to Azure.
Where is C# the wrong idea? Everywhere else.
Writing for the best monetized mobile market? Swift.
Writing for cross-platform mobile market? Javascript.
Writing for cross-platform desktop market? Javascript. Maybe Java if you have a history of it.
Writing for the cloud? Something linux first. Javascript, Python. If you want a big GC language, why would you pick C# over Java?
AAA games? C++
Not AAA games? Maybe C# with Unity?
In every category where C# is used (outside Microsoft captured environments), there is a dominant solution which is not C#.
And that sucks. Because C# is awesome.
- oaiey 5y agoYeah .. but there is one aspect in this argumentation: C# is everywhere a reasonable contender. So while you rarely get a dominant position (Unity and Backends) you get a lot of second places (Apps, Desktop, ...) which complement your full stack experience in an awesome language. And this is different to other languages: Python/Go: no-show in apps; JavaScript: no-show in data science; Swift: no-show in backends (thanks IBM). From a management perspective, this is not bad. You get movable team members. In my company we have moved people from WinForms app, to cloud deployed micro-portals and then to a Apple/Android App (all different solutions .. not a migration). C# play a big role in that. I think this is again a dark-matter-developer / line-of-business situation.
- lowbloodsugar 5y ago>From a management perspective, this is not bad. You get movable team members. I have a friend-of-a-friend who has a successful 30 person contracting business. They do C#. He, the co-owner benefits from this. I was responding to a question from a FAANG developer. FAANG developers don't get moved. FAANG developers move when they want to move: to projects that they find interesting; to other FAANGs; or to start-ups. And FAANGs don't pick one language because "hey, it's possible to do what you want in it".
- kcb 5y agoI honestly don't have first hand experience, but I seriously doubt every FAANG developer is the rock star you're making them out to be. I'm sure there are certainly plenty of FAANG developers working on boring shit that needs to get done.
- DeathArrow 5y ago>FAANG developers move when they want to move: to projects that they find interesting; to other FAANGs; If a developer knows C# he can tackle more than one domain. Suppose you got bored and want to switch. Or there are new interesting opportunities. If you know C#, you just switch without having to learn a new language and libraries.
- jhgb 5y ago> without having to learn a new language Well, at least you can if Blazor gets finished.
- lowbloodsugar 5y ago>without having to learn a new language and libraries This. You see this as a positive. I see this as a negative. And we're both right, right? You are right in your domain, and I am right in mine.