In longer words: it's great to be able to interactively modify your running program, but the incremental operations and the program states need to form a semilattice.
-
-
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Interestingly, this is true of https://beta.observablehq.com/ which has a great notebook metaphor that's independent of order.
-
Yes, it was thinking about why I liked
@observablehq so much better than previous notebooks that prompted this tweet.
End of conversation
New conversation -
-
-
hm... I always thought one of the great features of Common Lisp is that you can enter a program's expressions in pretty much any order (e.g. you can create a subclass of a class that doesn't even exist yet)
-
interesting, maybe I have to revise my opinion of CL. Is it fair to represent a CL program as an unordered set of top-level forms, then? What happens if, eg, you try to use a macro that hasn't been defined yet, or redefine a macro after you've used it?
-
CL has a partial order between forms, that isn't particularly amenable to static analysis, though Matt Steele did write a post facto dependency tracker using SBCL's code coverage support. Dependencies include macro definitions and compile time side effects.
End of conversation
New conversation -
-
-
I suspect Dark has this property. Is that right,
@paulbiggar ? -
Yes, largely. Most fns are pure and most data is immutable, and it's definitely useful for making interactive development work nicely. That said, I'm not sure it's required: we could probably have implemented something similar in a more stateful language
-
I guess the important thing about a spreadsheet is that it tracks data dependencies. Entering a formula is not like evaluating an expression and assigning the result to a variable.
-
Yes, I think that's right (and again, a thing observable does well).
End of conversation
New conversation -
-
-
As much as I love Smalltalk, the state of the Image was definitely execution-order-dependent. I think spreadsheets are near-unique in the advantage you describe.
-
Data flow box-and-connect VPLs have that property also.
End of conversation
New conversation -
-
-
I think “order doesn’t matter” is one of the really important pieces of the
@desmos calculator. Other principles are “show all state,” and “update all dependencies after each edit”.Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Gendl/GDL is embedded in Common Lisp and has declarative order-independent syntax (somewhat like a spreadsheet) https://Genworks.com
#GenworksGDL.Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
First, what do you mean by "the order in which code is written" Second, what do you mean by "semantics" Third, what do you mean by "incremental" Fourth, what do you mean by "must"
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
It is largely true of
@observablehq I think? And jupyter is definitely headed that wayThanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
I wouldn't put it this way. Depends a lot on what you mean by "development". Software devs != Muggles Muggles don't want to think about code except in small chunks of data transformation. *ANYTHING* that makes them reason about implicit VM or interpreter state is foreign.
-
ALGOL-derived languages force internalization of a Harvard architecture idealized computer. Lisps and FP are even further removed from literal data operands. Jim Gray correctly pointed out a decade ago that "data-independent computing" misses the mark.
End of conversation
New conversation -
-
-
My biggest frustration when I tried the IDE: I always wanted to use something and then go define it after I liked what was implied by the usage. It just did not expect that at all, it was sure I'd made a typo or missed an import or something.
-
Which, I guess is fine, except that it kept interrupting me to go fix it instead of letting me continue. Also, all the fancy features didn't work right. Would have been so cool if it'd just chilled and when I was ready, either scaffolded the class or suggested the builtin.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.