4 Home
Stefan edited this page 2025-07-15 16:20:05 +02:00

GATE C / C++ Framework

The GATE project is a private C library framework including a C++ high level layer to reclaim and preserve C and C++ software technologies from classic desktop application development and to unite it with modern target platforms.
It is also an interface study to test the integration of modern coding patterns into elder compilers and to find advantages and limits of direct bindings to platform specific APIs.

History

I have worked for several companies during the last 20 years as a software developer and did implement services and user interfaces running in different environments.
Frameworks have changed with the arrival of mobile devices and desktop machines are not the focus of software development anymore.
Documentation regarding classic coding is already vanishing from the internet due to company dissolutions and closed websites.

On the other hand we see divergent ABIs in different compilers on the same platform which brings barriers between software components. Especially C++ codes suffer from disagreement about what technology should be standard and what is removed from it.

Mission

The C programming language is the only light weighted utility to write code for every platform and to be consistent regarding code composition and binary compatibility.
We need to wrap platform details into stable C-function interfaces and utilize any other programming language with them to implement high-level easy-to-use application code.

The GATE project is:

  • a C library (C90) to wrap platform details into a generic platform-independent interface.
  • compatible with a great amount of current and ancient C compilers.
  • specialized to run with different OS variants from the past 30 years.
  • supporting static or dynamic (shared library) bindings.
  • based on free open-source algorithms and public domain knowledge.
  • bringing modern concepts (shared pointers, delegates, etc.) into the C world.

The GATE project is also (or will be):

  • a thin C++03 wrapper library based on C based GATE code (without STL requirements).
  • compatible with newer C++ language features when they are available (C++11).
  • able to run with or without C++ exception semantics.
  • a host for LUA and Python code execution.
  • a collection of demo applications showing text, UI, 2D and 3D programming.
  • a ZIG module that offers GATE features to ZIG based projects