๐Ÿ’พ Archived View for bbs.geminispace.org โ€บ u โ€บ norayr โ€บ 11785 captured on 2023-12-28 at 17:30:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

โžก๏ธ Next capture (2024-02-05)

-=-=-=-=-=-=-

Comment by ๐Ÿ™ norayr

Re: "When it comes to arbitrary, "realtime" composability, the..."

In: s/permacomputing

in traditional oberon system there are no processes that run in parallel or pseudo-parallel. the task switching occurs when one function finishes its work and the other function takes over.

they consider that the commandline concept is outdated, since it was about printing on the paper and the text printed on the paper would become immutable. that concept came from the time when we didn't have yet crt monitors.

still, traditional oberon system is text based. it is modular, and the module named Texts is one of the base modules of the system.

everything is text in oberon system.

the manuals are text files with extension .Tool.

they contain ready to use commands: module.procedure

๐Ÿ™ norayr

Nov 17 ยท 6 weeks ago

6 Later Comments โ†“

๐Ÿ™ norayr ยท Nov 17 at 14:21:

let's say the compiler command is there in two ways:

Compiler.Compile ^

Compiler.Compile *

you can write Compiler.Compile somefile.Mod everywhere, in any place you can find in the Oberon tiling ui.

however if you have the manual (the abovementioned .Tool file) opened in one of the viewers (windows are called viewers there) and then you select the file name to compile in any other viewer, then click with the mouse middle click on

Compiler.Compile ^

then instead of ^ the Compiler.Compile function will pickup the file which name you selected.

๐Ÿ™ norayr ยท Nov 17 at 14:25:

or maybe you wrote some test code in an editor in one of the viewers but didn't save it to the file system.

you just navigate the mouse over that window and press F1 button. then the viewer will be marked with the asteriks sign.

after that click on

Compiler.Compile *

and the code in the marked viewer will be compiled.

some of these concepts are borrowed in ACME text editor of plan9 by rob pike. however it feels much more consistent in the oberon system text oriented system.

๐Ÿ™ norayr ยท Nov 17 at 14:30:

i think our 'monolite' gui programs are what the capitalism and marketing produced to sell us software.

even in unix (and unix is still a government funded research project, it is not a startup) we have window managers, then we have terminals, we have text editors, compilers, debuggers etc.

each of the programs in this chain can be replaced. twm can be replaced with dwm or fvwm or windowmaker.

emacs can be replaced with vim or nano or whatever.

xterm can be replaced with rxvt or mrxvt or st or whatever.

everything is replacable.

on the contrary in the capitalistic software we have IDE's that replicate the functionality of everything below.

IDE's have own window managers - but we already

๐Ÿ™ norayr ยท Nov 17 at 14:31:

but we already have window managers.

plus we could use other window manager instead of this one, but we cannot when we are in IDE. IDE has its own window manager and you should deal with that.

IDE has its own editor.

oh, you don't like it? MS VSCode will support vim mode, but it is still MS VSCode. MS VScode will make everything possible for you to use it and not understand the taste of underlying interchangable interoperable system.

๐Ÿ™ norayr ยท Nov 17 at 14:35:

i think it was possible to find another path.

swiss found, as i presented in previous comments.

and i can imagine a modular ui program. you have a chat program pidgin? what it consists of? a window to show contacts. you don't like it? why cannot you replace it with other window that can show contacts?

you have window divided in to two field? on the topper one you see what was written to you and in the bottom you write your text?

why cannot you replace it with other window like that?

and those both can communicate with each other and with the service that implements the protocol.

oh you have a video call viewer? why cannot you replace it with other one?

๐Ÿ™ norayr ยท Nov 17 at 14:38:

or why pidgin doesn't communicate with the program like mplayer with pipes to pipe the video stream to mplayer so that you could watch the person you are talking with?

why pidgin has to implement it again?

well - we have shared libraries - you would say.

and then i'll come back to the oberon ideas. they don't have shared libraries. the module is compiled to the object file.

each object file can have multiple entry points, there is no main(). as in case with Compiler.Compile there can be Draw.Curve and Draw.Line.

there are no linked 'programs' that contain one entry point.

everything is a library or a program - why should be there a difference?

Original Post

๐ŸŒ’ s/permacomputing

When it comes to arbitrary, "realtime" composability, the Unix model of files, streams, and processes has yet to be topped. GUIs are vey rarely composable, and also hard to script. It makes me think maybe composability has to be one dimensional, and textual. This idea that a keyboard is fundamental to a computer but a different pointing device doesn't feels slightly off. I wonder if there is an elegant multi dimensional method of composability which simplifies down to simple compute models and...

๐Ÿ’ฌ gyaradong ยท 14 comments ยท 1 like ยท Nov 14 ยท 6 weeks ago