C# has this same model:
https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...
HN user
Microsoft employee on the .NET team.
@richlander on GitHub
C# has this same model:
https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...
This is a good example[1] at 64k LOC removal. We removed built-in support for C# + WinRT interop on Windows and instead required users to use a source-generation tool (which is still the case today). This was a breaking change. We realized we had one chance to do this and took it.
This excellent presentation (Veritasium) is making much the same point (learning comes from “reps”).
I quite enjoyed both series. They are not similar (as you implicitly suggest).
Wayfarer bugged me at first because each book is a massive departure from the next (somewhat like Ender 1 and 2). As much as it pained me to leave the characters of the first book, the following books were more meaningful and stayed with me much longer.
I also wish Chambers wrote more. Amazing author.
This is all true. The only part that is potentially misleading is that the target doesn't need to be a blog. A blog is a fine target, however. The key activity is spending time to articulate a message with enough clarity that another person will understand what you meant and that they will conclude there is some value in it. There are lots of avenues for this.
It's not limited to this, but in the workplace I think of this as "write it down culture". People who write things down often have the most tested and credible ideas, with the first and most important judge being themselves.
Here is a post I wrote a while back that includes charlieplexing.
https://devblogs.microsoft.com/dotnet/blinking-leds-with-ras...
Dive is great. Tools like that are critical for both learning and developing confidence on what you are precisely building/shipping.
Dredge is another tool to look at. I use it for diffing layers.
https://github.com/mthalman/dredge/blob/main/docs/commands/i...
Would love to follow up with you to learn more about your deployment. Info in profile.
Would love to heard more about that! That sounds like a great win. Contact info is in my profile.
The bulleted list in the design point section is intended as a high-level summary. We may do another post later that is part-way between the bulleted list and the post as a whole. Perhaps that would be the last post in the series.
Post author here -- There are lots of resources for teams within Microsoft. Please reach out and we can help you speed up that process. Contact info in my profile.
We work super closely with teams and often post about their fine work and even finer results on our blog.
https://devblogs.microsoft.com/dotnet/category/developer-sto...
Do you have an example of that? That is really interesting.
Anyone notice the part of the announcement about Chiseled Ubuntu Containers?
We started with Red Hat. They were our .NET Core 1.0 launch partner (and remain a very close partner). You can run Red Hat on-prem or in the cloud (obviously).
We maintain container images for both Linux and Windows. I can tell you that they both get a LOT of use (>10M pulls/month). .NET is very much a cross-platform app stack. Also, we get plenty of bug reports on Linux (which we diligently fix). The days of .NET being Windows-only (and closed source) are long over.
Folks are working on FreeBSD support: https://github.com/dotnet/runtime/pull/71486
Fedora and Red Hat have offered .NET packages for years. We've worked very closely with those folks and they've taught us a lot about how to work collaboratively with distro maintainers. We meet with them weekly. Notice that Fedora is mentioned in the blog post and here: https://docs.microsoft.com/dotnet/core/install/linux#officia....
Also notice that our default build instructions are for Fedora: https://github.com/dotnet/installer#building.
I'm the post author.
Big fan of this book. It's incredibly forward-thinking and can be read in an evening. Absolutely recommended if you have not read it.
I've read that one. It's good, but not nearly as good as her other writing. I'm always torn by whether I like the earthsea or Hainish series better. She also has many wondering short stories, some of which borrow from her longer works.
I provided an answer in the blog post post comments. We see it most big corps and government. We also see Linux in those same places. If there are big Windows Server apps (typically .NET Framework) that people want to host in the cloud, then they often choose Windows Containers as the lowest friction solution, at least for step one. I work closely with the Windows Container team, and this is what I see from their customer engagements. Inside Microsoft, it is the same. Many big services at Microsoft have hard dependencies on Windows (both .NET Framework and Win32), and at the same time, many have also embraced Linux.
Good and fair call. I softened the wording on digest comparisons. I sympathize with your pet peeve and like your apt example.
I wrote the article (although you probably figured that out).
Oh, and thanks for caring so much about reproducibility. We talk about this topic a fair bit in the .NET toolchain, and have enabled it over many years of investment. A lot of it comes down to timestamps or pathing (as you know).
That's the same thing as comment about float. Warren Buffett frequently talks about float. At Berkshire, they attempt to both sell premiums at a fair price AND win with float. Seems to have worked well for them.
.NET was built in the time of early Java, and so has many similar characteristics: virtual machine with a garbage collector, executes compiled processor- and OS-independent binaries, supports multiple languages, and a large class library. A lot of these early bets were good. .NET has been used in almost all the relevant computing devices today, to greater or lesser degrees of success (not all from Microsoft).
More recently, .NET has been focused on cloud native space and high-performance web applications. It has been open source and cross platform for about 5 years now.
Here's an example of work we've done for containers: https://devblogs.microsoft.com/dotnet/using-net-and-docker-t...
Here are two good blog posts to demonstrate what we've been up to performance-wise:
https://devblogs.microsoft.com/dotnet/performance-improvemen...
https://devblogs.microsoft.com/dotnet/arm64-performance-in-n...
Here is a more recent update on records with the new syntax.
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-rc-...
.NET Team member here. We don't look at these specific benchmarks. Our belief is that they are wild west w/limited moderation of what is reasonable/real-world and not. Not necessarily a reasonable comparison, but we focus on TechEmpower[1]. You can check out the latest .NET performance improvements in our latest blog post on the topic [2].
[1] https://www.techempower.com/benchmarks/
[2] https://devblogs.microsoft.com/dotnet/performance-improvemen...
Lots of Linux images available @ https://hub.docker.com/_/microsoft-dotnet-core-aspnet/
The Microsoft client was probably moved to an all C# solution, which skips over this problem.
Here is the post you are looking for, I think ... https://devblogs.microsoft.com/dotnet/net-core-is-the-future...
It is both things ... basically .NET Core 5 (as you say) but also making it so that .NET Core can support all modern .NET scenarios.