My Little Program
My Little Program

Sunday • December 24th 2023 • 12:24:42 am

My Little Program

Sunday • December 24th 2023 • 12:24:42 am

Two days ago, I was finally able to open up Blender, and look at geometry nodes through the eyes of a programmer.

I immediately noticed that they faced the same concern I did, and only install an input box, after the mouse down event.

I always assumed, they had wide open input boxes, that were just well behaved in an efficient graphical environment.

But they do a little switch-a-roo, right after the mouse is pressed, and before it is released.

Up until now, I was concerned with fragments of my program, such as “how to do” when a value changes, the what is easy.

I started the development ages ago, it is hard to define, early 2000 maybe as accurate as any other guess.

Every issue I faced outside of my program, turned out to have a solution, in it.

Visual programming enhances our ability to deal with complexity, by helping us create stuff boxes and lines first.

It is an upgrade to our comprehension, imagination, recognition, short term, long therm memory, and it helps us code fast.

Your hands do not need to leave a keyboard, just hit tab, to create a new node.

Fortunately, everything in our age is broken, all of it, files can be overwritten, databases demand transactions and replication.

And frameworks are all, some kind of a strange misunderstanding, because it is not possible to build an application without OOP.

We must be able to say Application, application.start(), await Application.Api.loadFile(), and Applicaion.view[0].start().

Then the View of our application, must absolutely have a hierarchy of components.

Node[0].body.caption.text, Node[5].body.rows.add(statusBar).

It is disturbing, when people say that OOP is to control the masses, Object Oriented Programming, means Concept Mapping.

It means sanity, of a strong application architecture.

Bastardized JavaScript that that demands AST pre-processing, on an element, is not the way.

Eliminating syntax mangling, still does little.

Readably interacting with the Document Object Model, is just a few short functions, it is all it takes.

Frameworks, don’t work, they just help to program without knowing everything.

My program does not depend on a frameowk, and extends Object and Array into ReactiveObject and ReactiveArray.

It is just a few lines of code, and everything updates automatically.

In fact, when subscribing to changes, the subscription should trigger the change callback immediately.

This way whatever is observing it, will instantly initialize.

Application architecture allows wrapping underlying complexity, I travel from HTML to SVG, and then a well positioned foreignObject, meaning back to HTML.

And Object Oriented Application Architecture, where view components behave somewhat like Java Swing smooths all of that out.

In Svelte, the pre-rune version (I am sorry), you just end up dumping data into DOM nodes, Wild Wild West style.

And Svelte is a wonderful framework, very friendly and about as far out of your way as a framework can be withut mangling the JavaScript syntax.

JSX and Typescript, and the ancient CoffeScript, greatly multiply the liability that code already is by default.

Messing with the AST is fun, until a decade passes, and your code isn’t just older JavaScript that can be automatically updated.

But an unholy combination of outdated plugins, and total lack of long term support by those who solved problems that nobody had.

Same applies to HTML template engines, don’t use them.

Make a tool that converts HTML to JavaScript, and stop asking the DOM to find the nodes, that you should already have access to.

My program didn’t just just drag me though what frameworks obscure, but also the world of graphic design.

I needed to understand colors the way a painter does, so learned photorealism in Krita, I understand the gentle dance of color.

But more than that, I started a revolution at least in me, just about the time when everyone ran away from Skeuromorphism.

Which just makes UI components look like, strange little real world objects.

To me flat design, if even a bigger excuse, than using programming frameworks.

And my revolution brings ideas from the Futuristic/Fantasy User Interfaces, into the themes of my little program.

I will never tolerate it for long, and see flat themes as unfinished, the program will ship with multiple efficient skeuromorphic themes.

My little program is made with Level Of Detail and Zoomable User Interface, in mind.

I am developing it on a low power SBC, or single board computer.

I can see the cost that graphics have, and will take great pleasure in creating efficient line based alternatives.

To allow for making large graphs on low powered computers, and make the program fun for all.

Finally, creating a visual programming language is not an aim, but a power to create graphic tools that help with mapping out complexity.

That is also something the computer world forgot about, writing code, should be second.

To creating a beautiful interactive application diagram, that will snap all the system components together and grow with the application.

And even more than that, it should ship with the final application, the way browsers allow for view source and ship with various development tools.

Users should be allowed to mod or upgrade anything they need, above all, programming is about the freedom to invent and turn thoughts into reality.

This is not just a lesson for commercial closed source applications, but open source ones, especially the large ones.

Users should be allowed to drag and drop new things together, modding is an important freedom, that must never, ever be ignored.

Make the code understandable, make it clear, allow new programmers to grow the applications inside out.

Artwork Credit