[Pharo-dev] [ANN] "OS" and "OS-Windows" project on STHub

Torsten Bergmann astares at gmx.de
Wed Sep 18 17:49:04 EDT 2013


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:


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.

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

More information about the Pharo-dev mailing list