Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is also very much like the pick operating system, currently the biggest multivalue operating systems are UniVerse, UniData and D3. If you want to try them out, look into scarletdme. The multivalue style is a total mind bend at the beginning!


When I think of Pick and PickBASIC, I also think of the old MUMPS programming language+database. Where the values in the database are exposed to the programming language as "global variables," and the data structure the database stores is a sparse multi-dimensional array. Still around, mainly for the healthcare and banking industries, in currently-maintained implementations... InterSystems, GT.M, and YottaDB (the latter two being free software).


My first job was supporting an in-house system built in UniVerse. My second job was supporting a commercial ERP that ram on top of UniData.

I like the more modern stuff I work with now, but I truly miss the multivalue world some days.

Every once in a while I install the UniVerse personal edition and build something for fun. I will definitely check out scarletdme!


Because I'm just a straight nerd for BASIC here are some links!

A quick guide to getting started with scarletdme: https://nivethan.dev/devlog/scarletdme.html

Unfortunately I never ported my editor and shell to scarletdme so this will be UniVerse/UD/D3 specific:

An editor like vim: https://github.com/Krowemoh/eva

A fish like shell: https://github.com/Krowemoh/nsh

scarletdme in the browser(this will be a 500mb download as it runs debian under v86.js): https://nivethan.dev/projects/v86/scarlet.html


Very nice - scarletdme in the browser is brilliant!

The two things I do to start playing in a new MV environment both worked exactly as I hoped they would:

    LIST VOC
And

    ED BP BLAH
    I
    PRINT "THIS IS A TEST"
    
    FIBR
The environment feels very normal and reasonable, as far as a multivalue system goes. The only differences I came across are minor, like compiled programs going in BP.OUT instead of BP.O or the debugger being called DEBUG instead of RAID.

I definitely need to set this up and seriously play with it! I periodically download a new copy of UniVerse PE to play with, but this is something I could actually do real work in.

Believe it or not, I actually like working in ED and/or AE.

At one point (back in the UniVerse job), I wrote my own shell. It was basically a REPL that passed whatever you typed to EXEC, except for one nifty trick. The trick was that there were two REPLs in the program - one which worked normally, the other executed within a BEGIN TRANSACTION/END TRANSACTION block and had commands to commit and rollback. Having two REPLs was a concession to get it to even compile because BASIC required that BEGIN TRANSACTION and END TRANSACTION form a block, you couldn't just arbitrarily call those commands. I didn't even bother building a history mechanism, it was literally just a REPL that could work within the context of a transaction. It was incredibly useful.


That sounds pretty cool. I'm guessing you created a transaction block and then executed commands inside it, giving you a way to mess with the system without borking it.That is brilliant and is giving me all sorts of ideas :)

Honestly the best programmers are out here using ED. 0 syntax highlighting and you can only see 40-60 lines at a time. Insanity.

There is a 64bit version of scarletdme in the dev branch and the instructions are the same, it should work on both debian and centos.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: