Holochain Forum

Future of Coding

Hey, any body of you having read this article By Paul Cisuano:
https://pchiusano.github.io/2013-05-22/future-of-software.html

I think this matches the philosophy of Holochain pretty well
and solves complementary problems to what Holochain solves.
It will still take quite some time till the unison language that
Paul Chiusano et al are developing is truly “production ready” though.

Unison is (to my knowledge) the first fine grained content addressed programming language.
Just like Git, Nix, IPFS, and of couse Holochain is content addressed.
But unison is extremely fine grained at that.
Per closure fine grained that is.
Though there is much more to the “future of coding”
than just the unison language …

Enso (formerly Luna) is a second language in
the “future of coding” space that really seriously aims at practical usability.
Unfortunately enso is not content addressed as unison is.
The Enso devs are earlier than the unison lang devs with
their visual projectons of their internal code representation.
So it might give some preview?

Beside those two projects that seriously aim at practicality there
are many cool proof of concept demos of projectional languages:
Including but not limited to:
Fructure, Lamdu, Hazel, The Subtext demos, Isomorf, (odd one out: Eve), …
Here’s a linklist to some more:
https://www.reddit.com/r/nosyntax/wiki/projects

And there are higher level systems along
the lines of what Bret Victor presents in his presentation
“Drawing Dynamic Visualizations”


vimeo alternative https://vimeo.com/66085662
I can highly recommend watching this!
There is also the sketch-n-sketch demo in sort of this direction
http://ravichugh.github.io/sketch-n-sketch/
These higher level systems will desperately need the above mentioned
lower level projectional languages to become truely scalable.
I can’t go into details here but I am thoroughly convinced that this is the case.

Pretty much all of Conal Elliotts research work is highly relevant.
Especially including “Tangible Values” that is:
Projecting code into GUI interfaces and thereby making them truly composable:

I hope such ideas can be combined with Holochain at some point in the future.
Realistically this is not any time soon though.
Holochain is already a bit ahead of its time by choosing Nix and Rust.
But what I described above is a whole nother leap.

Related links:
https://www.unisonweb.org/


(both of these have notable slack communities)

To be continued …

1 Like

I have some Ideas for a peculiar code projection myself.
A code projection for a projectional language (like e.g. unison) as I introduced in the preceding post.
A code projection that lies smack in the middle between:
★ classical textual and
★ classical visual representations
Here are some mockups:

Simple examples:
polar to cartesian conversion:


quicksort: (scroll down there)

Drag and drop of program fragments (with typed input and output holes)


The inverse: Drag and drop of typed holes within programs:

Visual identicons and arity cues for unsaturated program holes:

In place code browsing via Zooming UI: (scroll down there)


Peeking into the (live) control flow multiverse:

The dreaded Monad yet again:

And I have some more unpublished and
unfinished ones of these mockups …

I call these “ELD Lambda diagrams”
and they where originally inspired by John Tromps Lambda diagrams here:
https://tromp.github.io/cl/diagrams.html
In plain form they are utterly incomprehensible but I think they become gold with annotation.
I always wanted a code reading experience that is akin to tracing the traces on circuit boards.
And lambda diagrams really seem to come closest to that.

Conventional wire and box flow diagrams conflate
“function abstraction” and “function application” together
by directly connecting outputs to inputs.
I can’t yet explain why but I have the gut feeling that this is a BAD BAD MOVE.
Like trying to calculate without having a digit for zero.
Lambda diagrams do not feature this kind of conflation.
Yet they still give a visual representation where there is
★ (almost) no need for “artistic free-form wire management” and furthermore
★ a higher on screen code density than classic visual programming
Still lower than purely textual. But on screen code density is not all what counts.

I’d imagine such ELD diagrams not
used in a standalone fashion but integrated into …

To be continued …

As a sidenote here are some more conventional visual code projection mockups I made too:


1 Like

if you would like to help us build: http://ceptr.org/

please DM

anyone who knows or is willing to learn Rust would be very welcome :slight_smile:

1 Like

All hopes pinned on @philipbeadle:blue_heart:

I have to say: :exploding_head: when I saw the first demonstration about unison (this one)
It’s indeed a totally alternative approach to writing code.
Still processing what this all means… (one thought immediately popped up: could rust be developed this way?? Just thinking about how code development would look like)

Reading @lsuess thread makes me wonder if my various ideas :bulb: are actually defining a ‘programming language’. Also anyone who references Bret Victor gets my vote!

I’ve been following the CEPTR project and its sub project for a few years whilst also following Pierre Levy’s collective intelligence project IEML since 2005. Both seem to be ‘sprouting’ at the moment and with my disdain for the current ‘situation’ I’ve encapsulated my concepts in two cheap domains :wink: (preface: before anyone moans about use of any related words in these domains, they are for community ownership, if anything ever gets built!)

holo.press (just redirects to https://gitlab.com/commons-agency/holo.press at the moment)

This is my concept of the printing press reinvented for the holographic computing world. It uses Holochain and IEML in order to create a language. There is currently just word play of a description (because apparently a trait of “Pathological Demand Avoidance” is wordplay, along with a want for control and freedom and fantasy so hi yeah I’m apparently all that, even though this is based on my almost 40 years of computing experience, 30 in relational database, 20 in modular web apps, and 10 in entrepreneurship trying to get a “open source co-operative cafe concept” model off the ground and working. So far learning lots by failing lots and zero income lol but these times shall pass!)

Encoding New DNA Symbiosis - Why this future? (i.e. ‘ends wtf’!)
• Fractal Algorithms: Collaboration Time Space (FACTS)
• Trusted Re-decentralised User Technology Holochain System (TRUTHS)
• Meanings, Ends And Negotiations In Notation Generates Symbiosis (MEANINGS)

Along with this I added groups for the process I’ve developed from the 22 years of delivering modular web apps to clients with projects ranging from wild crazy ideas to fairly sensible ones and everything in between. It’s a fairly simple recursive process:

‘FORGE’ - as in forge ahead with freedom / forge a head with freedom :wink:
Find, Orient, Reuse, Generate, Emit.

I use such wonderful things like BDD in order to be able to perform calculations on user/client requirements, and IEML means you can encode in any spoken language and decode to any other. Powerful sh*t.

There’s more depth in the folder structure of the forge process at:

I wrote that when I was thinking more of having a first stage process of modelling in Drupal and then using IEML to migrate to Holochain however the rate of development in the holosphere has been quite impressive of late so I’m hoping I never have to touch Drupal again lol :wink: I mean, it’s great but not new or exciting enough for me, it’s building on the old web, we need to focus all energy on building the new now.

holo.voto

So this is a recent one as I did a namecheap search for ‘holo’ one night and it came up, and with all the election stuff lately and all the cancel culture etc. I thought this could be a good “implement example” of holo.press. I discovered “ex-voto” on Wikipedia and it’s where people offer something to a saint or deity, and I discovered stupas and thought well you could cast your vote and create your virtual presence, build it up over time and it would basically be your ‘symbol’, like brands have.

A useful real world example of how this could be useful is me casting my foot size, shape, colour preferences, etc. so when I go visit my virtual wardrobe there’s only shoes that would fit me and that I would like because OMG only discovered I’m actually a size 8 wide and have been wearing 11s all my life and that is why I have so much feet trouble and have spent the last three months and hundreds of pounds just trying to navigate the different brands sizing etc. and life could be so much easier if I just built up my own stupa or whatever using holo.voto to keep voting for stuff and brands / people / etc. could use that as my interaction point cos I am so fed up of filling in my details in forms, it’s wasting my life.

Anyway on that note, there’s a short outline, if anyone has any cracking ideas on how someone who passes out if they look at code these days for longer than 5 minutes can pursue these do let me know. The passing out thing may very well be my eyesight, got an eye test booked for 6th March and will be homeless from mid-March if I don’t get my finger out soon and figure something out so gonna be interesting times :wink:

1 Like

I was just about to embark on a new post in the hApps discussions to get another idea out of my head which could be a different use for ‘holo.press’ I thought I’d add here that I tend to think in the distant future - so like before we had things like Time Zones people didn’t know what life would be like after, and I feel very much like that in terms of programming languages, as maybe that’s what we all do “what would life be like if we could just think of something and it would end up manifesting without me having to write code”.

Much of the time we get lost in the “how” - “Mad how disease” is the best description of it, so for me I’m really intrigued in the “how” because that is what seems to come out of nowhere and slap us all in the butt “wow, didn’t think THAT would happen”. etc.

Why am I writing this response? Is it because I’ve decided to go back on the slow-release Elvanse (Vyvanse for state-siders) so I can get things done? Probably. But hey, it’s fun and I finally start to get all this stuff out of my head and perhaps make some mutually beneficial connections where I can help on things that hadn’t crossed my mind, cos y’know, being stuck inside my head is not always fun lol.

Here’s an article I wrote a while back when I was more a Drupal is the answer to everything fan before Holochain started picking up along with the entire world needing distributed apps more than ever: