779 karma · joined March 24, 2015
Those libraries are not something will be able to be JS only anytime soon, and no, Java applets has never allowed us to use C/C++ libraries on the web before.
Once you can internalize that you could unlock the power of encapsulation.
Unsafe Rust is still improving on its ergonomics (handling uninitialized memory) but the current capacity should be enough to implement anything.
With just a google search away you can dismiss your claim of 90% but you don’t want to do it because you only believe what you want to believe.
So yeah, typical internet houlier than thou reactions, I wouldn’t read much into them.
Languages are invented to enforce standard and build higher level abstraction aka disable feature.
The advantage of type after name is that it keeps the traversing order consistently pre-order (node, left, right), instead of either:
- the notoriously ridiculous spiral cdecl: reading stuff right (output), node (func name) and left (input)
- create a new name to describe the function in pre-order: Func<Input, Output>
- & &mut doesn't make sense: and a variable of type & &mut can't mutate the underlying object, it's practically equivalent to a & &, even worse, since the inner is &mut, you can't have 2 & &mut that point to the same &mut (mut xor shared).
- &mut &: mutable reference that point to a shared reference, means you can change the outer to point to another shared reference, but you can't change content of the inner, for example:
let a: &str = "hello";
let b: &str = "world";
let mut c = &a;
let d = &mut c;
*d = &b;
// (*d).make_ascii_lowercase(); // not allowed
- &mut &mut: similar to the above, but you can also change the content of the inner.I didn’t say python has anything to do with LLVM, it’s just a technique, read about it, or not.
Such a good and detailed article that packed with techniques that are applicable everywhere yet the complaints are: “but rust”.
Regarding Python, how could such optimizations be implemented in Python? Generating LLVM bytecodes directly aside.
Any language with type after name :
// c
char (*(*x[3])())[5];
// golang
var x [3]func() *[5]byteIn Japanese TV, you can even see that for influencers (idols, singers, comedians) being bad in English is considered a cute "feature", this is uniquely apply to Japan.
It's Ocaml
window.addEventListener('counterChange', () => {
element.innerHTML = 20components.map(|c| c.renderHTML(newCounterValue)).join('');
});
or, you have to check the components on case by case basis on a. if the component need to be updated or not, and b. how is the most efficient way to update such component. And in TFA, if counter is changed from odd to odd, the label doesn't need to be updated.Also, multiply the number of events to the number of components can make the application go out of hand very quickly.
And that's fine, these tools don't solve what you search for.
A dozens of controls multiply with a dozens of events are already a quite big amount of points of failure, so people gladly trade it with the dependencies (what's the issues with dependencies anyway?).
So yeah, not many people want to be good, and only hire good people like you to use the hand tools and "just do it correctly". Most acknowledge their downsides and use proper tools to aide them.