Mojo? What kind of next gen UI are we supposed to get?

136 views
Skip to first unread message

Joao Pedrosa

unread,
May 24, 2015, 5:11:01 PM5/24/15
to mi...@dartlang.org
Hi,

UI has been very inconsistent in the last decade. Microsoft experimented with several versions. Mobile introduced a new flavor with touch. The browser was never really there for a gamut of desktop applications. Linux offered GTK and Qt with GTK being the favored one by many important distros and offered as an alternative for cross-platform development. And on the browser Canvas, WebGL, SVG are still promises...

Apple used to get mocked for their 1 button mouse. With mobile devices the input got further simplified and now when playing on a tablet alongside a flat-screen we may catch ourselves trying to "touch" on the flat-screen like it is a touch screen.

The browser has served as the UI for a while, and now the browser is serving as a "shell" for some desktop-like applications. For example, like the Atom editor and Node-Webkit stuff.

Is the new project called Mojo meant as a follow up to the Node-Webkit stuff? Could it turn out to be the "uniform" UI that people have been longing for in the last decade? Inquiring minds want to know.

Cheers,
Joao

Andreas Kirsch

unread,
May 24, 2015, 5:42:12 PM5/24/15
to mi...@dartlang.org
Is this some kind of advertisement teaser? 
--
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

To unsubscribe from this group and stop receiving emails from it, send an email to misc+uns...@dartlang.org.


--
Why is this e-mail so short? Answer: five.sentenc.es.

Joao Pedrosa

unread,
May 24, 2015, 6:03:28 PM5/24/15
to mi...@dartlang.org
Hi,

It's an honest question. Nothing to advertise yet. :-)

Many of us have been wondering about the next steps in the future of programming. Some of us have asked about Sky, Fletch, etc... I just wanted to know more specifically about Mojo itself. The joke seems to be that none of us knows exactly what those new technologies are supposed to do... :-)

I was yesterday running some old code that still used Java Swing and some HTML templating... Code from nearly a decade ago!

So yes, I just wanted to know what comes next.

Cheers,
Joao

Filipe Morgado

unread,
May 24, 2015, 6:33:50 PM5/24/15
to mi...@dartlang.org
From this Mojo design doc:

This is an effort to extract a common platform out of Chrome's renderer and plugin processes that can support multiple types of sandboxed content, such as HTML, Pepper, or NaCl.

That sounds like a fairly lofty goal. What it really boils down to is isolating the components of our multi-process architecture that are concerned with process management, sandboxing and IPC. Much of this work is / will be straightforward extraction of code that is currently part of src/content/ into a narrower submodule.

I'm not sure it's directly related to UI.
Seems more like generic IPC to connect service threads to their clients.
I don't think it enforces any kind of UI/renderer thread/service.

Joao Pedrosa

unread,
May 24, 2015, 6:49:05 PM5/24/15
to mi...@dartlang.org
Hi Filipe,

Thanks. The Mojo dev list is a trove of information indeed.

A Google developer said on there this:

"Mojo is cross-platform and run on Windows, OSX, Linux (any distro), and potentially any other POSIX-y OS (there are BSD ports of chromium). Binder only runs on Android. That's a pretty major difference."

So even if it does not include a UI by default it's in the path to support multiple platforms at least.

GTK+ often served a multitude of different programming languages. One of Mojo's aims seems to be to support many languages as well. I don't find that part of it bad per se. Maybe the future of desktop technologies will come as a side-effect of technologies first targeted at mobile. And one of the concerns they have for mobile is even more performance efficiency, so breaking down a monolithic browser code base into smaller pieces would help there. And maybe tying it all together is partly Mojo's goal indeed.

I will read more about Mojo. Thanks!

Cheers,
Joao


--

kc

unread,
May 25, 2015, 9:52:45 AM5/25/15
to mi...@dartlang.org
Mojo looks like the core of Chrome factored out into a general purpose platform layer.

Two rendering engines on top of Mojo:
- Blink for trad web development.
- Sky which is all about no compromises 60fps+ touch for Material Design interfaces/apps.

The Sky team selected Dart which gives a new lease of life for the Dart VM on the client.

Also, it looks like Android is moving to dynamic granular permissions - be interesting to see how this plays with Mojo and if the same approach is taken on Chrome OS (to unify the permissions story).

At least I think that's what's going on. The question is how committed Google are in taking the experiment to product and giving developers a joined up coherent story - which MS seem to be doing with Win10. I hope the Dart team are working closely with the Sky team and asking what they can do to give a great developer experience plus performance for Sky apps.

K.

Joao Pedrosa

unread,
May 25, 2015, 11:27:56 AM5/25/15
to mi...@dartlang.org
Hi kc,

I spent a good while reading more about Mojo and I even tried to compile it. But some compilation errors meant that I couldn't finish the compilation and run the sample at the end.

I also read about Skia which is the graphics engine being used by Mojo, Chrome and Android. Maybe I will try to compile a standalone Skia to play with. :-)

Either way, Node-Webkit looks like the current contender for cross-platform development tool:

I haven't yet given Node-Webkit a try, actually.

I feel that there is a lot of fun stuff that people can do with Skia and maybe Emscripten. Perhaps a Skia application could be compiled with Emscripten and run on a Skia-backed web browser. :-)

Also good news on the JavaScript front. Looks like they have started enabling TurboFan on some normal JavaScript constructs:

One of the purposes of Mojo seems to be to try to "sandbox" application code. But there may be alternative ways to sandbox content like that of running code via asm.js.

I hope the Mojo/Sky projects can also support Fletch alongside the main Dart VM. Fletch can use very little memory and can start quickly. But the Dart VM is better for error reporting and may remain better for that because of friendly runtime errors.

One thing is certain, for end users it's no fun compiling Mojo from source. :-) I had to install a ton of dependencies with apt-get which I don't recommend you do.

Cheers,
Joao



--
Reply all
Reply to author
Forward
0 new messages