Thinking Outside Windows, Where Developer Experience And Power User Experience Is One And The Same
Thinking Outside Windows, Where Developer Experience And Power User Experience Is One And The Same

Wednesday • December 14th 2022 • 11:03:20 pm

Thinking Outside Windows, Where Developer Experience And Power User Experience Is One And The Same

Wednesday • December 14th 2022 • 11:03:20 pm

Preface

This is about programming virtual desktops, into websites or behind the main layout of a website.

It talks about web technologies, yes, but keep in mind...

That any full=screen window of any programming language, can be the beginning of a brand new desktop experience.


Thinking Outside Windows

We are all brought into the concept of a Desktop Window, and it gets even worse.

Because, not only do we not always get the whole window, but then everyone wants us to just layout documents.

That is what web page design is, laying out documents.

Even on the programming end, from the window, we are thrown into a text editor.

Then document tabs, followed by multi-line functions and lines.


Then after all is said an done, we end up with the need to assign data types to our variables.

Because the programmers companies hire, are not capable of grasping entire programs.


We go down this even narrowing User Interface road, and then lose the ability to see what is going on.

We now need, class diagrams, sequence diagrams, even code analysis and visualization.

The soon enough to be hundred years old command line, brings comfort, as the UI tries to squish us.


Break out, stop doing everything with document layouts, and ask your users to press F11 to go into the power-user mode.

Where the initial interface, pops down into a window.

Because, once they go full screen, they enter virtual desktop mode.


Now, you get to create everything, it is not that hard.

Just look at the desktop icon, we know it as something that starts a program.

The hell, with that, make icons on your virtual desktop open other desktops.

Give each desktop an application launcher, sure.

But, why are we closing windows, when we work on something…

We shouldn't need to close the windows, we are likely to need to make changes.

Or return to whatever project, in five or ten years…

And having all the windows still three, is huge.

A window is almost just five pieces of information, x and y, width and height, and the name of the application within it.

To need to close a window, especially on a virtual web desktop, is madness.


I will close with programming, there is a lot of confusion here.

First of all, functions are great, so as long as their arrangement is simple.

Objects, make for really good envelopes, setters and getters can report when properties change.

But this has to be kept simple, or everything will bork.

Functional programming, has it figured out, with the compose function.

And ExpressJs, or Koa, nail the workflow.

--

Use pushes a function into the stack, And all the functions in a stack, share context.

That is it, to log a use in, yo place the username and password in the context of the stack of functions.

And now trigger all the functions, in the sequence they were added in.

Allowing them to mess with the context, convert the login pair to a session id.

It is just a one dimensional array of functions, that all receive the same shared object, the execution context.

The use function that pushes a function onto the execution stack, or registers middeware, belongs to a class that extends the event emitter.

Now you can have an on error, and it is OK to await functions.


Now look what you have here, functions in a line.

Why don’t you connect them with a line, create a window on your virtual desktop for each function.

And connect the windows together, with an SVG line.

Now, some of your desktops, represent programs.

You can give the functions unit tests, of even just describe them with BDD, withut any coding.

You can slowly upgrade your virtual desktops, to be written with these visual programs.


You can even let your users, upgrade your system.

And send you some pull requests. Or form a community around a specific set of upgrades.

Make their own web desktop, think outside the window.

Artwork Credit