From e0188a0341712a9d118d2863a273dffc32e09ecc Mon Sep 17 00:00:00 2001 From: IgorOffline <73474119+IgorOffline@users.noreply.github.com> Date: Tue, 25 Jun 2024 04:23:52 +0200 Subject: [PATCH] Update AUDIENCE.md --- AUDIENCE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AUDIENCE.md b/AUDIENCE.md index e72f205..d0f98c4 100644 --- a/AUDIENCE.md +++ b/AUDIENCE.md @@ -5,7 +5,7 @@ This doc gives an overview, of what kind of developer WasmByExample is written f This doc dives deep into who our audience is, and why it could be perceived that way. However, The **TL;DR** of this doc is: 1. WebAssembly is probably going to be a learning step for intermediate-level developers. -1. Developers coming from different ecosystems will have have different assumptions: +1. Developers coming from different ecosystems will have different assumptions: 1. AssemblyScript users are probably strong with JavaScript. Focus more on AssemblyScript syntax, AssemblyScript features, and communication between JavaScript and WebAssembly. 1. Rust users are probably knowledgeable in Rust, or are JavaScript developers learning Rust for the first time. Direct JavaScript users towards general Rust resources like the Rust book to learn Rust. Other than that, focus on the tooling around Rust/Wasm like [wasm-pack](https://github.com/rustwasm/wasm-pack), and [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen). Also, be sure to explain what Rust is generating for JavaScript and why, as they may not be familiar with modern web development. 1. C / C++ users are probably very knowledgeable in C / C++, but may not be comfortable with emscripten. Focus on explaining what configuration options and flags are doing, and why they are needed. @@ -26,11 +26,11 @@ Let's say you are from a web background. Traditionally you would learn (In this In my opinion, WebAssembly would be the next step, step 4. In which, WebAssembly adds "compuationally intensive tasks to be completed per an interaction with a layout". Therefore, I think we can somewhat assume, **a frontend web developer will have their fundamentals down, and probably have a react app or two under their belt before coming to the docs**. And with this assumption for the case of AssemblyScript, they should at least have heard of TypeScript, and understand it is JavaScript with types. Which according to [The State of JS, 2019](https://2019.stateofjs.com/javascript-flavors/typescript/) is a very safe assumption to make. -### Systems Language Backround Developers +### Systems Language Background Developers So if you are developer learning / are already know a systems level language, I think WebAssembly is "another compile target" for your code. -In order to learn something like Rust, you probably compiled your hello world or whatever it may be, to your host machine, before trying to make it work outright with WebAssembly. Rust does present an interesting case, as "a lot" of non-systems language programmers are learning rust to compile directly to WebAssembly to learn Wasm. And I think this is something we should defiintely clarify. Especially because Rust already has a big learing curve, and I think Wasm will only make it (slightly) steeper. Therefore, **for Rust, let's clarify to the audience we expect them to already be familiar with some concepts, and have read through some of the book and have made some Hello World and other beginner programs before trying to jump straight into WebAssembly."** +In order to learn something like Rust, you probably compiled your hello world or whatever it may be, to your host machine, before trying to make it work outright with WebAssembly. Rust does present an interesting case, as "a lot" of non-systems language programmers are learning rust to compile directly to WebAssembly to learn Wasm. And I think this is something we should definitely clarify. Especially because Rust already has a big learing curve, and I think Wasm will only make it (slightly) steeper. Therefore, **for Rust, let's clarify to the audience we expect them to already be familiar with some concepts, and have read through some of the book and have made some Hello World and other beginner programs before trying to jump straight into WebAssembly."** I'd still argue for the case of something like Emscripten or C, the developer most likely did not learn C, but is already comfortable with C, and is reaching for Emscripten, or any other toolchain, to compile for the web. Which currently seems to be the story companies are pushing anyways. Therefore, **For C, let's assume the user knows C already decently well, but it may be their first time playing with Emscripten. Thus, we just need to be clear on what flag does what more than actually explaining what a buffer is and things."**