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 tried Dark for about 1.5 hours last night, and I took a few notes.
First, a little about my background. I've been programming in Elm for the last 4 years. I am the author of the ***** plugin for ****. And I also work on ********. I also write backend code in Kotlin. And I've been thinking about live programming in production ever since I started playing Factorio online. There was something about the feel of building & refactoring a factory in real-time, along-side other players, without stopping the factory, that was very satisfying. So I was excited to learn about Dark earlier this week, particularly with respect to the idea of coding in production and using feature flags to guard execution from entering a work-in-progress.
Last night I worked on a small project to keep track of my flashcard decks using a spaced-repetition schedule. If I had to summarize the experience in one word I would say "cramped". Both in the sense that the cards where you enter code are too small, and in the sense that I was frequently frustrated by the code editor doing the wrong thing (or being in a buggy state).
IntelliJ uses a bi-directional mapping between the source code and the AST, so I'm familiar with the problems associated with editing ASTs. And I'm also excited about the promise of a structured editor. I was hoping that the implementation in Dark would be more natural, but it was very cumbersome. You know how apps like Evernote or Apple Notes have a rich-text editor, and you start a bulleted list, and then you paste something in, but things are messed up, and then you try to undo, and then things are still messed up and you have no idea why? It felt like that.
Here are some raw notes that I took while coding:
List literal containing a dictionary literal: tried adding a comma after closing } to add another element, but it wouldn't allow me to type the comma.
in a function with a local variable that shadowed the function's parameter, after deleting the local var, things were all messed up
frequent problems trying to change a function name where it would immediately go back to the old (automatically assigned) name.
can't pattern match on a List
frequent "Incomplete" errors and no idea why. Sometimes fixed by retyping and picking a result from autocomplete.
multi-line strings cumbersome (I had pasted in a CSV string and it dominated the UI)
in a HTTP handler, my body did a pattern match on the result of DB::get, I took apart the optional, and I thought each branch in the pattern match returned a valid response, but Dark said "your code needs to return a value in the last expression.
Anyway, I just want to say that I respect and appreciate your team's effort to step-back and re-think how software development should work.
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