Skip to content

Reactive programming

September 29, 2023
March 13, 2016

Most of the study gears towards JavaScript/web development

functional-programming

Reactive programming - Wikiwand
The Reactive Manifesto

Intro to Reactive Programming - YouTube
Reactive Programming: Why It Matters - YouTube

Unveiling the Magic: Exploring Reactivity Across Various Frameworks
How reactivity actually works? - YouTube

Reactive programming and Vert.x tutorial: Reactica Coderland
Functional Programming as the Pillar of Reactive Programming - DZone Web Dev
The Best Explanation of JavaScript Reactivity 🎆 – Vue Mastery – Medium

The introduction to Reactive Programming you've been missing
How React isn't reactive, and why you shouldn't care - DEV Community

Actor Model

The actor model in 10 minutes
Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know...) - YouTube

The Next Programming Language - Douglas Crockford - code::dive 2022 - YouTube
Misty Programming Language: Contents

Signals

The Evolution of Signals in JavaScript - DEV Community
Evolution of Signals in JavaScript - YouTube

A Hands-on Introduction to Fine-Grained Reactivity - DEV Community
Building a Reactive Library from Scratch - DEV Community


xstream
staltz/xstream: An extremely intuitive, small, and fast functional reactive stream library for JavaScript

garbles/yolk: A library for building asynchronous user interfaces.

Xstate

XState Docs
davidkpiano/xstate: State machines and statecharts for the modern web.
@xstate/immer | XState Docs
Welcome to the world of Statecharts - Statecharts

XState Version 4 Released 🚀. It’s been over a year since I first… | by David Khourshid | Medium
The case for statechart and xstate -- why it matters and how we can benefit from it - DEV Community
How to use statecharts - Statecharts
XState Tutorial
An Introduction to XState in TypeScript - DEV Community
​State Machines in JavaScript with XState - JavaScript inDepth

Communicating with spawned and invoked xstate actors in React | by Ismayil Khayredinov | ITNEXT

State Chart XML (SCXML): State Machine Notation for Control Abstraction

Statechart =
{
  id: 'state_id',
  context: {
    /* ... */
  }
  initial: 'initial_state',
  states: {
    /* ... */
  }
}

MachineOptions =
{
  {
    actions: {
      /* ... */
    },
    activities: {
      /* ... */
    },
    delays: {
      /* ... */
    },
    guards: {
      /* ... */
    },
    services: {
      /* ... */
    }
  }
}

Machine = (Statechart, MachineOptions)
// Machine has `state`, `context`, `transition()`
// this is merely a declaration of state, not an instance
// `interpret()` it as as Service that stores the current value
// [Machine() | xstate](https://xstate.js.org/api/globals.html#machine)
// [StateMachine | xstate](https://xstate.js.org/api/interfaces/statemachine.html)

Service = interpret(Machine)
// Service has `start()`, `stop()`, `send()`, `onTransition()`
// [interpret() | xstate](https://xstate.js.org/api/globals.html#interpret)
// [Interpreter | xstate](https://xstate.js.org/api/classes/interpreter.html)

Resources | XState Docs
Showcase | XState Docs
darrylhebbes/awesome_xstate: Everything awesome about XState

Playgrounds/Visualizer

XState Visualizer live preview your state
StatesKit | Visual Statechart and Finite State Machine editor live preview your state, more powerful
XState TS Viz Template - CodeSandbox with TypeScript support

amitnovick/xstate-devtools

@xstate/inspect | XState Docs open statechart at https://statecharts.io/, only works on web?
xstate/packages/xstate-inspect at master · davidkpiano/xstate · GitHub

Tutorial

The React Podcast #5: Finite State Machines with David Khourshid | News and podcasts for developers | Changelog
Modeling UI States in A React Form Component Using A Finite State Machine
Implementing a simple state machine library in JavaScript
Finite State Machines with React | CSS-Tricks
Robust React User Interfaces with Finite State Machines | CSS-Tricks
State Machines in React
Stop using isLoading booleans use status (state machine)
Coding a Finite-State Machine in a React Hook - The Non-Traditional Developer - Medium
Thoughts on state management with XState and ReactJS - DEV Community
rjdestigter/xstate-sample-kit: Sample or starter kit for developing web applications with reactjs, xstate, typescript, xstate/test, storybook, typedoc, fp-ts, and other libraries.
Introducing state machine advent: 24 bite-sized blog posts about state machines and statecharts - DEV Community
XState TodoMVC - CodeSandbox
Model-Based Testing in React with State Machines | CSS-Tricks
Intro to Xstate — a true state management library for react | Weekly Webtips
Computational Design Tsools games and UI sample
coodoo/xstate-examples: A series of examples showing how to model application state with statechart using xstate

Componentizing Application State - YouTube
thechangelog/quiz-game: Changelog's don’t-call-it-jeopardy game show where 3 contestants put their dev knowledge to the test

Video

XState: Let's pair program state machines and state charts with David Khourshid - YouTube
Introduction to State Machines Using XState | egghead.io
Introducing Construct Sturdy UIs with XState | egghead.io
Let’s learn state machines with David K. Piano! — Learn With Jason - YouTube
David Khourshid - Formal Forms with State Machines | React Next 2019 - YouTube
David Khourshid - Infinitely Better UIs with Finite Automata - YouTube
Crafting Stateful Styles with State Machines by David Khourshid | CSSConf BP 2019 - YouTube
#React Wednesdays: XState and JavaScript State Machines - YouTube
XState - Video Player & Nested States - Finite State Machines in React - YouTube repo example use XState + React, substate

Overmind

Overmind - OVERMIND
Using state machines - OVERMIND
Statechart - OVERMIND
React - OVERMIND

MobX

Introduction | MobX
mobxjs/mobx: Simple, scalable state management.
Becoming fully reactive: an in-depth explanation of MobX — Medium

MobX: Ten minute introduction to MobX and React
3 Reasons why I stopped using React.setState – Medium

Reactive Extensions (Rx)

ReactiveX
ReactiveX - Intro
Functional Programming in Javascript

RxJS
ReactiveX/RxJS: A reactive programming library for JavaScript RxJS 5.0+
Introduction - Learn RxJS

Introduction to Rx Rx.NET
dotnet/reactive: The Reactive Extensions for .NET
Reactive Extensions | Microsoft Docs

An introduction to reactive programming
Functional Reactive Game Programming – RxJS Breakout | manu.ninja
第 12 屆 iT 邦幫忙鐵人賽::用 30 天向世界宣告,這一年來鋼鐵般的歷練

RxJS with React Hooks for state management - LogRocket Blog

christianalfoni - RxJs the smartest dumbest tool ever
christianalfoni - Creating apps with observables

Introduction to Functional Reactive Programming with RxJS
10 Need-to-Know RxJS Functions with Examples
Learn RxJS in 60 Minutes for Beginners - Free Crash Course - YouTube

MVC to FRP by Gleb Bahmutov - Cycle Conf. Copenhagen 2016 - YouTube
slide notes
Building realtime applications with CycleJS and RxJS - Pusher Blog

Pubsub

PubSub for communicating between React Components - Coding Stuff - Medium

lukeed/vegemite: A Pub/Sub state manager you'll love... or hate

Cycle.js

Cycle.js
Cycle.js GitHub org
Basic examples › Cycle.js

Cycle.js Fundamentals from @andrestaltz on @eggheadio

egghead

RxJS Lessons - Screencast Video Tutorials @eggheadio
What Is RxJS? - RxJS Video Tutorial #free @eggheadio
Cycle.js Fundamentals - Course by @andrestaltz @eggheadio


RxPy

Valery Calderon - Reactive Programming with RxPy - PyCon 2018 - YouTube slide

C#

StateMachine Class (System.Activities.Statements) | Microsoft Docs
How to: Create a State Machine Workflow | Microsoft Docs

Simple state machine example in C#? - Stack Overflow

Inheriting INotifyPropertyChanged is too verbose, use a MVVM framework.
How to: Implement Property Change Notification - WPF .NET Framework | Microsoft Docs
INotifyPropertyChanged Interface (System.ComponentModel) | Microsoft Docs
c# - Implementing INotifyPropertyChanged - does a better way exist? - Stack Overflow

class TxtViewModel : INotifyPropertyChanged
{
   private string _path;

   public string Path
   {
      get => _path;
      set
      {
         if (value != _path)
         {
            _path = value;
            OnPropertyChanged();
         }
      }
   }

   public event PropertyChangedEventHandler PropertyChanged;

   protected virtual void OnPropertyChanged([CallerMemberName] string
   propertyName = null)
   {
      PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
   }
}

ReactiveUI

ReactiveUI - An advanced, composable, reactive model-view-viewmodel framework
ReactiveUI - Handbook

ReactiveUI - YouTube
ReactiveUI - A new way of thinking by Kent Boogaart - YouTube

Building A Cross Platform MVVM Pattern With ReactiveUI And Xamarin.Forms
Don't use ReactiveUI it's the opposite

Reactive property with ReactiveUI:

public class ReactiveViewModel : ReactiveObject
{
    public ReactiveViewModel()
    {
        Clear = ReactiveCommand.Create(() => { Name = string.Empty; });
        this.WhenAnyValue(x => x.Name)
            .Select(userName => $"Hello, {userName}!")
            .ToProperty(this, x => x.Greeting, out greeting);
    }

    public ReactiveCommand<Unit, Unit> Clear { get; }

    private readonly ObservableAsPropertyHelper<string> greeting;
    public string Greeting => greeting.Value;

    private string name = string.Empty;
    public string Name
    {
        get => name;
        set => this.RaiseAndSetIfChanged(ref name, value);
    }
}

Advanced Avalonia+ReactiveUI+Routing example · Issue #3605 · AvaloniaUI/Avalonia

Samples

Avalonia/samples at master · AvaloniaUI/Avalonia

Reactive MVVM on the .NET Platform | by Artyom V. Gorchakov | Medium
Build Cross-Platform Reactive .NET Apps | by Artyom V. Gorchakov | Medium
reactiveui/ReactiveMvvm: Cross-platform ReactiveUI sample app built for a talk at MSK .NET conf.

kentcb/YouIandReactiveUI: The sample code for my book: You, I, and ReactiveUI
reactiveui/Camelotia: Cross-platform sample .NET GUI for cloud file management.
AvaloniaUI/Citrus.Avalonia: Modern styles for Avalonia controls.