3 ms·
It's so appalling that a paid content could be that bad. For me the first benchmark that was doing nothing in both cases is as shocking as the second. But the
by buybackoff 3y ago
It's so appalling that a paid content could be that bad. For me the first benchmark that was doing nothing in both cases is as shocking as the second.
But the thing I wanted to highlight is that the blog author is a real authority on structs vs classes at a very very low level. His series on structs performance are must read for any .NET dev who cares about performance at low level. E.g. when to use readonly structs or when to use a mutable one to avoid excessive copying. That kind of things. https://devblogs.microsoft.com/premier-developer/author/seteplia/ https://devblogs.microsoft.com/premier-developer/author/sete...
He has published two analyzers on NuGet and both are must have. One is focused on the struct usage ErrorProne.NET.Structs and, for example, highlights cases of defensive copies and could suggest when to make a struct readonly.
https://devblogs.microsoft.com/premier-developer/avoiding-struct-and-readonly-reference-performance-pitfalls-with-errorprone-net/ https://devblogs.microsoft.com/premier-developer/avoiding-st...
https://www.nuget.org/packages?q=errorprone https://www.nuget.org/packages?q=errorprone
- mike_hock 3y agoCan we just go ahead and call this straight up fraud? If you advertise a paid course on C# and don't have the first clue about the language, that can't be assumed to be in good faith.
- buybackoff 3y agoAnother course on another platform that overpromises and underdelivers - it is just noise. I did not want to discuss this subject beyond expressing some surprise. Fraud is a too loaded word, but this fits perfectly here: https://en.wikipedia.org/wiki/Hanlon%27s_razor https://en.wikipedia.org/wiki/Hanlon%27s_razor Benchmarking is hard. If not an art then at least a distinct skill. It goes beyond just using Bnechmark.Net. It's a good first step but far from enough. Oftentimes one need to make sure a compiler does not optimize away some benchmark paths, e.g. by using volatile field accesses. Especially if you want to avoid overheads and measure only certain things. But here it was so obvious it could be meme-tagged #YouHadOneJob.
- ShamelessC 3y ago> #YouHadOneJob Author has made a career out of providing teaching materials, but hasn't worked to solve actual problems (e.g. in industry) for so long that their skills have degraded. One possible explanation.
- mike_hock 3y ago> Hanlon's razor Just because you put a name on a plain wrong idea doesn't make it true. > Benchmarking is hard. There were no benchmarks since the author didn't even understand how to write simple C#. A subtly flawed benchmark would be a whole different story.
- ecshafer 3y agoI wish paid programming content was on average better. My assumption for paid content (outside of a university course) is that it will be awful. Paid programming content has consistently fell short of my expectations. Coursera is much better than average here imo, with courses like Functional Programming in Scala by Odersky and Andrew Ng's AI course. Pluralsight, Udemy, Udacity, all of them I have found to really be lacking.
- buybackoff 3y agoYouTube and InfoQ are free and have lots of great content. .NET is probably lacking good content. Yet many things from Java are directly applicable. E.g. on benchmarking & performance, there are true gems on InfoQ by Gil Tene, Martin Thompson, et al. I would pay for that content after watching it. A problem with paid courses is that payment goes first before evaluation. Maybe both sides do not care in cases such as corporate spend on continuous education...
- deleted 3y ago[deleted]