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.