Programming All The Things
Sunday • July 21st 2024 • 10:50:31 pm
Don't worry about AI, it won't replace the programmer.
Just like it won't replace the artist, or the composer, or musician, or movie maker.
A real computer program, is an extension of its creator.
The two need each other, as their solution patterns match.
It is all too easy to abstract away, what programming is about.
Good computer programs, like art, change lives.
Bad computer programs, cause frustration.
It matters not, that a program has a huge team, and AI.
If all it does is makes your life, more difficult.
And before you say anything, there are perfect applications.
They are the ones that help you, create what you need.
While lolling you into a, creative mood.
They feel like a computer game, but they freak you out by delivering results.
You sit there playing around for a bit, and walk away accomplished.
It is a very strange feeling, to create something more without adding more.
These programs are rare, because they eliminate need for apps and applications.
No big company will want you to succeed, because it is easy to defeat them this way.
More than that, you, should create visual programming environments.
And empower your users, to make their own programs.
Rather than buying, from walled gardens.
Here a professional seasoned developer, will check me.
They have all seen visual programming, across many technologies.
But it always failed, never delivering all the way.
Many of them had to go in there and program, inside impossible little text boxes.
In various flavors, of regrettable B&D languages.
If they were willing to quit their job, and start building the perfect VPL.
They would quickly, change their mind.
There are two kinds of computer programs, commands and applications.
Commands do all the work, and should in fact be simple and do one thing well.
An application ought to aim for [tense] and [cuspy] commands, though these system have jobs to so.
When you have to perform a task, elegance will wisely need to come second.
But look what we just described, simplicity of the highest order.
There is nothing here, that will force a coder to B&D.
A visual language can accomplish a lot with just, run query, filter, map, and reduce a list to an object.
An all of these connect, in a single line.
A VPL needs but to encapsulate an elegant library, like lodash or the functional side of vanilla JavaScript.
To triumph over all the challenges, and complexity that an application could ever possibly demand.
Which leaves us with applications, the graphical shell that executes thoses commands.
Commands without the application, are very powerful.
Programming workflows, is in my opinion better than programming applications.
But applications, and Apps, are not some challenge.
But you have to start by creating a skeleton, a tree, a file system.
And this must be static, when you need to change screens.
You must NEVER! remove a branch, from the skeleton.
You simply hide or unload, the other branches.
They are still there, just not active.
You are always in control, nothing is missing.
The core of your program, doubles as a concept map of all your concerns.
Initially when all you have is a skeleton, you get blank pages in your application.
All you need to make a skeleton, is the wikiwiki pattern.
You are just linking things as needed.
And once you have a content tree, a sturdy skeleton.
You just throw in some UI components, into the blank pages.
Here, things can be dynamic, a grid that can accept new rows.
A list of messages, waiting for more.
And buttons, and actions, and tasks, everywhere.
Those buttons, trigger commands.
Which manipulate data, but also turn things on and off in the skeleton.
Now again a battle tested programmer will say, this thing is heavy as heck.
But is that what the world collaborative encyclopedia is? heavy, no, it is article at a time.
And so in this application, user moves one UI at a time.
For integrity, we use state machines.
A state machine, always puts you into an initial state.
And it gives you an easy way to trigger change, for example an action called next.
And that action can put you in a different state, you will go from initial to logged-in.
And then logged in state will have its actions, and the actions of the initial state will no longer be accessible.
This enforces what you can and cannot do, and that is it.
Finally, a note for that disenchanted coder.
If you can execute it on the command line, you can make it beautiful in a Visual Programming Language Workflow.
And the rest is just Drag and Drop UI, bound to data in the same tree.
Which is again just manipulated, with commands.
Under the watchful eye, of state machines.
Whether you are just learning programming, or want to unlearn it and raise geese.
You are meant to grow all they way up, and become a great being.
If you hate Programming, it is because someone poisoned it for you.
You got to get the poison out, and start working for yourself.
And I encourage you to start with the open source electron, which is a web browser on top of a server side JavaScript engine.
This means, you get web browser technologies, but retain power over the Operating System.
You don't even have to start by coding a VPL, just lookup visual programming and take it from there.
Let me make it clear, if you are tired and bitter, it is time to break away and heal.
And if you are just starting out, the world of programming has never been more beautiful.