5 ms·
I've tried dart back in the Angular 2 beta days with Angular Dart and after using it I have the exact opposite feeling about it. It's a thing that solved a lot
by rubber_duck 8y ago
I've tried dart back in the Angular 2 beta days with Angular Dart and after using it I have the exact opposite feeling about it.
It's a thing that solved a lot of very real problems that are still halfassed by NPM and Node ecosystem - package manager, build system, tooling around it - it was all a step above the quality of TypeScript/NPM/JS. Saner object semantics, good standard library, good tooling - it just got me to solving the problems I had. DOM wrappers it had were very nice, came with their own wrappers for Observable events (from standard library). They had proper async/await implementation working waay before TS.
Dart feels like a better TypeScript and for me the learning curve was really low.
One issue I had with it was using Dartium to debug the code - Chromium build that ran Dart VM naively to avoid transpiling to JS all the time - it was buggy as hell back then. Supposedly the dev compiler for JS is fast enough now that this isn't an issue - and in the case of Flutter you're running Dart natively so it's irrelevant.
I'm looking forward to doing a new project in Flutter this weekend - I've played with a hello world app when it was in beta and I was very impressed with the dev experience - hopefully it lives up to it in practice.
- SlowRobotAhead 8y agoOk, but to parent’s point... is it going to last? Is it yet another thing Google will abandon? Is it worth learning, because learning another language has a real cost imo. If Google walks at any point, does Flutter or Dart survive? I’m with him, I want to like the idea, but I think the adoption has been slow and it doesn’t appear like it’s going to suddenly take off. I could be wrong, I just don’t see any successful indications yet.
- pier25 8y agoAFAIK Flutter will be the primary SDK for writing apps in Fuchsia. If this is true, and if the other rumors about Fuchsia replacing Android are also true, then I doubt Flutter and Dart are going anywhere.
- coldtea 8y agoExcept if Google gets bored with Fuchsia, like it has with tons of projects. Heck, from what you say, it already got bored with Android -- if Fucshia is to replace it in say 2022, it means that Android just lasted around 15 years as a platform.
- japanoise 8y ago15 years - so only four years less than MS-DOS ('81 - 2000) by which point it was considered hairy and terrible? I'm no big fan of Google, but 15 years is plenty long enough. And really, Android is definitely struggling and showing its age by this point.
- bulldoa 8y agoOut of curiosity, why is android struggling? What aspect of it needs improvement?
- cwyers 8y agoThere is no sense in which MS-DOS died in 2000.
- coldtea 8y agoI guess the parent means when (NT-Kernel based) Windows XP replaced Windows ME, which was the last version to run on top of MS-DOS (iirc).
- japanoise 8y agoWikipedia lists the last release of MS-DOS as version 8.0 in 2000, linking to the page for Windows ME. This is what the comments above were alluding to, a "final release" before the project is abandoned. Installations still continue, in the same way there's probably places still doing the books on a C64, but it's no longer supported.
- Benjammer 8y ago>Android is definitely struggling and showing its age by this point I have the opposite viewpoint on this. I've worked on mobile the last 5 years or so, and dedicated native Android the last 2.5 years. The last year or two have been dramatic revolutions in the Android developer experience, from my perspective. Things like ConstraintLayout and full Kotlin support with ktx have opened up a new world for me compared to the state of the art several years ago. Then you look at companies like Peloton using large form-factor Android devices in their core products, and Samsung DEx using Android as a seamless mobile<->desktop computer. To me it seems like Android is just hitting it's stride. Who knows though, it's Google.
- grayrest 8y ago> is it going to last? Is it yet another thing Google will abandon? It's apparently the primary language for Google Ads. As such, I expect it to be maintained as long as Google continues to sell ads and if they do move away from it you'll have plenty of warning.
- Reedx 8y agoPeople keep saying that in Flutter threads, but it appears to be a small app for managing your ads? If it's just this, it wouldn't be hard to replace: https://itunes.apple.com/us/app/google-ads/id1037457231?mt=8 https://itunes.apple.com/us/app/google-ads/id1037457231?mt=8 https://play.google.com/store/apps/details?id=com.google.android.apps.adwords https://play.google.com/store/apps/details?id=com.google.and... Via https://flutter.dev/showcase https://flutter.dev/showcase
- skybrian 8y agoNot just mobile. Dart (though not Flutter) is also used by the AdWords web app, which is quite enormous. That said, Adwords used to be written in GWT. It's not impossible to migrate, but quite a big job.
- moocowtruck 8y agoright but the money maker of adwords is not in dart at all, common lisp i think?
- skybrian 8y agoI don't know what you mean? Google has many large ad customers who use the web UI to manage their campaigns. Common Lisp was rarely used at Google when I was there, though it's a big company and you do see a little of everything, sometimes due to acquisitions. You might be thinking of ITA software, which is (was?) used for airline reservations.
- stephenr 8y agoSo, dart is safe until google moves onto the next thing it invents. How’s GWT looking these days?
- rubber_duck 8y agoI think it got enough adoption so far that it's not going away overnight and should be usable since people already published apps with it. From my point of view learning Dart/Flutter isn't really a big investment so the downside of it getting abandoned soon is not as large as the payoff if it actually delivers - quality cross platform UI framework with great dev experience that I can use on my projects.
- stephenhuey 8y agoI concur. I've never tried it with Angular, but I have written it for Flutter, and after a couple decades with JavaScript, I much prefer Dart (and it took no time to learn and I simply Google for the API as much or less than any other new language I learn these days). It was easy to start building a Flutter app with it immediately--not much of a learning curve to speak of. Whether or not I know it super well is beside the point--after a short time with it, I can use it productively and found it alongside the Flutter classes to be easier to get going with than Swift, Objective-C, Cordova, and even Rubymotion (Rubymotion is also pretty quick and friendly compared to the other options, but Dart/Flutter is a bit faster if you're a native mobile noob mainly because with Rubymotion you need to dig into the Apple APIs a bit, but with Flutter it's more abstracted).
- leppr 8y ago> Dart feels like a better TypeScript That's only if you use Typescript as a class-based OOP language. If you're more used to functional programming and prototypal inheritance, then Dart will bear no familiarity. Due to its adherence to classical OOP, it feels way more like Java than Javascript. As someone who never did any serious programing in those classical OOP languages, I struggled a lot to find the right abstractions to implement any kind of clean business logic. It was the first time I had to actually read up about "design patterns" and unironically consider writing factory factories. It seems that due to Dart's rigidity and adherence to classical OOP, any library which needs to deviate from this paradigm has to hook into an additional build step (e.g. built_value for immutable types, has to use build_runner). That's an acceptable compromise for lib users, but adds a huge burden to actually writing those libraries, let alone incorporating those in your app's code.
- skybrian 8y agoYes, Dart is a fairly standard object-oriented language, but this exaggerates a bit. Dart has first-class functions (unlike Java) so you shouldn't need a factory-factory in the simple case. That's just a function that returns a function. You might need other design patterns, though.