Smalltalking is pleased to announce the release of U8 platform. Since september 2011 we have been working hard building U8. Here is the results of our efforts, dreams and shared visions. It is also the begining of this newsletter sharing with all U8 users the U8/S8 state of the art as well the future direction of this project.
We recommend to consider U8 as a smalltalk medium to reach the next level of understanding of systems under the point of view of Object Technology. We experienced that the most powerfull features of Smalltalk emerges at early stages of U8 adoption and it is a comfortable medium for self-development.
U8 suggests as a baseline, five execution modes, called platforms:
WebThe Web platform comes in two modes. WebBrowser, web development image based. An initial image (u8.image.js) contains S8, with the added resources needed to manipulate the browser (DOM framework) and a minimal tool for "in-page" development (small screens)
[Start coding].
And Headless, a modular web development, based on demand and dynamic content. Headless in its most minimal form contains the S8 core and a booting expression determining the dynamic loading of a system that is modular and efficiently mounted on demand.
The basic tool set is identical to WebBrowser, but dynamically, the user can load additional tools and / or replace system contents on booting time, allowing iterative cycles of development [Start coding].
This platform provides a modified version of the Google V8 virtual machine (called S8VM) with the S8 core. Here, development is based on files, being the most primitive form of development in S8. On this platform you can dynamically link native libraries from third parties [Start coding].
Server (Node)This platform provides a virtual machine version of Node.js with the S8 core and facilities to develop smalltalk client-server applications. A high performance API calls mechanism is implemented at VM level and a fined grained model of foreign calls and structures (FFI framework) at smalltalk level [Start coding].
PG8 (A8 + PhoneGap)A8 Extension for runtime support multiple devices (iPhone OS, Android, Blackberry, Windows Phone, Palm WebOS, Bada, Symbian). It will be described in detail in further newsletter.
A8 AndroidRuntime enviroment for Android devices. It is a S8 montage on a native booting interface. Allows the use and exchange of smalltalk objects at all levels of the platform (total level access javascript and java). At the level of application does not require more than S8, and thanks to the reflective capabilities of the system, the interaction with native elements allows the interactive development [Start coding].
There is a recent work on MVP for U8/S8. Miguel Isasmendi talk about this development. Miguel can you tell us something about this project?
For a month and a half I am developing a GUI framework based on MVP. The choice of this architecture model over others, like a classic MVC or other paradigms, is based on the advantages of modeling a GUI using the concept of MVP, the separation into layers of its components
to build complex web applications obviously with emphasis in the client side of it, and the possibility of performing tests of the same
framework in the layer desired. The main features I aim and I would like are, build the basic smalltalk utilities like class browser, inspectors, etc.
Serialize settings gui (JSON), generating a reusable architecture to support a native flexible objects layer. Event handling optimized for
use in browsers and building applications "desktop-like" , "mobile-like" or "browser-like".
How much coverage of a traditional GUI is done?
At the moment I can instantiate a very basic hierarchy browser using presenters and simple or complex views, which
implements the basic widgets gui. I think the idea would be leave the "traditional" GUI concept (windows, buttons, links, etc.)
and support more complex views looking forward to make GUI's truly portable from/to mobile devices, for example.
Beyond that, the idea is also to provide in the future some widgets that apply new concepts of usability and design to the
widgets, by example, a enhanced way to handle a multiselect list view.
Basically i am building the abstraction layer above the DOM framework present in U8,
although it could be use another framework if necessary. I'm preparing the views to give the chance handle the
change of enviroment's context change. A "test case" of enviroment context change is the fact that windows
concept has to be redefined because we have two types of windows, browser windows, which have certain
properties and operations available, which we do not have much control, and "internal" windows which can be
controlled almost entirely, wich is not the case necessarialy in a desktop enviroment.
Is it possible a portable framework?
Yes. Below, in the lower level of views (close to the browser) there is a mini layer of views that colaborates
direct and heavily with the handles, this would be "native views", at this level it is portable, ie, this framework
could be used with views configuring DOM objects, as well other widgets framework.
A MVP point of reference is Dolphin. Could you mention some differences / similarities?
The common points are certain tree creation protocols and lists of views and presenters manipulation, although
there were changes to be different domains and environmental constraints. Also the serialization of views (in our
case we would use JSON). The "bootstrap" of a view is different because efficiency tweaks and the usual character
of a budding framework. Event handling is different, since we have to try to maintain as lightweight as possible,
it would not be beneficial to have too many event handlers for each handle, so events associated with an object
could not (in principle ) captured by overwriting a method #onClick for example. At the moment, event handlers
must be instantiated explicitly.
Betaworks meetings are periodic meetings (one per week) in a day and schedule of fixed duration, open to anyone registered as U8 user. These meetings aim to make progress together in U8 development and answer questions related with U8 (and S8).
Want to join next meeting? Send an email to info@smalltalking to get the date/time/duration and access information to enter the virtual room. Also you can check smalltalking mail list for a betawork announce, or you can read more information in our swiki.
A call (via Skype) and TeamViewer are required to join.