Reactive and real-time systems often require temporal and logical safety, concurrency and determinism. Several asynchronous and strong synchronous answers have been proposed to this problem. However, asynchronous languages such as CSP or CCS force the user to choose between determinism and concurrency, for they base concurrency on asynchronous implementation models where processes nondeterministically compete for computing resources. On the other hand, strong synchronous implementations are purely sequential. The aim of this paper is to present a new paradigm for reactive distributed programming, weak synchronism, responding to concurrency and determinism. We define a small language of communicating reactive kernels, and characterize it by an operational semantics. This semantics is then discussed w.r.t. three criteria, responsiveness, modularity and causality, formulated by C. Huizing in [10]. We show that the weak synchronous paradigm provides a deterministic semantics of concurrency, and we propose finally an execution model on a distributed architecture.