- no undefined behavior
- many classes of concurrency bugs prevented by the type system
- standard library and much of the ecosystem makes invalid states unrepresentable. E.g. a String is always valid UTF8
Those are things that are true to varying degrees for other languages. Dart does pretty well imho. But for example Java and C# offer memory safety but have very unsafe concurrency