Earlier quoted context omitted.
> side note: sad that .NET and C# are not considered "major I've said it before on here, but the tech community severely underrates .NET today. It's not Windows only (and hasn't been for ~8 years) plus C# is a very nice language. F# is also an option for people who like functional languages. I'd highly recommend giving it a try if you haven't already.
.NET suffers from the long lasting reputational taint of Microsoft. It was seen as the sworn enemy of open source and Linux, and for good reason. Today’s MS is not what it was back then. But long memories are not a bad thing, really. If .NET suffers a bit from some unfair perception, perhaps that can remind MS and others what happens when you take an aggressively adversarial approach.
HTTP/3 is everywhere but nowhere
371–380 of 504 posts
Re: HTTP/3 is everywhere but nowhere
#372Earlier quoted context omitted.
More than just that it came from MS. For a long time, .NET was completely proprietary, and only ran on Windows. Now it is open source and cross platform, but it is still fighting the momentum of being seen as Windows-only.
Can you name some examples of popular .Net applications on GNU/Linux or *BSD operating systems?
These are user-facing applications anyway, not back-end ones which is the more common use-case of .NET (where Linux is the most popular OS).
Re: HTTP/3 is everywhere but nowhere
#373Earlier quoted context omitted.
Where would you store the other 96 bits. In the body?
Ipv6 packet format was needed either way, but only with the 32-bit address space at first (the other 92 bits set to 0). You simply tell your system to start using v6 instead, and everything else stays the same. No dual-stack. Next step would be upgrading all those parts like DNS, DHCP, etc to accept the 128-bit addrs, which again can be done in isolation. Then finally, ISPs or home routers can start handing out longe…
If it means upgrading every program, then your plan works but it's the same as how things work today. You're telling people to do a thing, and they aren't bothering. The "simple" step isn't simple at all.
If it doesn't mean upgrading every program, then your rollout fails on the last step. You start handing out longer addresses and legacy programs can't access them.
Re: HTTP/3 is everywhere but nowhere
#374Earlier quoted context omitted.
Major reason for that is BSD Sockets and their leaky abstraction that results in hardcoding protocol details in application code. For a good decade a lot of software had to be slowly patched in every place that made a socket to add v6 support, and sometimes multiple times because getaddrinfo didn't reach everyone early enough.
> results in hardcoding protocol details in application code Are you suggesting that this could have been implemented a different way? Example: IP could be negotiated to upgrade from v4 to v6? I am curious about your ideas.
Of course, code that operates on packets, in the TCP/IP stack of the OS would have still needed to be rewritten. But that is far less code than "every application that opens a socket".
Of course, this only applies to code that uses IPs only to open connections. There's lots of application code that does more things with IPs, such as parsing, displaying, validating etc. All of this code would still need to be rewritten to accept IPv6 addresses (and its much more complex string representations), that part is inevitable.
Re: HTTP/3 is everywhere but nowhere
#375Earlier quoted context omitted.
.NET suffers from the long lasting reputational taint of Microsoft. It was seen as the sworn enemy of open source and Linux, and for good reason. Today’s MS is not what it was back then. But long memories are not a bad thing, really. If .NET suffers a bit from some unfair perception, perhaps that can remind MS and others what happens when you take an aggressively adversarial approach.
More than just that it came from MS. For a long time, .NET was completely proprietary, and only ran on Windows. Now it is open source and cross platform, but it is still fighting the momentum of being seen as Windows-only.
Re: HTTP/3 is everywhere but nowhere
#376Earlier quoted context omitted.
It's not about different teams, it's that System.Windows.Forms is exactly what the namespace says. It's Windows Forms. It's a fairly thin wrapper over the Windows API. It's never going to be adapted to be cross-platform and isn't really something they've put any development work into for many years at this point. If you want a cross platform UI, use WPF with Avalonia. Or if you want something entirely from Microsoft…
JS is the only true cross-platform UI; sadly.
Re: HTTP/3 is everywhere but nowhere
#377Earlier quoted context omitted.
Can .net produce cross platform libraries/executables like Go does? With Go I can develop on Mac and create executables for windows and Linux
Mono's been on Linux for like 20 years, maybe longer... C# is like Java, can run basically anywhere.
Re: HTTP/3 is everywhere but nowhere
#378Earlier quoted context omitted.
> It removes tons of overhead and cruft Can you elaborate? Here, or with links? What kinds of overhead and cruft?
* The header is a fixed length. * You can't fragment packets. * The redundant checksum header was removed. * No more private addressing (unless you're a glutton for punishment). * No more NAT (see above). * Simpler routing. * Doesn't require DHCP. It benefits hugely from the lessons learned with IPv4.
Private addressing is still needed with IPv6, it's a crucial part of how address allocation works, and it's the only way to reliably connect to a client-like IPv6 device on the local network, since its public IP address will change all the time for privacy reasons, assuming it respects best practices.
Routing is only simpler if the ISPs actually hand out the large prefixes they are supposed to. Not all of them do.
DHCP is still required for many use cases. So now you have two solutions for handing out addresses, and you need to figure out when to use SLAAC and when to use DHCP. This is strictly more complex than IPv4, not simpler. SLAAC is mostly just unnecessary cruft, a cute little simple path for limited use cases, but it can never replace DHCPv6 for all use cases (e.g. for subnets smaller than a /64, for communicating additional information like a local DNS server or NTP server, for complex network topologies, for server machines etc).
Re: HTTP/3 is everywhere but nowhere
#379Earlier quoted context omitted.
I'm not an expert on HTTP/3, but vehemently disagree about IPv6. It removes tons of overhead and cruft, making it delightful for datacenter work. That, and basically guaranteeing you don't have to deal with the company you just acquired having deployed their accounts with the same 10/16 subnet your own company uses.
>That, and basically guaranteeing you don't have to deal with the company you just acquired having deployed their accounts with the same 10/16 subnet your own company uses. I always found that to be a desperate talking point. 'Prepare your network for the incredibly rare event where you intend to integrate directly' (didn't anyone hear of network segmentation?). It makes a lot more sense to worry about the ISP unilat…
ISPs unilaterally change your DHCP address on IPv4 all the time. And in any situation where you would have a static address for IPv4, your ISP should have no problem giving you a static v6 prefix. This argument makes no sense at all.
Re: HTTP/3 is everywhere but nowhere
#380Earlier quoted context omitted.
Mono's been on Linux for like 20 years, maybe longer... C# is like Java, can run basically anywhere.
I think being on linux and being decent on linux are not the same, and there's .net problem.