hyperfiddle

http://hyperfiddle.net
ivar 2018-04-09T18:17:46.000089Z

As a clojure / react noob I think the readme looks pretty solid. Reading the blurb at the top makes me think that a webapp dev wouldn’t have to be concerned about local/remote data storage - that once configured, hyperfiddle would manage that for me and I just ask for what I need. Is that about right ?

2018-04-09T19:57:30.000316Z

@ivar That's correct! Thank you for the feedback

ivar 2018-04-09T20:01:45.000365Z

I think that’s such a powerful feature that it’s a bit tough to wrap one’s head around. Maybe have a ELI5 / tldr at the top without the specific tech and a high level overview of the pros & cons of hyperfiddle.

2018-04-09T20:03:00.000045Z

@ivar if we listed the concerns that Hyperfiddle considers essential complexity vs accidental or optional, would that help?

ivar 2018-04-09T20:04:09.000389Z

(Keep in mind my feedback is from someone who’s just approaching clojure, so I bring “beginner’s mind” - which might not be your target audience)

ivar 2018-04-09T20:04:49.000663Z

I’d say that a fair assessment of the effort / complexity for initial configuration would suffice

ivar 2018-04-09T20:05:15.000136Z

but also, I imagine the app developer loses control over network traffic / latency management..

ivar 2018-04-09T20:05:26.000623Z

which might not be a big deal?

ivar 2018-04-09T20:06:32.000186Z

ie: would hyperfiddle be reasonable for a chat service ? what are example apps (real or imagined) that would a) benefit from and b) be a bad fit for hyperfiddle?

2018-04-09T20:10:18.000157Z

@ivar your questions are insightful. The short answer is the I/O runtime is about 1000 line "kernel" and can be replaced, so if you want realtime push over websockets, you can drop down to that level and code it like usual. The I/O runtime implementations are general purpose and could be shared or plugged into any other hyperfiddle app

2018-04-09T20:10:41.000293Z

The point is that userland is sheltered from all that

ivar 2018-04-09T20:11:09.000574Z

also, afaict it seems that reframe is making strong headway in terms of being the ‘go to’ SPA framework. Your readme’s section on interaction with reframe (https://github.com/hyperfiddle/hyperfiddle#faq-and-anti-features) is a bit confusing. On the one hand you write that Reframe’s use of local state doesn’t jive with hyperfiddle (non-idiomatic) but then the last sentence in the paragraph states “you should have no trouble using Reframe”.

ivar 2018-04-09T20:12:24.000395Z

cool. so the plan (or existing state) is to support different swappable IO implementations?

2018-04-09T20:13:52.000326Z

Yes, we have a couple, different apps have different I/O needs. A simple example is you can serve the app completely without javascript and rely only on server side rendering, http://hyperfiddle-consulting.com works like that

2018-04-09T20:23:08.000092Z

BTW it turns out that disabling javascript is actually slower, Hyperfiddle is similar to https://www.gatsbyjs.org/ and is faster with javascript once the entire app data dependencies are in browser cache

2018-04-09T20:23:45.000666Z

Anyway its up to the I/O runtime to make those decisions, the default one is very good, most apps dont need to think about this

1✔️