In two companies we already gave up on Dart and Flutter because of how it's backwards incompatible is. The language and frameworks moves very fast, it develops new tools and classes before the old ones become mature enough and adopted by the industry. Then suddenly, Flutter 27 lands, requires Dart 45, which requires intl 81.2.5. and now you can't compile anything anymore. Whole upgrade process, tools, compiles and libraries are broken for months before Google and OSS catches up. Once ecosystem is on Flutter 27 your upgrade path takes weeks, because a core method was renamed or compiler flag removed and CI/CD is failing. So you just move back to Java and Kotlin, where code from 2012 still compiles and works just fine.
It’s kind of telling that you had to rely on fake examples here because I don’t know what you’re talking about at all as someone in the exact same ecosystem.
I’ve genuinely never run into something that even remotely resembles what you’re describing in half a decade.
Just to point out the ridiculousness of your comment Dart is 10 years old at this point, follows semver and is on version 3. Your story really doesn’t check out at all.
They actually go into fairly stupid amounts of details to make keeping up with changes simple. They strictly adhere to semver so you shouldn’t ever be surprised and then they literally have a tool baked into the CLI which will do all of the upgrades for you that static analysis can handle which is the overwhelming majority of them in my experience.
I released two apps built in dart on flutter. I loved it at the time, but I ran into this issue headlong with both of them. Release v1.0, move on to other things, come back in a year with a new computer to fix a minor bug and I can’t even compile the original release anymore, and had to spend forever rejiggering everything to get it back to the state it was when I left it. I really loved dart, and even flutter, building in it was a breeze. But the churn made the js ecosystem look slow.
You don't get to very rudely accuse someone of giving "fake examples" (why?) and then, later, use weasel words like "in my experience." Perhaps your experience isn't representative of everyone else's.
None of those versions exist, so the example is obviously made up.
Now, it could still be rooted in reality rather than being a complete fabrication. But when all the provided details were made up, it's basically impossible for anyone to check.
Tooling, documentation, language design, balance across a million different competing goals, interoperability, deployability, simplicity, expressivity and much more.
It’s just a REALLY REALLY nice modern language with a team of very smart people behind it who very clearly sweat the small details and have a long history of being able to make great decisions along the way even in ambiguous situations where it’s not always clear what the best path is going to be.
Compact and clean is very far from my experience writing a very simple library management app with flutter. The framework literally gets in the way. You can't do anything without having to deal with some convoluted callback mechanism. You can't manipulate any object without some forced async crap. And it's so verbose. Despite my best efforts to keep things clean and organized, I get lost in the very small codebase after a couple of weeks. It's got to the point where I'm just rewriting it with Qt quick instead. It was my first time touching both flutter and dart, so maybe it's all subjective, but right now I think it's just a badly designed language/framework.
We must have very different definitions of compact, with Go requiring dozens of lines of boilerplate where other languages make do with one line of '?' or '.filter'.
Agreed, one of my pass the time activities during covid was basically just spending the year trying out and evaluating different languages across a whole range of different metrics and features. For me Dart was the clear winner and I’ve never once regretted making it my new default, in fact it’s only increased its gap compared to everything else in the time since then.