3 ms·
Is it bad that I would steer someone away from learning C# if they're on a MacBook, unless they're learning Unity? And then I would recommend what Unity recomme
by t-writescode 6y ago
Is it bad that I would steer someone away from learning C# if they're on a MacBook, unless they're learning Unity? And then I would recommend what Unity recommends.
- tracker1 6y agoDepends on why they would be learning C# I do most of what I do with C# in WSL with VS Code (WSL Remote) ... because that's where I do most of my Programming. Where I work, pushing towards most of what we write to be able to deploy/operate in Linux/Docker environments. Doesn't make C# less of a language for the teams that have over a decade of experience with C#, but it is a mindset shift. The bigger issues I have are with the framework and that it's very difficult to search for working paradigms as framework apis and interfaces have dramatically changed in a lot of areas the past few years. I like the dotnet cli better than what was before it... that said, it's still got a lot of rough edges. And getting started, especially when you are experienced in other platforms, isn't always easy... even experience from .Net framework to newer runtimes has been painful in the past.
- t-writescode 6y agoPer the last versions of .net vs .net core that I worked with (4.....6.2(?) and .net core who even knows), I definitely agree with the frustrations. That's a major reason why, when I answered the top question, I was responding in a way to reference a new developer. I don't think they should be required to think of all of that hell, so I just wanted to point them to a particular library and to just live with it until they're asking the hard questions and have to move to something more complicated. For beginner-beginners, that shouldn't happen for a while. Someone higher up said that this post should have been titled something like .NET for Professional Beginners, developers that already have a lot of experience and are wanting to develop a single, specific, advanced usecase, or a use case where they are required to work with .net core, it was like that. I ran into something similar at my present job, trying to set up a webserver in Kotlin. It reminds me a lot of the woes I have with .net core with the numerous, almost adjacent, but not quite in the same package gradle packages. At this point, I'm not sure there's very many batteries fully included languages left. C# was kinda the last bastion of it. Elsewhere someone, maybe you?, referenced PHP, but even that isn't batteries included. The only batteries included are the ones that PHP is good at, webservices. Python is all about packages, and it just went through async hell, where the syntax for async changed over and over again over each version, so Google searching, as you mentioned struggling with in other threads, can be painful there, as well. Ruby requires you to learn Rails (which isn't Ruby! it's written in Ruby but not part of the base framework!) ... I guess Go is probably the closest to general purpose with its default framework.
- tracker1 6y agoI'm relatively familiar with .Net (been using it since late 2001), that said, it's changed dramatically, more so in the past 3 years than nearly a decade before that. The changes between Framework 4.x to Core 1, 2, 3 have been somewhat dramatic and painful trying to keep one application current (that needed portability, including rpi). Hopefully the move to .Net 5 will be less painful. I'm mostly playing devils advocate as it's not been a smooth transition and the best way to do many things has changed since some things are in the box, that didn't used to be, but still rough around some edges. Many libraries and patters for web api projects are a bit different, better but different.