Interestingly, these qualities all apply to Go:
- easier to read than write : it has been said a lot that go (esp. its error handling) was somewhat verbose, though very readable.
- Not tricking the programmer : this one is a bit subjective, go does use the equal sign as assign operator, but the required braces for if-else, gofmt tool and strict compiler help in not tricking you.
- one way to do things : go (its community) is very actively promoting the idiomatic way of doing things. Also consider, no while/do loops, only for.
- as much static typing as possible : maybe not as much as rust, but yeah, very static typing (array length is part of the type, for example)
- no warnings : exactly that! Unused variables and imports are errors.
- coding conventions part of the language : the gofmt tool does that. Don't publish code that is not gofmt'ed!