Fork me on GitHub
#hyperfiddle
<
2022-08-08
>
Peter Nagy07:08:00

I had this thought during the weekend, are p/server and p/client the only 2 parties we'll always care about? What if we have 2 backend services we want to communicate with? Or could 2 clj services use photon to abstract away the communication layer? If photon allowed e.g. comms through a TCP socket directly we could set that up between Service A and Service B and potentially deploy them from the same codebase? Someone can also have 2 web UIs etc.

👍 1
Dustin Getz10:08:33

yes, scales to N tier topologies, for example client-edge-gateway-server-database or larger cloud systems

Peter Nagy11:08:58

by scales you mean "could scale in the future", right?

Dustin Getz13:08:13

I mean our compiler today is hardcoded for client/server topology with p/server p/client markers, but it's just syntax. Our implementation can easily support N peers with a small amount of changes

Dustin Getz13:08:00

(p/browser-webworker) is an interesting use case also – to offload work from the browser UI thread to a background job

‼️ 2
Dustin Getz15:08:32

The regression in demo-webview (where the reactive entity does not update in response to a transaction) is actually a Datascript issue (broken equality semantics on Entity instances) per https://github.com/tonsky/datascript/issues/433 ; the regression was introduced by a major improvement to missionary's continuous flows semantics (driven by Photon's "duplicate propagation" bug)

Noah Bogart15:08:05

nice find! hopefully that can be fixed quick

Dustin Getz23:08:18

databricks released an infra project called “Photon” so we may need to rebrand. any ideas as to the name? like “LiveView” it should be indicative of our magic in some way

Dustin Getz23:08:53

“Tiered Clojure”

Dustin Getz23:08:37

“Reactive Clojure”

nivekuil23:08:48

I think photon is a bad name in general, too generic and nondescriptive. Probably 100 published projects with that name. Something cool like "hyperflow" would be better

Dustin Getz23:08:26

ok, keep dropping ideas

Dustin Getz23:08:08

we considered “Zero” (for zero boilerplate)

nivekuil23:08:08

reactionscript

nivekuil23:08:34

I personally don't like names that are completely ungooglable

nivekuil23:08:52

but I think "zero" is in the right direction in terms of suggesting what problem it solves as opposed to how it works

👍 1
Anthony00:08:07

Haven't seen the code yet, but it brings to mind crossing of barriers, and my mind went to... Charon (ferryman over the river Styx) or Flux (rate of flow through a cross-sectional area or boundary)

👀 1
Dustin Getz00:08:57

we considered arroyo, a dry creek that floods with water seasonally

Nick McAvoy00:08:12

> I personally don't like names that are completely ungooglable Yeah, from a branding fundamentals perspective, it's advantageous to pick something short but also not overloaded, with many stakeholders competing for that term on search. You also love for it to be descriptive. ..naming things is hard.

Dustin Getz01:08:23

fusion synthesis compose

Dustin Getz01:08:25

“hyperfiddle + X” gives leeway with googling, the name can also be stylized like hf/zero

Nick McAvoy01:08:10

Never mind, the distance is too short and the search engine thinks you mean xkcd

Dustin Getz02:08:01

what is xkce?

Peter Nagy07:08:51

brainstorming I got these rio (Reactive IO) join chimera planner binder frame plain bare simplex force chronicle bridge

kennytilton08:08:28

Back end, front end, bah! So... "Endless"? It will make them click thru, anyway. :) "Reactive Clojure" suffers from the word "react" having been (a) beaten to death and (b) misused by FaceBook. Also, is reactivity the magic? It underpins the magic, but the magic I understood is in hiding the communication between back and front end... "Seamless"? https://www.synonym.com/synonyms/seamless offers:

adjective. ['ˈsiːmləs'] perfectly consistent and coherent.
Hellasweet. As a product name it takes quite a bold stand while again forcing a click-thru to find out WTH I am talking about. 🙂 Did not see any good synonyms, but maybe "smooth". That would be fun. Final thought: such naming conflicts are unavoidable, and is Databricks that dominant when it comes to mindshare?

Adrian Smith09:08:03

Maybe along the lines of streams and flows? Could pull up a list of river names

Peter Nagy09:08:16

balance neo nanos (as in there is no framework, just small integrations, nanos)

Dustin Getz10:08:42

Uniview TrueView

Nick McAvoy12:08:18

Things that start with h and end with f: hf/hoof (the thing all your weight goes on but which gets you where you're going) hf/half (maybe not) hf/hoffman (just a Dustin Hoffman mascot)

🙂 1
kennytilton12:08:16

I did like the zero idea. "Coke Zero" worked well. Not sure what goes before it. Maybe nothing? Again, provocative. And then we talk about zero network hassles as well as zero consistency worries (the reactive bit). The real zero even has a history. It had to be invented, and was banned by the Venetians for a while.

Adrian Smith14:08:48

• Interweave • Tapestry • Mangrove ◦ An eco-system connecting 2 worlds • Estuary

Adrian Smith14:08:18

(Contributed by Will)

Daniel Jomphe14:08:35

Reminds me of ClojureScript One that was ditched when CLJS jumped on React. This is better, we get back to the fundamentals, and one step more: Clojure Zero. 😄 Many great ideas in the thread!

Dustin Getz20:08:14

interlace, braid - but not sure how to associate that to views. what are more words for "View" in the LiveView sense?

Daniel Jomphe20:08:54

View is the part of the name that I didn't like - but you've got a better idea than me as to why that's a good idea.

Dustin Getz20:08:14

it doesnt have to be in the name but LiveView is just so obvious

Daniel Jomphe20:08:08

Some ideas I've had were e.g. Hyperfiddle Fabric, Hyperfiddle Engine, Hyperfiddle Foundation but I do like a lot Zero, Endless, Seamless, and some others.

Dustin Getz20:08:55

Fabric was the original repo name!

Daniel Jomphe20:08:19

Oh!! 🙂 Sorry I buried Dustin's latest question, repeating it for others: > interlace, braid - but not sure how to associate that to views. what are more words for "View" in the LiveView sense?

Dustin Getz20:08:46

daglang

😁 1
Daniel Jomphe20:08:11

Shen lang has this concept of the Ring

Daniel Jomphe20:08:47

Circle Circular CircleView

Adrian Smith08:08:39

Echo Asynchrony Polyreme Rivulet

denik14:08:59

hyperbraid

Dustin Getz14:08:43

"App Fabric", in connection with

Daniel Jomphe14:08:34

This post of yours I'd retweet in a heartbeat but I didn't like just those three words: "is wrong and"!!

Dustin Getz14:08:48

ty for the feedback

Daniel Jomphe14:08:24

Hyperfabric sounds quite fine; hyperbase hypercore

Dustin Getz14:08:34

UI Fabric ui-fabric

Dustin Getz14:08:40

(simple like LiveView)

Peter Nagy14:08:05

I feel like client/server is just the beginning and "view" is not the core of the abstraction. So words like UI or View, while correct now, might sound weird in a future discussion. > A: X told me I can use LiveView for my clojure project where I need 2 of my services coordinating through a TCP channel. I have no web UI though, just 2 backend services, so I'm confused? > B: Yes you can use LiveView without a UI, you just connect the 2 services and get the wire protocol handled for free

❤️ 1
Peter Nagy14:08:48

isn't the selling point that we don't have care about the connection at all? No protocols to control, no RPC/coordination code to write. You are managing the network. The DOM is just the first use case of that

👍 1
Daniel Jomphe14:08:50

I felt the same and it's why I resisted all sorts of View or UI-based names; curious about the answer; is our intuition correct or wrong?

Peter Nagy15:08:13

with that framing my mind goes to hyperfiddle/wire, since that's what you're abstracting away / taking care of; or hyperfiddle/fusion, since that's how it feels to the user, 2 or more things blending and becoming one

Peter Nagy15:08:22

it might even be that the DOM stuff will move to a separate library later, <future-name>-dom

nivekuil17:08:20

protomeld, and you get to keep the alias

Dustin Getz11:08:54

rather than photon-dom being split out of photon into a new name, perhaps the opposite- the distributed fabric is split out of the UI lib (which keeps its name)

Dustin Getz11:08:59

perhaps we should split them now - we considered this in the past (attempted to enumerate all the key components in the September 2021 blog post); but it felt complex and also a bit unfocused

Dustin Getz13:08:29

quantum enganglement, superposition - "a language for UI whose functions exist in a sort of quantum state where they are both on the frontend and backend simultaneously"

Dustin Getz13:08:02

quantum lambda

Dustin Getz13:08:34

complex numbers that have real parts and imaginary parts complex functions, complex lambda