Skip to content

Languages and frameworks

This quadrant covers core programming languages, schema definition languages, and data serialisation formats used across our embedded firmware, edge gateways, and cloud platforms.

Ring: Adopt

C

  • Status: Adopt
  • Tags: embedded, firmware, real-time, c99, misra
  • Rationale: C remains the unmatched industry standard for resource-constrained microcontroller development and RTOS kernel programming. With deterministic memory layout and zero runtime overhead, all bare-metal drivers and low-level task code are authored in C99/C11 conforming to C Coding Standards and MISRA C Guidelines.

C++

  • Status: Adopt
  • Tags: systems, embedded, c++17, gateways
  • Rationale: Used primarily on mid-tier gateways, edge computing appliances, and complex protocol decoders where object-oriented abstractions, RAII resource management, and templates provide strong type safety without sacrificing performance. Restricted to a safety-conscious subset (avoiding exceptions and heavy RTTI).

C# (.NET)

  • Status: Adopt
  • Tags: backend, cloud, enterprise, testing
  • Rationale: High-productivity language for enterprise services, desktop manufacturing test benches, and high-throughput cloud back-ends running on modern .NET 8+.

Rust

  • Status: Adopt
  • Tags: systems, memory-safety, embedded, cloud
  • Rationale: Adopted for new performance-critical cloud microservices and selected edge components requiring uncompromising memory safety without garbage collection. Its ownership model guarantees thread safety at compile time, eliminating entire classes of concurrency defects.

Python

  • Status: Adopt
  • Tags: scripting, automation, testing, data-science
  • Rationale: The standard language for continuous integration automation, automated hardware-in-the-loop (HIL) test suites, cloud data engineering pipelines, and rapid prototyping. Conforms to Python Coding Standards and PEP 8.

Go (golang)

  • Status: Adopt
  • Tags: cloud, microservices, concurrency, cli
  • Rationale: The preferred language for high-throughput network daemons, API gateways, and distributed cloud microservices. Its lightweight goroutines and compiled single-binary deployments provide exceptional operational simplicity.

Protocol Buffers (Protobuf)

  • Status: Adopt
  • Tags: serialization, binary, grpc, iot
  • Rationale: Strongly-typed, compact binary serialization format powering all internal microservice gRPC communications and constrained IoT telemetry streams. Reduces payload sizes by 60-75% compared to JSON.

JSON

  • Status: Adopt
  • Tags: serialization, web, rest, text
  • Rationale: The standard data interchange format for public RESTful HTTP APIs and web dashboards. Paired with RFC 9457 for structured error reporting (GU-020).

YAML

  • Status: Adopt
  • Tags: configuration, iac, docs-as-code
  • Rationale: Standard human-readable configuration language for Kubernetes manifests, GitHub Actions pipelines, and Docs-as-Code publication manifests.

GraphQL

  • Status: Adopt
  • Tags: api, frontend, query-language
  • Rationale: Adopted for customer-facing web and mobile dashboards where front-end applications require flexible, aggregated data fetching from multiple underlying microservices in a single round-trip.

Ring: Assess

CERT C

  • Status: Assess
  • Tags: security, coding-standards, embedded
  • Rationale: Evaluating SEI CERT C coding rules to complement existing MISRA C compliance, specifically focusing on mitigating cyber-security attack surfaces and integer arithmetic vulnerabilities in connected IoT devices.

MISRA C++

  • Status: Assess
  • Tags: safety-critical, embedded, c++
  • Rationale: Evaluating MISRA C++:2023 guidelines for application in next-generation edge gateway runtimes where modern C++ features are adopted under strict safety requirements.