Google building new OS with Dart

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Google building new OS with Dart

askoh
Administrator
It became news a few days ago. It is called Fuchsia and is meant to run on all devices from IoT on up. The interesting thing is that Dart will be the main language. The developers promise to make Fuchsia run on Raspberry Pi 3 shortly.

Since Dart is pretty close to Smalltalk, how can Smalltalk be the GUI for Fuchsia? How can it take advantage of Dart VM? Is this an opportunity for Smalltalk to make an impact? Let's brainstorm.

All the best,
Aik-Siong Koh
Reply | Threaded
Open this post in threaded view
|

Re: Google building new OS with Dart

Ben Coman
On Thu, Aug 18, 2016 at 12:23 PM, askoh <[hidden email]> wrote:
> It became news a few days ago. It is called Fuchsia and is meant to run on
> all devices from IoT on up. The interesting thing is that Dart will be the
> main language. The developers promise to make Fuchsia run on Raspberry Pi 3
> shortly.
>
> Since Dart is pretty close to Smalltalk, how can Smalltalk be the GUI for
> Fuchsia? How can it take advantage of Dart VM? Is this an opportunity for
> Smalltalk to make an impact? Let's brainstorm.

I guess the lack of response is that most people have other priorities.

Maybe Dart is close to Smalltalk, but here are some things that
apparently [1] we would miss ...
* Class extensions (especially with type tests)
* Non-local returns
* Resumable exceptions
* Class inheritance
* Really easy meta-programming
* become:, thisContext, etc.
* Generality on class operations
   * new MustBeLiteralClassName()
* Coding in the debugger
* DSL-building
* Development image, tool extensibility

I see you asked a similar question a while ago.  Clement's answer on
lack of requirements is particularly pertinent [2].

However it may be interesting to port the OpenSmalltalk VM to Fuscia's
kernel Magenta [3] except the mention there of C++ might complicate
things, or even port it to Little Kernel [4][5] if Google has done the
work to get LK running on RPi.

cheers -ben

[1] http://www.dartlang.cc/slides/2013/06/dart-smalltalk-industry-conference.pdf
[2] http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2014-October/101921.html
[3] https://fuchsia.googlesource.com/magenta/+/HEAD/docs/kernel_objects.md
[4] https://github.com/littlekernel/lk/wiki/Introduction
[5] https://fuchsia.googlesource.com/magenta/+/HEAD/docs/mg_and_lk.md

Reply | Threaded
Open this post in threaded view
|

Re: Google building new OS with Dart

askoh
Administrator
I think a lot could have change in the two years since I asked how Smalltalk can benefit from the development of Dart. Originally, Dart was meant to be a web language. Now it is going to be the main language for an Operating System. Since it has the full backing of Google, it is in our interest to ride with it. I wish Smalltalk not to miss out again.

We can of course port the current VM's for Squeak, Pharo, VisualWorks to Fuchsia, but what do we gain by that? Not much, I think. What if Smalltalk can do everything Dart can do in Fuchsia - look and feel, apps, scripting, concurrency, etc. Since Smalltalk seems to be a superset of Dart, can we auto translate Dart to Smalltalk? Just as Slang converts Smalltalk to C, can we have a Smalltalk subset that converts to Dart? Can Smalltalk be the debugger or simulator for Dart development? Can Smalltalk do more than what Dart can do in Fuchsia?

I wish I have access to the great minds Ben had mentioned. I am hoping that this thread will draw the best minds and ideas to pave the way for Smalltalk or its descendants to succeed in the future. Again, let's brainstorm.

All the best,
Aik-Siong Koh
Reply | Threaded
Open this post in threaded view
|

Re: Google building new OS with Dart

kilon.alios
In reply to this post by askoh
An area that generally interests me is making languages cooperate.

When I started with the idea of Pharo using Python libraries, I thought it would take me months to have something usable. Instead it took me weeks mainly because I found that a very simple solution could provide me with a working prototype. So my project Ephestos was born and allowed me to use Pharo to script Blender via Python using sockets , strings, Python execution and some Pharo tricks. It literally blown my mind how easy and simple it was. Of course its far from ideal solution. I have managed to keep most of the Pharo syntax for converting to Python syntax but data is a whole another beast.

No complains SmaCC did help a lot there to parse Python dictionaries and lists to Pharo ordered collections. However when another user emailed that he had problems using Ephestos to use the popular Python library Numpy from Pharo, it shown me that there is no such thing as universal solution.

After my decision to turn my attention to game development and Unreal game engine, I started learning a lot of C++ and I am wondering what it would take to transpile Pharo code to C++. The difference here is that C++ is no Python , it has a monstrous syntax and is a compiled language. However Pharo already does this with Slang that inherited from Squeak. Slang takes Smalltalk syntax and transpiles it to C. It's mainly used for coding the Pharo VM. C of course is nowhere near as large syntax wise as C++ but at least Slang generates readable code which is my goal.

So Pharo is not the isolated island that Smalltalk once was and there is no turning back.

There is amber that transpiles Smalltalk to JavaScript, PharoJS that transpiles Pharo to JavaScript and JNIPort that allows Pharo to use Java libraries.

So yes it's not that hard if you really want to build a transpiler for Pharo to Dart code and vice versa.

On the Subject of OS , Pharo is already a virtual OS. The advantage of virtual OS over regular OS , is that a virtual OS is much simpler in design so easier to hack and play with and also has access to the entire OS it runs on.

So in my case what interests me is transpiling Pharo to C++, because that's the language Unreal uses. It will be a challenge but is doable.

It would be a big plus for Pharo if it had a powerful transpiler tool that would allow you to convert Pharo code to any language producing readable code. This would allow Pharo access to any project out there. However remember what I said, there are no universal solutions or magic pills. Compromises and sacrifices would have to be made but it's possible.

Don't expect others to do it for you, brainstorming and talking about it is far from doing.

As Stef wisely says

"Pharo is yours"

On Thu, 18 Aug 2016 at 07:25, askoh <[hidden email]> wrote:
It became news a few days ago. It is called Fuchsia and is meant to run on
all devices from IoT on up. The interesting thing is that Dart will be the
main language. The developers promise to make Fuchsia run on Raspberry Pi 3
shortly.

Since Dart is pretty close to Smalltalk, how can Smalltalk be the GUI for
Fuchsia? How can it take advantage of Dart VM? Is this an opportunity for
Smalltalk to make an impact? Let's brainstorm.

All the best,
Aik-Siong Koh



--
View this message in context: http://forum.world.st/Google-building-new-OS-with-Dart-tp4911649.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: Google building new OS with Dart

askoh
Administrator
Kilon:

Thanks for your input. That is indeed brainstorming. I know the importance of doing too. But the value of brainstorming is big. A farmer does a lot of work but is not valued much. Watson and Crick brainstormed a lot and discovered the double helix. I don't want Smalltalk to miss that power.

Your description of your work and the work of other Smalltalkers shows the amount of work already done. I too have done CAD and Motion Simulation work using VisualWorks, C#, SpaceClaim, Inventor. But there is no killer app or killer use case in all of Smalltalk! How did Python's and Ruby's popularity leapfrog Smalltalk's? How can we get some attention so that we have resources to really grow?

China have been widely accused of copying. But I noticed that they have also picked up discarded technologies that are excellent technologies. Examples are solar cells, wind turbines, high speed rail, nuclear power, Alpha chip, MIPS chip, manufacturing, Kylin OS, etc. Perhaps we can make some nation see Smalltalk for the great technology it has for programming productivity.

Brainstorming is free speech at its best. Please everyone join.

Aik-Siong Koh