All of these didn’t prevent Go from competing with Rust and I’m guessing that Fil-C will be the better choice in some cases.
Rust has managed to establish itself as a player, but it’s only the best choice for a limited amount of projects, like some (but not all) browser code or kernel code. Go, C++, C with Fil-C) have solid advantages of their own.
To name two:
* idiomatic code is easier to write in any of these languages compared to Rust, because one can shortcut thinking about ownership.
Rust idiomatic code requires it.
* less effort needed to protect from supply-chain attacks
To handle supply chain attacks, you need to know where yiur code comes from. That is often not a given when working with languages where it is easier to copy and paste in code from random other projects.
I have seen so must stuff copy and pasted into projects in my life, its not funny. Often it is undocumented where exactly the code comes from, which version it was taken from, how it was changed, and how to update it when something goes wrong.
When code is not copy and pasted it is over rewritten (poorly).
Code sharing does have its benefit. So does making it obvious which exact code is shared and how to update it. Yes, you can overdo code sharing, but just making code sharing hard on the tooling level does mote to hide supply chain security issues than it does to prevent the problem.
I doubt that ideomatic code is easier to write in C once you switch to Fil-C. Your code will just get killed by the runtime whenever it does something it should not do (and the compiler does not catch). You need to think about that stuff when your runtime enforces it.
Indeed, however Rust solves two problems in one language, the safety of managed languages, without having to use any form of automatic resource management, even if reference counting library types might be used, additionally.
As my comment history reveals I am more on the camp of having rewrites in Go (regardless of my opinion on its design), Java, C#, Haskell, OCaml, Lisp, Scheme,... Also following experiments of Cedar, Oberon, Singularity, Interlisp-D, StarLisp,....
However you will never convince someone anti-automatic resource management from ideological point of view.
Now would someone like that embrace Fil-C, with its sandboxing and GC? Maybe not, unless pushed from management kind of decision.
They would probably rewrite in Rust, Zig, Odin,... if those are appealing to them, or be faced with OS vendors pushing hardware with SPARC ADI, CHERI, ARM MTE,... enabled.
> However you will never convince someone anti-automatic resource management from ideological point of view.
It's generally accepted that 'explicit is better than implicit' and what you want in the end is deterministic, machine checked resource management. Automatic resource management is a subset of machine checked resource management. There is a large, somewhat less explored space of possibility (for example seL4 lives in this space) where you have to manually write the resource declarations and either the compiler or some other static analysis checks your work.
Except languages like Rust and C++, are full of implicit behaviour, so it is kind of interesting argument.
Even C has its implicit moments, with type conversions, signal handling, traps, setjmp/longjmp possibly hidden in libraries, thread handling across forks,
First you need to figure out if it’s a surface infestation because of condensation or if it’s a constructive thermal bridge. The latter can be solved by raising the surface (wall, ceiling, etc) temperature through insulation or more inefficiently special heaters designed for this purpose.
In both cases, the contaminated material is removed down to the plaster or masonry. Wood, wallpaper and similar materials will likely be deeply contaminated and must be removed. For areas larger than 1 sq meter, it’s better to get a specialized contractor which will use HEPA vacuum cleaners, special bags, etc to ensure that the mould spores don’t spread in other rooms.
For small areas the agents of choice are bleach or hydrogen peroxide, both available in products for home use.
The web and web apps as pushed by Google and others was another nail in the coffin of efficient software.
From Android to whatever web framework they’re peddling as development solutions, these are not designed for efficiency, but for time-to-market and consumption by front-end developers.
I worked on Windows programs similar to WinAmp, which had custom drawing, skins with custom shapes, etc. Usually written directly in WinAPI, VCL (C++ Builder, not Delphi) or a combination.
It was a matter of having access to the right (although limited) resources such as Petzold’s book, Codeproject and experimentation. There was no big rush, no start-up hustler mentality and most importantly hardware resources mattered a lot and it was a point of pride to create efficient software.
The development culture of present time is the opposite of that: developers are drowning in documentation, the default solution is technically inferior and the hustler mentality’s dominating.
A good rule of thumb for programming languages is to check what the general recommendation is on HN and do the opposite.
Using win32 from Rust is nonsensical. This is the kind of use-one-tool-for-any-job Visual Basic 6 programmers used to have, except VB6 would have actually been much better than Rust at Windows programming.
My reply was about Win32 and typical C++ development. Obviously other projects may be best written in C# or other languages and frameworks.
Anyway, Microsoft is the one providing the Rust crate(s) I linked, and according to the releases it seems they are using them internally too. I do not see what is "nonsensical" about using them, and I have used them in the past just fine, just like I used Win32 from C++ in the past.
That’s genuinely nice that it doesn’t have the multimedia crap. They do also have an “extreme” model with touchscreen and connected services.
At ~220km range it probably has about 100km in winter though. :-/
The UN has released a report on human rights abuses in China, but has not called these a genocide. The more credible accusations of genocide came from a handful of political bodies in Western countries, but crucially the acting governments have not defined it as such.
There’s absolutely no consensus that the legal definition is met, in contrast with another ongoing situation which enjoys wide recognition.
It feels that this is more a geopolitical cudgel, pulled out when the discourse against the US becomes negative. But given the events in the last years, this seems like a lost cause even in the West, never-mind the rest of the world.
Surely that's only because China has a permanent position on the security council and wouldn't allow such a report to be made. Israel does not sit on that council, and while the current admin is quite cozy with them, the Biden admin became fed up with Netanyahu and his treatment of Palestinians, culminating in the US ambassador to the UN abstaining from votes against Israel rather than voting to protect it.
But that's beside my point. It's too late to edit my post, so pretend I used the word "culling" instead of "genocide." How does one weigh a Uyghur culling against a South American regime change? What's the exchange rate?
Rust has managed to establish itself as a player, but it’s only the best choice for a limited amount of projects, like some (but not all) browser code or kernel code. Go, C++, C with Fil-C) have solid advantages of their own.
To name two:
* idiomatic code is easier to write in any of these languages compared to Rust, because one can shortcut thinking about ownership. Rust idiomatic code requires it.
* less effort needed to protect from supply-chain attacks
reply