But I Don’t Know Dart

John M. Wargo
3 min readAug 10, 2021

When the Pandemic lockdown hit, I decided it was time for me to learn Flutter. I’d been enamored with the framework for years, and I wanted to see what I could build with it.

As I started working with it, I realized that I became functional in Dart and Flutter much more rapidly than I’d expected. As I encountered problems, I was quickly able to find a solution online. All of a sudden, I had a functional and sophisticated Flutter app running on my smartphone. I even built a bunch of sample apps demonstrating Flutter concepts I struggled with and published them here: https://johnwargo.io/flutter (I’d write the app to help me learn the concept, then publish them [with detailed instructions] in order to help others learn as well).

So, I consider myself a Flutter developer, but when I think about it, I realized that I don’t actually know the Dart language (the Flutter UI framework and Flutter apps are all written in Dart).

Lately I’ve been talking with a lot of developers about Flutter and React Native (listing them in alphabetical order to avoid showing any bais) and most developers seem quite comfortable with React Native, but as soon as you mention Flutter they have all sorts of objections:

  • Yeah, but Google could drop the project at any time
  • Yeah, but you have to learn Dart

So I’m curious, why is it a potential problem that Google could ‘drop’ Flutter, but not a problem that Facebook could drop React and React Native?

Microsoft backs both projects, so that’s interesting. A lot (a really lot) of companies use React Native in their applications, but what about Flutter?

I first learned about Flutter in relation to a new OS project Google started called Fuchsia (https://fuchsia.dev/); I expected the OS to replace Android eventually, but I think it will just replace the OS on Nest devices. At the Flutter 2.0 rollout, Ubuntu announced that all new applications on Ubuntu would be written in Flutter. In the same session, Toyota announced that their new in-car experience would be written in Flutter. Since then, Google rolled out Fuchsia in an update to one of the Nest devices, so it’s out there running in millions of devices.

You know, I’m pretty good with the longevity of both projects.

Now, on to the language objection. I get it that JavaScript is likely a known language and Dart, well…, not so much. Years before learning Flutter, I read a book on Dart. I don’t remember anything from it, but I did read it. While learning Flutter, not once did I recognize my use of Dart in anything I did.

That’s weird, right?

But, when you think about it, knowing JavaScript or TypeScript (I ‘know’ both) its not a leap to use Dart. It doesn’t even take concentration. Or study. I find myself copying code snippets from browser to IDE, so that isolates me from the language in use. I also find that IDEs are so capable nowadays that as soon as you try to do something, the IDE prompts you with the right syntax anyway. If I miss something, syntax highlighting prompts me to fix it. And, if I’m so dense that I miss all of that, any compiler errors I get will likely give me the right syntax.

Yeah, if you put a gun to my head and said you’d spare my life if I could tell you one language-specific capability in Dart, I’d be dead.

I feel the same way about Lua; I took a week-long training class on the early Kony cross-platform development platform years ago, and all the code you wrote was in Lua. I was very successful in the class, but couldn’t tell you a thing about Lua except that its supposedly exceptionally good at processing lists.

Any experienced web developer has what it takes to pick up Flutter or React Native and run with it. The language shouldn’t hold you back, especially if we’re talking about scripting languages like the ones I listed. Objective-C or Swift? Those are completely different IMHO and I can’t code in either.

Photo by Miikka Luotio on Unsplash.

--

--

John M. Wargo

Software developer, writer, presenter, father, husband, geek. Author of 7+1 books. Mostly web development & non-native mobile development. Love Flutter & React