4 ms·
Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page (https://app.codecrafters.io
by sarupbanskota 4y ago
Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page (https://app.codecrafters.io/tracks https://app.codecrafters.io/tracks) to see the courses available against each language.
As a 2-person team, we're prioritising making a complete experience for Go, Python & JS for starters (our most popular languages).
So far, our tests are language agnostic. Our testers are written in Go (they’re open source, example: https://github.com/codecrafters-io/redis-tester https://github.com/codecrafters-io/redis-tester). The testers interact with user code by testing for observable behaviour - exit codes, stdout/stderr, files written etc.
Although the testers are language-agnostic, a lot of the educational “content” is language-specific. We emit language-specific hints in stages where appropriate, and have expert solutions that are language-specific. A lot of this is new, so we might not have coverage across all challenges - this will improve over time.
Does that help explain our setup a little better?
- sn9 4y agoLooking at your tracks page, is there a part of your site that explains what the differences are between Beta and non-Beta Tracks as well as what the stage counts signify? Or maybe just something in the FAQ that explains what your concept of a "stage" is in detail would be useful. For example, why is Rust in Beta while Go isn't despite having the same number of stages? I'm assuming the determination is made based on something else, but do you go into what that is? Rust is probably the language I'm most interested in using your site to learn and it currently has as many stages completed as Go (according to your tracks page), but you didn't mention it in your list of priority languages. Are stages user-contributed? Is that why Rust has more stages than Python or JS? Is there anything that would stop a user from using any language without major impediments or hurdles? Sorry for all the questions. I've just been really excited about seeing this platform develop!
- sarupbanskota 4y agoGreat questions. If you see that a language track has a particular course available (e.g Docker on Rust track), it means it's good to go. There are no hurdles to going through the stages. When a track is marked as beta, it typically means that the solutions & explanations for some stages on that language are coming soon — or that it doesn't have all the 4 courses supported in that language yet. You might also enjoy checking out our OSS repo where any one can contribute language support. We prioritise supporting different languages based on user demand, but if you want to get your hands on a particular language right away, we accept PRs from the community. https://github.com/codecrafters-io/languages https://github.com/codecrafters-io/languages
- sn9 4y agoThank you! This was very helpful!