On Flutter and beyond

143 views
Skip to first unread message

Joao Pedrosa

unread,
Nov 23, 2015, 11:14:45 AM11/23/15
to mi...@dartlang.org
Hi,

I spent a while today reading about some related technologies like JavaFX and how JavaFX is perhaps at least being de-emphasized in favor of thinner views as provided natively by the platforms being targeted. At one point they even had a version of JavaFX for embedded devices (ARM) which was perhaps based on the Skia library as used by Chrome but they dropped that project earlier this year, I think as part of an effort to focus their resources on more standard approaches.

One of the reasons they cited for the difficulty of targeting embedded devices was the many different specifications. Even so, I watched a JavaOne keynote video where they were still discussing Java ME to target embedded devices, only the emphasis was more on connecting stuff than on producing GUI.

GUI is tough. One of the discussions mentioned that corporations need to care for features like Accessibility which could be a nice-to-have feature for some, but for corporations it's a must. Even though say games may provide for fewer accessibility opportunities. So that just providing users with a canvas where everyone would draw up their own GUI would not necessarily be a good idea if you wanted to have features like Accessibility too. They also mentioned features like anti-aliasing, that platforms may provide by default for their GUI and you would miss out on it if you started really from scratch when drawing up the pixels.

Luckily, the all too awesome Skia library may provide a great deal of anti-aliasing and at a great performance level. It is a bit unfortunate that they could not use it from Java, for whatever reason. Servo the new browser project from Mozilla does use Skia, for instance. As does Flutter.

Several months ago I also thought about using Skia myself. But the Skia project seems to retain the right to change APIs to fit the needs of the Google projects using it, so that the APIs may not be too stable. "Use them at your own risk." :-) Then again, Chrome uses it. Android seemed to use it during the early days at least. So that it should be stable enough for most projects.

Flutter could be a good cross-platform project for GUI. While their focus is on Android and iOS, I'd love for them to also have a Linux/Mac view so that it would spur more innovations and lure some JavaFX developers over here. Some of the JavaFX guys were interested in Raspberry PI though.

While Fletch is meant for targeting some embedded devices, its point would perhaps be more on connecting stuff like the Java ME and less on having a full-featured GUI to go alongside it since that would require even more development resources which can be harder to fund even for large corporations. Here's hoping that Fletch gets its Skia love to! :-)

Most developers are still beholden to the browser for GUI, even if their tools are used for generating the JavaScript, HTML etc of that browser-based interface. The browser technologies may be too big for embedded devices though. Then again, it serves as an incentive for the embedded devices to come up with more powerful hardware that can host a browser. My TV can host a browser by default, for example.

Dart is well-positioned to dominate these markets. Even though it can be rather challenging at times. The costs to cover all bases keep on increasing making it tough for new technologies to really take flight. I think release early and release often is still the best idea, one which Dart used too. I hope Flutter can jump on that bandwagon soon.

Cheers,
Joao


David Notik

unread,
Nov 23, 2015, 10:16:28 PM11/23/15
to Dart Misc
I enjoyed this. Thank you for sharing.
Reply all
Reply to author
Forward
0 new messages