And NOP is a perfectly reasonable instruction.
nebeker
You know, I don’t know enough about Delphi. I’ve great good things, I should check it out, I guess it might be familiar.
I enjoyed playing with Kotlin on Android. Nice ergonomics.
Conversely, I’ve written C++ code to into DLLs interop with .NET. It makes a lot of sense given what .NET was developed for.
Rust adds the curly brace syntax so you can import a specific subset from a module, but I can’t decide if I like that. In C# you just keep adding extra lines which take up more vertical space, but if you sort your using a alphabetically (which your IDE can do), I think you get a very readable list. In sum, Rust adds a feature that I don’t really actually like.
I have so little Python experience I didn’t even mention it, but I remember enjoying that too.
Wow, now I have something to hold over all my Java dev friends. Thanks!
I think C# handles this pretty well. You include namespaces with whatever granularity you need, down to a single class (or interface or whatever) and can alias them.
using MyProject.Domian.Entities; //the whole module
using Routes = MyProject.Api.Contract.Routes.Http; //an aliased single class
I bet Java had this too, C# us still mostly Java: Microsoft Edition.
I hosted GitLab Community Edition on-prem as a trial for a very small team, but switched to a Microsoft offering. Part of it was it being demanding, part of it was not. The point is you can host CE yourself and get an experience that’s very similar to their service, “for free,” where “free” translates to your hardware requirements and responsibility. I’d even say it’s worth it to go with GitLab, in that context, for the familiarity you can provide your team. “You’ll have to learn gitonator9000” turns into “you’ve used GitLab, right?”
Personal use? You could run it in a container and periodically backup your data. Is it proportionally more demanding than other things? Probably.
A method in an interface (or a function in a trait or equivalent) should be unequivocal, as it’s literally a contract.
I think there’s nuance in the private scope, especially in variable names, but I’d still expect the name to be fairly explanatory. Maybe not EnsureUserCreated(UserDto userData), but still EnsureCreated(UserDto user).
Exactly. Imagine the board meeting where somebody has to suggest “maybe we don’t want that many more users.” I was about to type “customers,” but realistically a significant portion of this new load is on free plans.
Learning .NET is easy, the hard part is understanding the business. You can buy books or training for whatever language, but once the people who thought up the logic of the system leave, all you can do is archeology.