5 ms·
Something i like about rust is it shepards you to fast running programs and away from null pointer errors. something i like about go is it shepards you to writ
by gameswithgo 7y ago
Something i like about rust is it shepards you to fast running programs and away from null pointer errors.
something i like about go is it shepards you to write code any other go programmer can follow easily
something i dislike about c# is it has the tools to let you write very very fast code but shepards you to use non devirtualized interfaces over heap allocated classes tied together with linq overhead.
- elamje 7y agoI spend a fair amount of time in C# and don’t think about performance a lot unless it’s obvious, O(N^2) type of stuff. I’m always trying to level up so I would appreciate some tips. What tooling are you referring to that will make C# really fast? Also, what are you referring to with non-devirtualized interfaces vs heap classes with LINQ?
- DeathArrow 7y agoHe talks mainly about stack vs heap allocation. Stackalloc, pointers and such.
- will_pseudonym 7y agoWhat's the best way to get started becoming a C# developer? What kinds of C# programmers are there? I know fullstack web stuff and some Python, but no idea where to start with more proper languages.
- jiggawatts 7y agoThere's a crazy amount of high quality guidance out there, a mere Google away. It's a popular language! Step one: Visual Studio Community Edition is free. Go install it. Don't waste time with Visual Studio Code, it's a toy compared to the proper VS. When I learn a language, I like to start with the basic primitives: functions, loops, variables, etc... Then, explore the types and the standard library. Note that the .NET Framework has a fantastically huge base library, way bigger than other languages with the exception of Java. It's already a bit of a task just to flip through the list of available classes let alone functions! Do programming challenges like Advent of Code. Start poking away at Real Problems. Go from there...
- softfalcon 7y agoC# does these things out of the box: - Desktop application development (Windows and macOS) - Web Development (API's with .NET Core, traditional Rails-style stacks with ASP.Net) - Game development (Unity) If you want to get into C#, traditionally, these are the 3 things you can pick up and find lots of resources on. Keywords to search on: - Desktop Apps: WPF, XAML, Xamarin - Web Dev: ASP.Net, .NET Core, Blazor - Game Dev: Unity Game Engine Good luck and happy learning/hunting!
- DeathArrow 7y agoTo allocate things on stack you have to either use only value types or use unsafe code. Which is fine for small performance critical sections but will introduce bugs and hinder productivity much if used for large code bases.
- pjmlp 7y agoYou no longer need unsafe to stack allocate if using one of the Span types.
- pjmlp 7y agoThat is the beauty of languages like C#, productivity and security first, provide the tools to go down the performance well if actually needed.
- capableweb 7y ago> something i like about go is it shepards you to write code any other go programmer can follow easily Sure, the syntax and indentation levels are all the same, but that's not really the difficult parts of programming. The difficulty comes from abstractions, indirections and other abstract things that Go, just as any language, let's you do however you want. There are of course codebases made in Go where the indirections makes no sense and are hard to follow, just as in any language. What Go shepards you into is to make really verbose code (well, compared to most languages except Java I guess), where everything is explicit, unless hidden by indirection. This is both a blessing and a curse.
- tmountain 7y agoGo limits the number of available abstractions--yes at the cost of verbosity--but compared to a language like C++, it's minuscule in its size. The end result is that you can keep the entire language in your head, and you don't have to go digging into the bowels of the internet to figure out how "turing complete template metaprogramming" works since the last developer decide to use that cool feature they just discovered.
- capableweb 7y ago> Go limits the number of available abstractions Again, it doesn't, as abstractions are not built from syntax of the language but from the indirections developers create with the syntax provided. I agree that the abstractions the standard library provides are smaller than in other languages, but outside of that, anyone can create their own abstractions (as it should be).
- wtetzner 7y agoI would say Go doesn't limit the number of abstractions, it limits the number of ways in which abstractions can be created. Or maybe better put, it doesn't provide a very rich set of abstraction facilities.
- tomlu 7y agoAnecdotally I always find Go code bases very easy to read compared to almost any other language. Is it not reasonable to assume this is because of "shepherding"? Otherwise other effect would cause this? Perhaps my sample is unrepresentative, or perhaps Go programmers are somehow more competent?