Pop quiz. You have to instruct a 12-month curriculum for a solo Gr10 learner's 1st programming language. Required outcomes: knowledge of programming fundamentals in a broadly useful language. Desired outcome: A simple game with rudimentary graphics. What language would you select?
On a feature-level Go is a great choice, because you have basic types, straightforward syntax, widely used, very thorough standard library. But it also has some dumb parts, like the compiler not liking unused variables and imports.
Thanks for this! Go was high on my list for all the reasons you mention, but I hadn't had the chance to look at available game engines yet. Ebitengine looks perfect!
I don't mind a bit of pedanticism in a 1st language, as long as the things it's pedantic about are easy to fix (cf. Rust below) 1/
I did consider Rust, since the student has seen some pretty impressive examples of games developed using Bevy. But I think the syntax is a bit trickier, and the borrow checker certainly makes the "make it work make it right make it good" cycle harder for a beginner, even frustrating. 2/
I briefly toyed with the idea of OCaml (+Godot) as a "broad church" language where one could introduce imperative, functional and OO concepts in a single language, but that slim advantage doesn't outweigh that OCaml isn't a 1st (or even 2nd) choice for imperative or OO programming. Also, dune. 3/
Comments
On a feature-level Go is a great choice, because you have basic types, straightforward syntax, widely used, very thorough standard library. But it also has some dumb parts, like the compiler not liking unused variables and imports.
And then you can try https://ebitengine.org/
I don't mind a bit of pedanticism in a 1st language, as long as the things it's pedantic about are easy to fix (cf. Rust below) 1/
https://docs.google.com/document/u/0/d/1dpKjHGzzmpGe2-34x6fb3fhtEBW25OCwL9UvVEOwrPc/mobilebasic