You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I really enjoyed Dark! I rarely get excited about CRUD apps but I was excited to try out Dark. There's some novelty effect but the experience was more fun and less boilerplaty than setting up a REST API. Overall, I think Dark is directionally correct and I'm excited for this future. brain dump time :)
The no-deploy was awesome. Being able to make a change and see it live. Trace-driven development isn't something I've experienced before (i wonder what happens to mutations on trace evals). Clearing DB with a REPL was interesting. I love what Dark is doing/exploring here. CRUD apps feel less tedious in Dark.
I'm curious about structural editing myself and I'm happy Dark gave me a concrete experience. It's usable! but I did find myself wanting to just edit text many times :) The error-rails was confusing to me as someone used to handling Result/Options consistently. Is there UI for it? I see something on the right but wish it was more explicit (e.g. Dict::get and Dict::getExn). I'm more convinced that when editing something that's printed as text, I want text control. At times, I wanted to switch to AST mode and drag nodes around instead of working with ctrl + . Wrapping and inserting nodes is not-straightforward. I didn't look into it but is foo.x equivalent to Dict::get foo "x"? Are values of Dict untyped? I wish I could get the static analyzed type of variables on hover. There were times where the canvas location was buggy. I create a new node and it would show up offscreen.
A number of times I had to delete code to reenter the code I wanted. If I want to type if (exprA == exprB), I learned to type == first. This makes sense! but is different than normal code. Typing exprA first could get you into a state where I couldn't get to my desired final expression.
CORS was a pain in the butt but I won't put that on Dark. I think I'd be a little faster debugging with my own backend but not sure.
Wishlist:
grouping items on canvas. organization that's not spatial
jump to definition and other modern editor capabilities (seeing immediate structural rename is cool!)
disabling logs for certain endpoints (sensitive passwords)
refactoring is a little daunting. hard to get from some A -> B via tree transforms
errors were confusing at times. not clear where in code it tripped up. It feels good with the live eval when something shows up at the end :)
Concerns:
flexibility. no access to existing knowledge (table joins, limited to KV, transactions, etc..)
scale. QPS? scaling/managing table indices. Lot of this is not needed for simple apps.
changeability. I don't have access to SQL so I'm hesitant to do migrations. Double write? seems tricky to get right. Probably something with feature flags but seems scary to work in prod :)
portability. If I hit some issue where I need to migrate off, is it doable? How do I access/move data?
Again, love what Dark is doing! Hope this helps and happy to expand on anything.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
A user says:
Beta Was this translation helpful? Give feedback.
All reactions