Joao Pedrosa
2015-11-23 16:14:38 UTC
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
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
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.