adimitrov
Joined 16 years ago
Joined 16 years ago
BTW, it's off-topic, but this right here is the among best arguments we can make for strong privacy, and against mass surveillance. If people are willing to swallow monetary damage out of fear to upset an algorithm that may cut back their privileges, imagine what happens to political free speech when you have to fear govt surveillance and black vans.
- Applets tried to render their own GUI, Wasm doesn't and defers to the browser.
- applets needed a big, slow to start and resource hungry VM. Wasm is running in the same thread your JS is also running in, it's light, and loads faster than JS
- Java and flash were plugins, which needed to be installed and kept up to date separately. Wasm is baked into your browser's JS engine
- Wasm code is very fast and can achieve near native execution speeds. It can make use of advanced optimisations. SIMD has shipped in Chrome, and will soon in Firefox
- The wasm spec is very, very good, and really quite small. This means that implementing it is comparatively cheap, and this should make it easy to see it implemented by different vendors.
- Java was just Java. Wasm can serve as a platform for any language. See my earlier point about the spec
So it's apples and oranges. The need to have something besides JS hasn't gone away, so their use cases might be similar. The two technologies couldn't be more distinct, though.
But it's very powerful, it's exactly right for these use cases and its ecosystem is mindbogglingly huge. Also, it tends to be easier to grasp for folks who don't have prior programming knowledge (anecdotal, but I've seen people pick it up very quickly who struggled a lot with, say, Python. And Python is the only language/ecosystem that comes close to R.)
So, yeah, a lot of languages could be used for the use cases in TFA, but R is uniquely suited, weaknesses notwithstanding.
Honestly, I've no idea how we can accept bad performance in Teams and Slack. I can grep hundreds of megabytes of text in seconds on a raspberry pi. You have to actively try to make your software shitty to not be able to do that on a modern desktop.
But I also didn't know about FutureSplash Animator. Thanks, learned something new.
Also, Flash gets a lot of flak, but it saved us from applets and ActiveX. It also enabled multi media content on a web that was not yet as standardised and functional as today's.
Acrobat reader on the other hand, is pure cancer, and has seen many security holes. PDF is useful, but there are far better PDF readers.
I hear this sentiment a lot, and its proponents usually don't spend any thought on disproving other views. Such as, maybe it's better to have everyone motivated well, instead of having a few people excessively motivated while the rest trudges along.
Maybe it depends on the field? Do you need superstars or are you only as fast as you slowest team mate?
And maybe, but I barely dare say it out loud here, maybe compensation has less to do with performance and more to do with who eats dinner/cracks a beer with whom. In this case, how would the motivation argument even hold?
I don't know which one is true. I wouldn't try to sound too convinced of any one of these unless I knew the situation of the business very well.
If there is suffering, and if we can, we ease the suffering. The US and EU have bought way more vaccine doses than they need.
It even makes sense from a utilitarian perspective, as we live in a global market economy.
Since when did people become so nationalistic again? We're humans, first and foremost.
If it is indeed abuse related (whether there was any abuse or Google's algorithm just decided there was some abuse) then telling the abuser what got them banned is counterproductive from Google's PoV. Same reason reddit does vote fudging.
You can emulate Rust's approach with Java, by creating what is essentially a sum type like Result. You'd have to enforce that any access to its content must also handle the error case, and I don't really know how to do that generally. There are various hacks, like having a bespoke sum type for that particular operation that twrows a particular exception on access to its content. But that gets really old, really fast.
You can only do it with unchecked exceptions in Java. In Rust, you can transparently do it with iterators and the result type.
So given xs: [A] and f: A -> Result<A, E>, it is trivial to typesafely get Result<[A], E> by xs.map(f) where map: forall T. [T] -> (T -> S) -> [S]. This is outright impossible with Java. You have to circumvent the type system, or emulate Rust's approach.
But take what Fowler did, namely talking about refactoring, organizing and structuring your code - the broad strokes stuff. I think it's a lot more enjoyable and effective to listen to a talk (esp in person) for that, than it is to read about it.
Humans are social creatures, and I do enjoy the human aspect of learning from another human. Teaching is performative. I don't get that from a text as much as from a talk.
Of course, everyone's different, and that's why it's good it doesn't have to be either or.