I disagree. This would have been true like 4-6 years ago when Minecraft was still in the spotlight of the mainstream. Kids today have moved onto other games like Roblox and Fortnite
Roblox has a very good Lua ecosystem. It's on the scale of an actual featureful game engine now, with free cloud hosting and microtransactions support and developer payouts that attract would-be gamedevs. It's been growing extremely rapidly with players, and makes it very easy for kids to open up the game editor and start slapping blocks around to try and switch from "consumer" to "producer".
I'm 21. I first learned programming through Roblox when I was like 15. I don't play anymore, and haven't for years, but I have a giant friend group that also got introduced to programming through Roblox. A lot of them have gone on to work there now, and they've been making it better and better over the years.
Minecraft is giant, and there are tons of mods for it, but also the barrier to entry for making those mods is extremely high. You have to open a command line, decompile a jar and deobfuscate the bytecode and then use Java, which historically isn't the best first language to pick up for a kid. More kids have probably been introduced to coding through ComputerCraft than have gotten a mod building correctly.
I did both and it was certainly pretty easy to open up the Minecraft jar and change what mobs spawn in which biomes or how far a ghast fires its fire balls.
They're more than just mods. Pretty much _every_ game in Roblox is built with LUA scripts. I'd go as far as to say that Roblox is more a game engine than it is a game.
Transpilation to JS always sucks. JS was not designed as a compiler target. The point of WASM is exactly that: Compile any language on the web without getting into the JS limitation.
Performance. WebAssembly has no JIT stage, it gets AOT compiled straight to machine code. Plus, it gives (or will give) much lower-level access to features like threads and memory allocation.
Thanks to Spectre I don't think we'll be seeing threads anytime soon. Well, not threads with shared memory anyway which removes a lot of the point of them. Same reason JavaScript just lost SharedArrayBuffer, too easy to make a high precision timer out of it.
You're describing asm.js which had significant issues as a compilation target. The generated javascript code was massive and it took several seconds just to parse it.
Right now, some of the biggest users are applications where JavaScript's garbage collection pauses are show-stoppers, like games and audio recording software.
People enjoy concerts for different reasons and in different ways. I don’t see why we should deny them the freedom just because you appreciate events different.
The thing is, when you create a sea of people looking at the concert through their phones, you have already ruined the concert for the people who want to live in the moment and just experience the concert as is. The phone ban is created exactly for that reason: so that people can enjoy the concert without having other people decide for you that the concert is much better enjoyed when 20 phones are blocking your view.
It’s still not quite clear to me what new things WASM introduces to using different languages. Weren’t we already able to transpile any language to JS?
What WASM provides is an actual low-level bytecode for languages to target. Languages which transpile to javascript are forced to emit code which conforms to the particular limitations and peculiarities of javascript, which can be buggy and inefficient and brittle, whereas bytecode is more generic and only has to conform to a virtual or physical architecture. Bytecode is also faster, because it doesn't need to be interpreted.
No, because you are forced to map language semantics into JavaScript semantics, which is not possible for all features on the source language.
WebAssembly is supposed to eventually turn the browser into a general purpose VM, with all the necessary features to enable whatever compiler one might desire to implement.
You are assuming a compilation that results in high-level JavaScript code. As JavaScript is a Turing complete language, you can trivially compile any other programming language to target it, and we not only have done that a lot but even made it efficient using asm.js. All WASM is buying us is a more efficient encoding format that can be parsed more quickly than asm.js.
It's always been prevented in Dota 2. Buildings have backdoor protection, which makes them regenerate lost HP from recent attacks unless there are creeps nearby.