For Flutter, we want a language that’s suited to
Flutter’s problem domain: creating visual user experiences.
The industry has multiple decades of experience building
user interface frameworks in object-oriented languages.
While we could use a non-object-oriented language,
this would mean reinventing the wheel to solve several
hard problems. Plus, the vast majority of developers
have experience with object-oriented development,
making it easier to learn how to develop with Flutter.

With Flutter, we want to empower developers to create fast,
fluid user experiences. In order to achieve that, we need to
be able to run a significant amount of end-developer code
during every animation frame. That means we need a language
that both delivers high performance and predictable
performance, without periodic pauses that would cause
dropped frames.