@smga3000
Haha yes I am. I totally love Dart…I started coding with Flutter + Firebase, and I spent a lot of time learning language and architecture concepts through the Flutter and Dart GitHub threads (specifically from Erik Ernst, Bob Nystrom, and Ian Hickson). And while I now use Rust/JS/Ruby and all the acronym databases for a consulting dole I remain a huge proponent of Dart + Dgraph for most modern apps (I’d prolly prefer Rust for a raw performance concurrent system like Dgraph, hehe…and unfortunately Python for ML)
There are several reasons, but the first one is really sufficient: Flutter and Dgraph are the tools that provide the highest incremental leverage in app architecture. In fact, both are epochal shifts in their category.
For UI/UX, Flutter provides true platform independence by efficiently shifting component rendering into client code. This has many positive consequences - including drastically increased expressiveness (eg. animations) and platform independence without sacrificing performance. That’s several obvious turns of leverage already - not only can I condense my app to one code base, but I can tackle designs that other people can’t handle with their tools.
For databasing, Dgraph + GraphQL allow you to fully represent your data with an elegant schema and traverse relationships such that you can query with any imaginable specificity. A good GraphQL database can handle anything enabled by NoSQL or SQL, but also substantially more. The other two are strictly constrained, both in query expression and performance, by the hacks they employ to ‘mimic’ the modeling of graph relationships…typically foreign keys and tight query constraints. Relationships are a core feature of data…in databases that don’t treat them like first-class citizens, you literally can’t even ask the right questions. God knows how much graph traversals increase leverage over time. The count of unlocked queries is proportional to data complexity, so it’s literally exponential when you’re thinking in complex social graphs . Again, you can tackle designs other tools simply can’t handle.
These are huge deals, and I think their epochal significance is generally under-appreciated. People play technologies too safe in cases like this where relative leverage is heavily skewed towards one offering.
There are other reasons. Dart takes streams mainstream. The language’s performance improvement over time is impressive, and shows no signs of slowing down as they fold in new functional features and null-safety. It’s also really semantically clean - the team is great at choosing features to add and implementing them correctly. Thus it’s also great as a server language - and being able to build the majority of a company around one language is really, really nice.
The architecture patterns in Flutter emerging around streams are next-gen. Dgraph has insane raw-performance from excellent designs in Badger. All three communities are highly transparent projects with engaged communities. Etc, etc.