Download - Mars
![Page 1: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/1.jpg)
MarsJust another world
martes 2 de noviembre de 2010
![Page 2: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/2.jpg)
MarsJust another world
martes 2 de noviembre de 2010
![Page 3: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/3.jpg)
Who I am?
martes 2 de noviembre de 2010
![Page 4: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/4.jpg)
Who I am?
I really don’t know (yet)
martes 2 de noviembre de 2010
![Page 5: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/5.jpg)
Once upon a time...
There was Squeak...
martes 2 de noviembre de 2010
![Page 6: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/6.jpg)
martes 2 de noviembre de 2010
![Page 7: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/7.jpg)
...and Squeak had a lot of colors(yes... many people like them... just
not me)
martes 2 de noviembre de 2010
![Page 8: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/8.jpg)
...and other not so good things
• no good keybinding and manual handling of tools.
• no cool widgets (like trees, etc.)
• no native user interface (of course, not Polymorph either)
martes 2 de noviembre de 2010
![Page 9: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/9.jpg)
Then came Pharo!
A profesional open-source
Smalltalk
martes 2 de noviembre de 2010
![Page 10: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/10.jpg)
martes 2 de noviembre de 2010
![Page 11: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/11.jpg)
Pharo has good UI improvements
• With time, it incorporates
• Polymorph!
• A good set of key binds (like cmd+w, finally!)
• ...and most of this changes are now on Squeak too.
martes 2 de noviembre de 2010
![Page 12: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/12.jpg)
martes 2 de noviembre de 2010
![Page 13: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/13.jpg)
So, why Mars?
• Because native applications rocks
• The mac experience matters
• We should be able to produce that experience using Pharo.
martes 2 de noviembre de 2010
![Page 14: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/14.jpg)
And what’s Mars?
An model, view, controller user interface framework for building native applications for the
OSX, iPhone and iPad
martes 2 de noviembre de 2010
![Page 15: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/15.jpg)
Architecture in a slide
• Cocoa/CocoaTouch
• The ObjectiveCBridge
• Model, View, Controller
martes 2 de noviembre de 2010
![Page 16: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/16.jpg)
The bridge
martes 2 de noviembre de 2010
![Page 17: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/17.jpg)
Objective-C bridge
• Made by John McIntosh
• Present by default in all the latest vm builds
• Used on real applications for the iPhone
martes 2 de noviembre de 2010
![Page 18: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/18.jpg)
Objective-C bridge
• An object in Pharo forward mesages to Objective-C
• A proxy in Objective-C side interacts with a correspondent object in Pharo side.
• Everything is handled by semaphores waiting to do something, at both sides
• Yes, the coordination of that interaction is tricky, but the bridge does that for us.
martes 2 de noviembre de 2010
![Page 19: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/19.jpg)
The architecture
martes 2 de noviembre de 2010
![Page 20: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/20.jpg)
Architecture: View• As said, any control has it’s corresponding ObjectiveC
object.
• Everything is inside an Application
• Everything is
• a Window,
• a child of a Window, or
• a Dialog
• There are lot’s of controls already made, and more to come
martes 2 de noviembre de 2010
![Page 21: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/21.jpg)
Architecture: Controller
• Mars handles it’s actions through callbacks installed as a proxy between Pharo and ObjectiveC
• Any callback installed is a independent process in Pharo side
• Yes, there are lots of processes if you run Mars right now.
martes 2 de noviembre de 2010
![Page 22: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/22.jpg)
Architecture: Model
• It uses a standard “model” mechanism
• For malleability, we can use MRModelAdaptor
• It “borrows” something I saw in Dolphin.
• It is an adaptor for any model I need (well... at least any model I needed, but I can grow it later)
martes 2 de noviembre de 2010
![Page 23: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/23.jpg)
Really small demo
martes 2 de noviembre de 2010
![Page 24: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/24.jpg)
Problems
martes 2 de noviembre de 2010
![Page 25: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/25.jpg)
Problems found
• The “dead lock” problem
• Changed by changing the VM structure
• But now there are other problem: no scheduled proccess
• Being worked on by John and Eliot. Thanks!
martes 2 de noviembre de 2010
![Page 26: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/26.jpg)
Texto
The future
martes 2 de noviembre de 2010
![Page 27: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/27.jpg)
Next steps
• We are still someplace between “make it work” and “make it right”... but we will succeed! (and very soon)
• Needs testing (Maybe with FScript)
• Needs documentation
• Last minute addition: MRNibObject
Make it work, make it right, make it fast
martes 2 de noviembre de 2010
![Page 28: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/28.jpg)
Far next steps
• Mars for Linux and Windows?
• There are design issues, and abstraction layers are never a good idea (IMHO)
martes 2 de noviembre de 2010
![Page 29: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/29.jpg)
I would like to see... (1)
Standard VM MarsPlugin
PharoKernel Mars
MarsWorld
Other packages
Modular pharo in a standard (and/or Cog) VM
martes 2 de noviembre de 2010
![Page 30: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/30.jpg)
I would like to see (2)
• The “great and unique and fantastique tool rebuilding call”
• Our tools are most of the times old
• And our tools are always ugly
• Yes, it is an heresy... but a needed one.
martes 2 de noviembre de 2010
![Page 31: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/31.jpg)
Where is Mars?http://www.squeaksource.com/Mars
http://code.google.com/p/marsonpharo
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
![Page 32: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/32.jpg)
Where is Mars?http://www.squeaksource.com/Mars(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
![Page 33: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/33.jpg)
Where is Mars?http://www.squeaksource.com/Mars(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo(Nothing right now there, but binaries and
oneclicks will be there in the future)
http://groups.google.com/group/marsonpharo
martes 2 de noviembre de 2010
![Page 34: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/34.jpg)
Where is Mars?http://www.squeaksource.com/Mars(lots of garbage there, so be careful)
http://code.google.com/p/marsonpharo(Nothing right now there, but binaries and
oneclicks will be there in the future)
http://groups.google.com/group/marsonpharo(No trafic, but specific questions and etc. can be
sent there)
martes 2 de noviembre de 2010
![Page 35: Mars](https://reader033.vdocuments.us/reader033/viewer/2022052619/55504bc1b4c905b2788b5075/html5/thumbnails/35.jpg)
Questions?
martes 2 de noviembre de 2010