I’m eyeing Wasm as my Nibbly November language. It looks very simple, and light on concepts. So I wonder: how feasible is building & launching a syllabus for the Wasm track, in time for Nibbly November?
I haven’t experienced the creation of a syllabus from start to finish, so I don’t really know.
What I’ll say is that Wasm obviously has much fewer concepts and a simpler syntax than any high-level language. The text format is well designed. So I assume it takes much less time to create a syllabus for Wasm than for the average high-level language.
This is what goes into creating a syllabus:
- Identifying key concepts
- Selecting / creating exercises about these concepts
- Writing the
introduction.mddocumentation for each concept
Identification could be quite easy, for Wasm.
Concept exercises need not be a lot of work if they can be forked from other tracks. Designing new exercises (likely needed for the assembly tracks) is a lot more work.
Writing can also be quite a bit of work.
Right now, I
- might not yet be able to help with identifying key concepts, but this is likely to change soon,
- can not yet help with selecting / designing exercises,
- can help with proofreading at the very least, and probably more in the near future.
Well, it really depends, like you could create a syllabus in 2 weeks, but that sorta means you would be working full time, or are you multiple people? then it can go faster. Or do you borrow a lot of exercises from other tracks or are you writing unique ones?
Usually, you have to spend some time planning, and sometimes this can be easy and sometimes hard. Like when I planned the Crystal tree, I looked quite a bit at the Ruby track and added the things I liked and didn’t like. But I would say a proper planning phase takes at least a week (dependent on how much time is spent).
And then if you just work on your free time with the syllabus, I think doing one concept + exercise per week is plausible, so 10 concepts, 10 weeks. But it also depends on which state you want to ship the syllabus. One approach is to do some reviewing, but not super deep, and then just merge it and let users find issues and report them. But that can have problems in itself.
But looking at the recent launched syllabus, so was the C++ syllabus launched in early July with I think 10 concepts, and I think the planning phase started in February. Crystal syllabus launched in late July with 10 concepts and also started its planning phase in February. The Gleam track also launched its syllabus in late July and I am not exactly sure when development started and how many concepts it launched with (I am guessing 15), and I think development started late February - March.
So, in conclusion, it really does varies, behind what kind of setup you have and how quickly you can get working, but too hasty work can as I mentioned lead to low quality. So to get it ready before November so does development more or less have to start quite soon, thinking other tracks it has taken like 4 or so months.
Glad to hear you’re interested in WebAssembly for your Nibbly November language!
With regards to the feasibility of launching a syllabus by November, I suspect it’s not feasible unless someone steps up now to work quasi full-time on this. There are fewer concepts in WebAssembly , but I would expect them to focus on the “Nibbly Bits” like other Assembly languages (direct manipulation of address space without a heap allocator, bit fiddling, character encoding, how to layout strings and structs manually, pointers). Check out the table of contents from “The Art of WebAssembly” for some ideas. Concepts from other tracks are likely at a higher level of abstraction that assumes presence of some kind of standard library, and the assembly languages all lack syllabi.
Sorry if I sound dismissive! Getting the track launched was quite a slog back when I worked at a research university, and now that I’m working for a demanding employer, I don’t really have time for any extracurriculars, so my open-source contributions have plummeted to zero. I had hoped that I’d be working professionally with WebAssembly, so that my employer would be supportive of contributions to this track, but that’s not how things worked out for me. I’ve only been able to contribute about half a day to track maintainership since March 2022.
I certainly do think that smaller and less formal efforts could be wrapped up by November. I.e. recording a “Low Level Primer” YouTube video that closes some of the conceptual gaps that a recent JS / webdev coding bootcamp grad might not be familiar with.