Here are several good reasons to switch to sC++
Simpler support for concurrency
sC++ provides a simple notion of thread embedded in active objects:
the active objects actually ARE the threads ! An array of threads is as
simple to declare as an array of usual (passive) objects. sC++ only defines
three new keywords: ACTIVE, ACCEPT and SELECT, and is 100% compatible with
C++.
Simpler interprocess communication
The syntax of the communications between active objects is the
same as the syntax of the calls made from the main to passive objects or
from passive to passive objects. An active object ACCEPTs a call whenever
it is ready to receive it. It may SELECT one out of several calls or
acceptances. sC++ avoids the use of semaphores, channels, signals, or any particular
real-time library calls, and its IPC means compare very favorably with both Ada
and Java.
Simpler computer human interfaces
The encapsulation of Motif in active objects makes the creation and
the reading of graphical objects straight forward.
Simpler computer to computer communications
The encapsulation of sockets in active objects makes it possible
to establish a communication between two computers with only four
statements in total, including he handling of the daemon socket.
No need of event loop or wrappers
Assembling different components around the notion of event loops,
is always difficult, because they all have their own interface idiosyncraties.
Wrappers have been proposed to solve that problem, but they are most of
the time strongly linked to particular applications too. Active objects
offer a much wider independence between components. The software engineer
can put a display interface based on Motif, an HTTP server, CORBA servers
and clients, as well as bare TCP sockets in the same program, simply by
instanciating them side by side.
Structure for application behavior
Current object oriented methodologies offer little guidance for the
design and the implementation of the code that calls the operations of
the objects at the right time and in the right order. Active objects provide
a clear means for defining the local behavior of the objects as well as
their global coordinated behavior.
Behavior modeling and analysis
sC++ applications can be modeled and analysed without preliminary
translation to a formal language, as its inter-object communication (or
IPC) mechanism has a very precise semantics.
Development support
A number of development tools are available and others will soon be. They
include the extended gcc compiler, a task level debugger, a random analyser
(random walk through the state space), an exhaustive state space analyser,
an IDL to sC++ compiler, a graphical editor for distributed application,
a model checker (in preparation, it will support temporal logic), various
libraries (GUI, sockets, graphic)
Availability
The environment runs on UNIX, (SUN, SGI, ALPHA), LINUX and is currently
ported to Windows'95. Everything is free of charge on the web (http://ltiwww.epfl.ch/sCxx).
A text book is available in French. An English version is in preparation.