2025-03-28-Limbo.png

i just thought that the Umfeld is in such a limbo state ( get the reference in the visuals? ;) ). let me explain:

Umfeld tries to stay VERY close to the original, what i call, Processing idiom, but then at the same time, i believe it is a good thing that i am not transmogrifying the source code from Java to C++. why? not really sure but i believe that there is some potential in keeping the frontend ( i.e Processing idiom ) but reworking, rethinking, rewriting the backend. it feels like moving to a new apartment. well, but to be fair our community is also known for leaning towards reinventing wheels. here we go. on the down-side i feel ( at least at the moment ) that Umfeld is really falling short on quite a few things compared to Processing ( especially in terms of graphics performance ). hmmm, 🤔.

another limbo state is that between C and C++. the core functionality of Umfeld is implemented in a weird kind of C-style C++ code. it is using a lot of C++ features and functionality ( e.g namespaces, standard library for strings and collections ) but at the same time the whole subsystem structure makes use of the pre-OOP style structs with callbacks ( i.e what’s referred to as a class in classic object-oriented programming (OOP) is implemented via a struct that is mainly comprised of callback functions that are invoked by the host ). honestly, i was also doodling around with that concept a bit and to be fair, it does have some benefits over C++ OOP ( e.g no vtable hell ). and slightly but not entirely related is this video Nic Barker: Intro to Data Oriented Design for Games which i REALLY enjoyed watching.

and a third kind of limbo state is that between OpenGL, in all its different flavors ( i.e OGL 2.0 fixed-function pipeline vs OGL 3.3 core vs OpenGL ES ), which is limbo in itself, but then also due to the Damocles-ian deprecation of OpenGL entirely by Apple, and the resulting need to look or at least plan towards the successors such as Vulkan, Metal, and/or DirectX. for example, the initial implementation of Umfeld just relied on OpenGL 2.0 and the fixed-function pipeline as it resonates well with the Processing idiom. however, i felt like i had to move on … and keep things flexible ( «< IMHO the sugar-coated, technical version of being in limbo state ).