Hi,

with NativeBoost (NB) it is now possible to access not only external libraries 
but also the 
underlying operating system platform. Some examples are already included in the 
"NativeBoost-Win32", "NativeBoost-Unix" and "NativeBoost-Mac" categories within 
the NB project.

But providing more and more examples and native API wrappers for the various 
platforms 
directly within the NativeBoost project itself would only bloat this project. 
NB should care
about being a good external interface - nothing more.

To keep NativeBoost clean with the basic functionality for a good foreign 
function 
interface Igor suggested to move specific API wrappers for the various 
operating systems into
own project. To avoid duplicate effort in providing such wrappers it would IMHO 
make sense to
host them in a central place.
 
Therefore I created the "OS" Team on SmalltalkHub with a first project called
"OS-Windows" allowing you to access Win32/Win64 functionality easily from 
within 
Pharo. It contains code, tests, many examples and documentation as a first 
contribution.

With this initial project for Windows you can now work with the console, Shell, 
the internet 
explorer, GDI, windows processes, Control panel applets, ...
 
I refer to the written documentation and many examples given at:

  http://smalltalkhub.com/#!/~OS/OS-Windows

Provided code for Windows is stable and usable, if you have something to share 
to make 
it even more complete then you can easily contribute (how is described in the 
docu).

Code is for Pharo 3.0 - you can load it easily from the config browser in a 
recent image.
Try the examples given in the docu on the project page, look at the tests to 
get comfortable
with it.

Important:
==========
Note that this idea is NOT LIMITED TO WINDOWS - it would be good if we could 
see pair
projects like a "/~OS/OS-Mac", or "/~OS/OS-Linux" and others under the same 
umbrella
so it follows a common pattern and is easier to access for people who require 
it.

If someone asks if Pharo is platform independent I will answer: YES. If he asks 
if 
it is also playing nicely with the underlying platform to use platform 
dependent functionality
I would also like to answer YES.

If he wants to do some Mac stuff I would like to tell him: "just load "OS-Mac" 
from the
config browser and start. Same for Linux, Windows, Android, YouNameIt, ...

I can only provide a start for the basic framework with the hope that others 
will
contribute as well and getting it into good shape as yet another good step for 
the 
possibilities in the Pharo universe. 

Side note:
==========
You can read the docu online at the SmalltalkHub project page 
(http://smalltalkhub.com/#!/~OS/OS-Windows)
- but also as a class comment on the ConfigurationOfOSWindows. If you have the 
"Pharo Online Help" 
loaded you can also view it there. 

Keep on talking small
T.

Reply via email to