Fork me on GitHub
#hyperfiddle
<
2023-08-15
>
Dustin Getz17:08:06

Red Planet Labs announcement in 3 minutes!

🎉 16
👍 2
👏 2
frozenlock18:08:56

I must have missed something. How is Red Planet Labs related to Electric?

Dustin Getz18:08:36

no business relationship; the technology allows making reactive backends which Electric can natively consume

💡 10
J18:08:55

Not a word of Clojure but when I read the blog post Clojure philosophy is here.

Daniel Jomphe20:08:54

Of particular interest for Hyperfiddle seems to be this part of the conclusion: > I didn’t mention “fine-grained reactivity”, a new capability provided by Rama that’s never existed before. It allows for true incremental reactivity from the backend up through the frontend. Among other things it will enable UI frameworks to be fully incremental instead of doing expensive diffs to find out what changed.

Daniel Jomphe20:08:07

This true incremental reactivity won’t need to be sent to the frontend by Rama. Obviously, Hyperfiddle can subscribe to it and color whatever reactions for the server or the client.

bhurlow23:08:20

> Will there be a first-party Clojure wrapper? Or, would the expectation be that users would use Java interop? > answer: We’re not releasing one as we don’t have the bandwidth right now to maintain and document another API. That said, making a Clojure wrapper around the Java API should be pretty easy.

bhurlow23:08:26

^ from Nathan in the HN post

Dustin Getz23:08:31

yeah i mean look closely at the java “not a DSL” DSL, it is … unclear if java programmers will accept that as java

Dustin Getz23:08:16

i wonder what their clojure macro DSL is/was

tatut04:08:31

I have never needed “twitter scale” in anything I’ve done, so it is not clear how this would 100x my productivity in a typical app… but the proof is in the pudding, will definitely need to play around with this

Ben Sless05:08:53

I probably haven't written anything twitter scale but pretty high scale So many things can go awry, the breakdown to micro services which should help you be reactive and encapsulate difficulties multiplies the surface area of the problem Databases, monitoring, health, logging, queueing systems, man, gimme Rama now if I can cut all that crap out

👍 8
Daniel Jomphe12:08:11

Their Java API is a thin wrapper over their actual Clojure API, which they’re https://groups.google.com/g/rama-user/c/aNZds6mbnwE. I suppose they don’t want anyone in the community to be able to claim that Rama is better for clojure users, because it would hurt their true adoption target: the world of enterprise Java apps. Knowing that, It’d feel wrong to me to produce a Clojure wrapper over the Java API, which is itself a wrapper over the internal Clojure API. But still, if it could mean I can develop Rama with my REPL and plain clojure functions, yeah, I suppose I’d still compromise. 🙂

👍 2
bhurlow13:08:13

Also, it seemed from the HN thread that the Clojure DSL was used internally for implementation. Not clear if that is the same as the userland API. The Java DSL as it currently stands looks like a big adoption hurdle to me

marciol15:08:15

Talking to @U2J4FRT2T he said that the DSL resembles Specter, and it can related to what @U09K620SG said some time ago: https://old.reddit.com/r/Clojure/comments/izh9o4/specter_vs_meander_vs_handcrafted_code_when/g6jrq48/

marciol15:08:19

To make this more approachable to Java devs, maybe wrapping it into a Java Stream compliant API would help.

Dustin Getz15:08:26

Thanks for linking that I would love to see higher level database-like abstractions built on top of Rama (however the closed source nature means that this will not happen)

2
Dustin Getz15:08:09

imagining a streaming Datomic-like database with datalog, transactions etc that lets you drop down to the "Rama layer" to code queries directly against custom indexes

Dustin Getz15:08:19

That's really the main barrier to Rama adoption that I see – if it is really a tool for database engineers to develop scalable custom indexes, that is a fairly narrow use case

marciol15:08:22

Yep, it would be awesome

Ben Sless15:08:16

Does it handle data loops? If so, you can compile datalog to it Another thing I didn't see yet is how data stores get the data in them. If you can feed ETLs back to those you have a stream processing platform not just a db

Dustin Getz15:08:53

you mean "depot appends" ? I think it's like depotReference.append(record)

Daniel Jomphe19:08:29

Nathan didn’t confirm what I wrote in all the details, but graciously provided some interesting bits: > I suppose I shouldn’t be surprised that Rama would resonate more immediately with Clojure programmers, given the emphasis on data structures and its origins in functional programming. So exposing the Clojure API may come sooner rather than later – no promises though. I’m curious how everyone’s experience is next week using Rama through Java interop. > > We did feel the pain of not having a proper REPL while developing Mastodon in straight Java, which brought me back to my pre-Clojure days. It’s annoying to have to reload everything from scratch when wanting to test a small change. We did a little bit of work to try to be able to reload Java classes dynamically, but we never could get it working robustly especially when there were changes across multiple files. You won’t have any of these issues developing modules from Clojure with Java interop. https://groups.google.com/g/rama-user/c/aNZds6mbnwE/m/bCpUdFhVBAAJ

bhurlow20:09:46

Spoke with Natahan today, our company is going to be experimenting with the beta. I asked for feedback on what’s ok to share, but in response to @UK0810AQ2’s question above, using datalog with rama isn’t required or desired, the idea is that targeted data structures with associated indexing is better than an arbitrary query language – It’s not normalized by design

xificurC06:09:14

ask for opening the clojure API 😉

bhurlow18:09:36

It’s coming, we reviewed it and its real. It’s pretty heavy on the DSL though, think similar to core.async. It will take some time to adapt the mental model

😲 2
☺️ 1
Daniel Jomphe20:08:54

Of particular interest for Hyperfiddle seems to be this part of the conclusion: > I didn’t mention “fine-grained reactivity”, a new capability provided by Rama that’s never existed before. It allows for true incremental reactivity from the backend up through the frontend. Among other things it will enable UI frameworks to be fully incremental instead of doing expensive diffs to find out what changed.