4 ms·
This list almost perfectly matches my frustrations when learning a new language, and to be honest it's why I don't bother anymore. I started off in Python and
by UglyToad 6y ago
This list almost perfectly matches my frustrations when learning a new language, and to be honest it's why I don't bother anymore.
I started off in Python and have looked at Ruby, Pony, Rust, JavaScript, etc so I'm aware there are other ecosystems out there but I feel none of them really approach the ease of C# .NET, especially with .NET Core.
On a new system I can install the dotnet core sdk, call `dotnet new mvc` then `dotnet add package npgsql`. I've got everything I need to write a web app that connects to a Postgres database. I can launch up Visual Studio for free and have almost unparalleled intellisense, etc. Or on a non Windows system Visual Studio for Mac or Visual Studio code. The project template gives me everything set-up and it 'just works'. If I'm not sure how to use a library I don't have to leave the IDE to browse through variable quality documentation, I can autocomplete to victory or use the REPL or just debug and write the code in the debugger with edit-and-continue.
Once it's time to move to production `dotnet publish -r linux-x64 -c release` and I have my production ready deployable application.
Now when I go back to Python or these other languages at least one or more parts of that process is missing. I know I'm biased but it feels like for other ecosystems the 'pain is the point'. It should be as simple as that and it needs tooling, especially an IDE to match.
Almost certainly people feel this way about other languages they use, but I think there's an enraging habit for software development as a field to throw away the old tool we were used to and that was comfortable and worked, for some new thing that doesn't get the job done and is a godawful pain to work with (goodbye XML hello YAML). This really contributes to my burnout and disillusion with the field in general, though I'm on the road to recovery.
Edit: This rant clarified what I'm actually frustrated with. There's no way .NET would have reached the (excellent) point it is now without competition from other ecosystems, the whole dotnet CLI owes a lot to other ecosystems and evolution does improve things.
But I'm just sick, in this field, of feeling like a failure, or a fossil because people are constantly hyped about some hot newness and if it gets introduced, I'm going to have to learn it because that's the job. I'm not excited to learn flavour of the month cloud tool, or database replacement, or configuration language (I hate YAML so much) or language or framework. Other people are, and that's fine and good, but if those people introduce the thing at work then I now have to learn it and 9 times out of 10 we'll be having discussions 5 years down the road about why micro-services, or NoSQL or whatever it might be, was overhyped and we've found the right approach (which was almost identical to the approach before we started this). People should be free to have fun with those new tools, but I feel there's explicit or implicit judgement of people who just want to use the tools they know, that have known best practices and failure modes and whatever else. TLDR: you'll take my RDBMS from my cold dead hands.