Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm glad to see this here, I like Dart. HN in general doesn't seem to. IMO for cross platform development Dart is the way to go if you are wanting a single code base and targeting desktop/mobile/web. Some of the things this language can do is amazing.

For quick scripts I still reach for python or Linux: bash, Windows: AHK. But if I'm developing an app I now reach for Dart/Flutter.



My dislike for Dart comes from being an early adopter and getting burned by it.

One of their headline libraries, angular dart, pushed out a broken release that stayed broken for nearly a year.

Dart was revived with flutter and I'm glad it's doing better. However, I have trust issues with the way google runs their projects. I simply don't know if they'll continue to support Dart/Flutter or if they'll drop it next year for something shiny.

I also don't appreciate the gaslighting that happened on the dart forums. There was a lot of "Oh, dart isn't dead, we are using it heavily and actively in google!" that happened when dart was very clearly abandoned by google. They pulled the exact same stunt with GWT before replacing it with J2CL.


I don't work for Google (no inside knowledge), but from what I can see, their use of Dart has if anything increased substantially.

Dart/Flutter are highly unlikely to be abandoned.


Sorry, I'm not trying to say that google isn't currently heavily using dart. Rather, that between Dart's initial release (released in 2013) and the release of flutter (released 2017) Dart was practically dead.

That's the period that left a bad taste in my mouth. IDK who chose to use Dart for flutter, but by doing so they revived a basically dead language.


Dart tried to be a Web language through Chrome, but it failed [1]. And I think it was a good call. It felt dead at that point because it was lost. Flutter feels more like a miracle that had no reason to succeed (at first).

[1] https://techcrunch.com/2015/03/25/google-will-not-integrate-...


[I lead Dart eng.]

Sorry you had poor experiences. :-(

That said, it was true that Dart was used heavily internally in that time frame. It was and still is, by Ads (ads.google.com) - that's a non-Flutter Dart app and still (to the best of my knowledge) the largest Dart app around. Before Flutter, we went through a period of primarily prioritizing internal customers. That work was often not visible externally.

We did do the shift to Dart 2 in that time period though. That was a fairly massive change to the language that began independently of Flutter. It was a nice timing that Dart 2 shipped at the same time as Flutter 1.


> That work was often not visible externally.

Let me be blunt, the work was never visible externally. What was visible externally is major language designers leaving the team (Lars Bak), Updates to the language slowing or stopping all together, the chrome team deciding to abandon dartvm in chrome, the angular team deciding to use typescript for angular 2.0, and Dart angular being abandoned (even as it was still being advertised on dart.dev!).

What other conclusion was an outsider to draw other than "Ok, google must be done with dart"?

What was the plan if flutter never happened? Would google ads continue to use dart?

Like I said, happy that you and your team are now enjoying some nice popularity. I jumped on dart early because I thought it was overall a good idea and decent language. However, once bitten, twice shy.


The odds are very good that Lars would have left regardless of how Dart was doing. He has repeatedly told me "I'm a 1.0 guy". He likes shipping new things but he's not the kind of person to spend a decade cultivating an ecosystem and refactoring mature codebases.

I'm really sorry you got burned by the early experience. It was a hard time for Dart users. It was a hard time on the team too. It felt like we were wandering in the wilderness for a while and struggling to agree on what language our users wanted us to build for them.

I think where we've landed is a much better product, but I'm sorry that our churn getting there caused you pain.


> It felt like we were wandering in the wilderness for a while and struggling to agree on what language our users wanted us to build for them.

And I really appreciate you saying this. I get that what I'm saying is harsh and probably comes off as whiny/ungrateful. I'm mostly just venting because of the original "Why are people mad about dart in HN" comment and explaining my position there.

Dart does look like it's moving forward in a good direction and I wish it all the best. It's certainly great that the language and ecosystem are seeing a fair bit more adoption.


I hope that if you try it again some time, you have a better experience.


This is precisely my take, as well. I got burnt by Angular Dart and the Dart VM, so I'm extremely reluctant to try out Flutter. I've only got so much time on this earth and I don't want to keep investing it in Google's abandonware.


Yeah I remember Google's attempt at Dartium and thought that it was dead when that was scrapped (I didn't realise Angular Dart was even a thing).

I was surprised to see Dart 2.0 come out and Dart 3.0 has surprised me even more.


As long as hardly anyone is using Dart outside of Google, it will remain a niche language.

And based on Google's track record, Dart is at risk of being cancelled any day without any notice.


I skipped Dart nearly completely. Early on I just read about it and concluded that it's pretty much 1 to 1 clone of JS just without some weirder parts. Since then JS and TS got massive development so I'm not really even keen on looking at Dart again.


Yeah, I find Dart to be very underrated. It's straightforward and not overly clever while still having decent expressiveness, and the typing and inference work great. Even outside of Flutter I think it has a lot of potential.


Does it simplify the build/ship process compared with React Native? The latter has a good coding experience (and real native UIs), but the housekeeping is a lot to keep up with. But at least some of that is intrinsic to the mobile platforms themselves


Yes absolutely. In fact I switched to Flutter precisely because React Native was so broken. Every time I upgraded, some package broke. Expo is alright but as soon as you try to do something outside of it, it sucked.

Packages didn't break on Flutter, releases are quite stable and preserve backward compatibility, at least generally.


It's a substantial upgrade on pretty much every reasonable metric I can think of compared to RN.


> IMO for cross platform development Dart is the way to go if you are wanting a single code base and targeting desktop/mobile/web.

I can't understand how this can be true when JavaScript/TypeScript exists, but I'm open to religious conversion. Can you share details of the desktop/mobile/web app(s) you've created with Dart?

Another mental block for me is the association with Flutter, since every Flutter app I've tried (iOS and web) feels uncomfortably strange.


Disclaimer: I'm not a developer and could only ever be considered a novice programmer.

A family member was after a bespoke app that would do some calculations for him on site and include pictures and customer details. They wanted it to work on mobile and desktop.

At this point I thought a web or hybrid app would be the way to go. One code base multiple platforms. Cue a month of trying to work out what to use out of an uncountable number of frameworks.

I can't overstate the level of confusion involved it this for a novice like myself! I've created a few simple desktop programs before but nothing on mobile or the web. Where do you start with the current state of things on the web? I still don't know. What I did know was I didn't want to waste time learning a framework that wasn't going to be around, or had just appeared.

At this point I heard of Dart and Flutter which worked across all the platforms I was interested. Not only the it was JIT or AOT when needed, with hot reload.

As for the app, I don't have a GitHub, it's so bespoke to its usecase I don't think anyone would be interested. But also I'd be very embarrassed to release the code. I dread to think how bad it would look to real programmers/developers!


Don't be so hard on yourself. Nearly all of just just wing it even if we sometimes claim otherwise.

Congrats on overcoming hurdles and delivering a product. Not all professional developers always achieve that.


Thank you for the positive comments. Dart wasn't on my radar (I don't do a ton of UI dev) but I'll give it a look next time I want to play around with something UI-ish.


I wish Dart/Flutter had an option for a more convenient - imperative GUI.


If you take a look at how Flutter is implemented, you'll see that at the bottommost layer (dart:ui), it is imperative. On top of that, we built the rendering/painting layers (pretty imperative) and then the widgets layer (reactive).

Each of these layers is public API and follows the same breaking change process as any other part of Flutter's public API, so with a bit of effort an alternative imperative framework could conceivably be built built on top of what's there. The downside is that since the widgets layer is reactive, you'd be giving up all those shiny widgets that are part of the SDK and need to build your own (or find a way to wrap what's in the SDK).

This (old, but still accurate) talk by hixie covers the layers in detail: https://www.youtube.com/watch?v=dkyY9WCGMi0

TL;DR it's entirely possible to create an imperative framework on top of Flutter's lower layers, re-using a lot of our existing code, but (as far as I know) such a thing doesn't exist today.


how are you targetting the web with dart?


Flutter Web: https://flutter.dev/multi-platform/web

You can also use AngularDart if you want but it's less common than Flutter Web in my experience.


Who actually targets the web with Flutter? I wanna know. Flutter is a canvas app on the web. They barely figured out text copy/paste operations and it still looks and feels odd, Java like.


I do, for example. I'm building apps that require mobile versions as well, and I don't want to build the same app three times, or even twice. Yes, React Native exists, but there's not as much codesharing between React web and RN as one would expect. Yes, React Native Web exists, but the whole experience is that of using a patchwork of open source libraries, some not as well maintained as others, to get the same experience as Flutter gives, first class.

Flutter on the other hand, for all three targets, it Just Works™.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: