1. It makes sense that any language with GC-less memory management will be easier to port to WASM, because in WASM all we have is a linear array of bytes as memory.
2. But then higher languages like Kotlin have a LLVM backend, and then derive WASM binaries from LLVM IR. What makes this possible?
3. Even dynamically typed languages like Python are ported to WASM (I guess they ship the interpreter itself with the binary which will make them heavier) but I'm not sure how is it different from #2 or am I confusing two different routes?
4. What does this even mean - https://github.com/WebAssembly/gc/#gc-proposal-for-webassembly ? "GC proposal for webassembly" - how will it aid in WASM becoming friendlier with higher level languages?
5. What exactly is ahead of time compilation? What relation does it have with WASM?
All this means I have a very shallow understanding of memory management. So feel free to get as technical as possible. Thank you!
When it comes to programming, which developers do you closely follow?
Please include blog/website/github links.
A couple of my favourites:
[TJ Holowaychuk](https://github.com/tj) - because he's a wizard. The number of premium open source projects he's been a part of, is just astounding.
[Dan Abramov](https://github.com/gaearon) - First hit on his redux talk, then drifted to his blog posts. I like his clarity of expressing the why's and how's.
I’ve read a lot about the importance of tests. You can assume I have a very abstract idea of topics like TDD, testable code, design for testability & the importance of tests in an evolving codebase.
But, I’m still very much deprived of motivations to actually spend time, writing tests.
#1. A lot of it is just procrastination, because I’ve never written any useful tests before & it feels like I need to know a lot more, for writing any useful tests.
#2. When I hold myself & sit down for writing tests, this is my thought sequence.
”The fake data that I’m going to pass as input for this function, is a static, dead, useless, hardcoded json.”
“For any useful feedback from the tests, I need to be feeding in fake data, that vary wildly and also it should look closely like real world, live, production data.”
“And I have to test the same function multiple times, with multiple types of fake data (dirty testing and such)”
“And the module I’m gonna write tests for has like, 148 functions!”
“And I have to mock this long list of interfaces & external calls”
“Jeez, that’s a lot of work!”
“Continue with #1”
I’m convinced that I have to change my perspective entirely, to overcome the procrastination.
Developers who’ve made the transition: How did you make it? What tricks can get me change my perspective? Advice please.