{"id":2211,"date":"2018-02-22T19:49:12","date_gmt":"2018-02-23T01:49:12","guid":{"rendered":"https:\/\/www.wiredprairie.us\/blog\/?p=2211"},"modified":"2018-02-22T19:49:12","modified_gmt":"2018-02-23T01:49:12","slug":"flutter-io-first-impressions","status":"publish","type":"post","link":"https:\/\/www.wiredprairie.us\/blog\/index.php\/archives\/2211","title":{"rendered":"Flutter.io First Impressions"},"content":{"rendered":"

I’ve been tinkering with Flutter.io<\/a> for a few days now and wanted to document a few early impressions.<\/p>\n

It uses the programming language Dart<\/a>. I’d looked at a lot of Dart code when it was first announced, but hadn’t looked at it much since. I couldn’t see it gaining meaningful traction against the JavaScript juggernaut as a transpiled option (as it added too much overhead from the complaints I’d read) and there was zero evidence that any company besides Google was considering integrating it as a native option for Web pages. Without broad industry cross-browser support (from desktop to mobile as well), it seemed like a dead-end option that didn’t add measurable value. In some ways it was doomed to fail as it was trying to be a better JavaScript rather than rethinking the whole client development experience. It was just a new web programming language.<\/p>\n

Originally, Dart’s messaging was broad and suggested that it was an ideal language for everywhere. That has changed since it’s original announcements to be focused on client development. But, that shift was recent and apparently connected with the announcement of Flutter.<\/p>\n

From November 1, 2011:<\/p>\n

\"Dart<\/p>\n

 <\/p>\n

to late February 2018:<\/p>\n

\"Dart<\/a><\/p>\n

Even as recent as May 2017, the Dart team was still considering server development as a potential platform target:<\/p>\n

\"Dart<\/a><\/p>\n

It seems logical that the team would pivot to concentrate on a single target platform type, the “client.” Dart hadn’t gained substantial traction in server development or client development. While a recent video I’d watched suggested there were 70 million lines of Dart code on Github, I’m not sure who’s writing all that code and why. The dart-lang repository<\/a> hosted on GitHub hasn’t seen a lot of “Star” love.<\/p>\n

\"1500<\/a><\/p>\n

Compare those numbers to TypeScript for example:
\n\"31,301<\/a>Nearly 30,000 more stars (and TypeScript was announced about a year after Dart).<\/p>\n

I wouldn’t choose Dart for new development outside of Flutter. My initial impression is disappointment that the Flutter team is using Dart as it adds one more language to the client-side development sm\u00f6rg\u00e5sbord. I don’t know that the world needs another programming\/UI toolkit lock-in option right now added to the buffet. I like variety and competition, so I’m all for that, but I also worry that limited adoption of frameworks leads to abandonment and frustrated developers. I can speculate why they choose Dart, especially as it’s staffed by Google developers, and I can see the appeal of the language, but….<\/p>\n

I don’t need more programming languages right now in my solutions toolbox<\/strong>. It’s one more thing to learn and master. Since Flutter is also new, it has made the initial ramp-up time longer than I’d expected and wanted.\u00a0 And because the language syntax is very familiar by design, it’s unfortunately likely that habits from other C-like and TypeScript-like will find their way into coding I do in Dart.<\/p>\n

While the community at large apparently considers the Widget building syntax to be a strength of Flutter, I can’t say that I’m excited about it. It’s chatty and verbose. (And I haven’t been able to tell if the enthusiasm about the current syntax is just from the early adopters or fans, or it’s generally well liked). It absolutely doesn’t feel like it’s moving the needle when compared to all of the other GUI frameworks that have come before it. In fact, it reminds me of my earliest coding experiences using Turbo Vision<\/a>. Yeah<\/strong><\/em>. Turbo Vision from Borland<\/a>. (Wow — the past 20 years of IDEs and development tools originally from Borland has undergone an amazing number of ownership changes).<\/p>\n

\"Turbo<\/p>\n

(Yes, it’s not really like that too much, but I had some flashbacks to my Turbo Pascal days).<\/p>\n

Here’s a snippet of some code,\u00a0written in Dart which represents a single item (more about this in a later post), with a thumbnail, a name, and a year published.<\/p>\n