parinfer

mikeb 2017-06-20T02:22:03.954613Z

Interesting discussion on literate programming. I've long thought about a language with one unit(set of one or more related functions) per file, where the docs, comments, tests, specs, etc for the unit could live side by side in a different files, then an editor could combine the desired parts to display.

shaunlebron 2017-06-20T02:36:53.065319Z

@mikeb i like that idea

shaunlebron 2017-06-20T02:37:44.071610Z

i think light table tried using a function as a unit that could be combined with others in different ways by the editor

shaunlebron 2017-06-20T02:38:32.077165Z

was abandoned pretty quickly if I remember correctly

mikeb 2017-06-20T02:42:41.107688Z

Yeah, I think to make it happen it needs to be a language built around the concept, where clojure is still file based, too complex for editor to break everything apart.. But if everything was broken apart, the editor could be free to display in new and different ways.

cfleming 2017-06-20T02:44:05.117768Z

I think it could be done in Clojure, and it’s something I’ve toyed with trying. Unfortunately it’s a lot of UI work just to get to a proof of concept.

cfleming 2017-06-20T02:44:23.119917Z

It would still use files under the hood, but you could present a function-based UI to the user.

shaunlebron 2017-06-20T02:45:01.124542Z

@cfleming: excited you’re thinking about that. I’m guessing it would be difficult in intellij?

cfleming 2017-06-20T02:45:45.130223Z

Well, it’s probably difficult in anything that’s not designed to work like that. IntelliJ’s UI is actually pretty flexible, but I’d have to talk to JetBrains about how best to do it.

cfleming 2017-06-20T02:46:15.134021Z

I imagine there are a lot of assumptions in things like navigation that might be hard to work around.

mikeb 2017-06-20T02:46:41.137061Z

I was also thinking you could have a function relationship view, as well as an order of execution view too. I even went so far as to create a super ugly dummy html of general idea, I will post link later when I have access to it.

cfleming 2017-06-20T02:47:45.144876Z

I spend a huge amount of time navigating around the IntelliJ codebase figuring out how to do things. I’d love to be able to have a function relationship view (snap @mikeb) which I could save and come back to to remember how my investigation went.

mikeb 2017-06-20T02:47:56.146097Z

I would think it's a huge and hard undertaking regardless of what base was used.

cfleming 2017-06-20T02:48:19.148895Z

To do it right, absolutely. I’m unsure how much work it would be to get to a PoC

mikeb 2017-06-20T02:48:37.151071Z

@cfleming would love to hear what you find

shaunlebron 2017-06-20T02:50:54.167756Z

i was talking to a guy after a local meetup, and he mentioned viewing code in order of execution as well. i think he called it a call-stack view

cfleming 2017-06-20T02:51:44.173953Z

I think Chris Granger actually worked on an implementation of the code bubbles idea for an MS debugger.

shaunlebron 2017-06-20T02:52:46.181527Z

it came up because I brought up how under-utilized Atom’s technology feels to me. So much flexibility with having an editor in a DOM. I feel that would make something like a function relationship view easier in Atom than others

cfleming 2017-06-20T02:53:28.186532Z

https://www.youtube.com/watch?v=PsPX0nElJ0k in case anyone hasn’t seen it.

cfleming 2017-06-20T02:55:12.198962Z

This looks like the VStudio implementation:

cfleming 2017-06-20T02:55:12.199038Z

https://vlasovstudio.com/task-canvas/

shaunlebron 2017-06-20T02:55:15.199304Z

@cfleming god i want that in a VR space so I can position code around in a physical space

mikeb 2017-06-20T02:56:33.208514Z

Shaun I was thinking exactly the same thing when watching the arcadia guys videos... then the scale of work might be more comprehensible for non developers.

shaunlebron 2017-06-20T02:57:18.213715Z

@mikeb ahh yes, that’s definitely where I got that idea from I think

cfleming 2017-06-20T03:01:12.243890Z

@shaunlebron Actually I think something like that is pretty easy in Swing too (what IntelliJ uses). But things like taking advantage of all the data visualisation libs out there like Proto-REPL does is definitely much easier.

cfleming 2017-06-20T03:01:38.247141Z

And some things like the collapsible REPL results too.

cfleming 2017-06-20T03:02:41.255284Z

In general, being able to easily mix quite different mediums should be easier in a web pane.

shaunlebron 2017-06-20T03:07:41.290358Z

@cfleming yeah, I’m not familiar with much about desktop UIs honestly. I think the mixing of different mediums is what I’m excited about for what may come after Parinfer, and a load of other things you guys are touching on

shaunlebron 2017-06-20T03:08:52.298381Z

was kind of sad to see Light Table pivot to Eve. but so many problems to solve—I guess it’s good they chose the more important one

shaunlebron 2017-06-20T03:10:59.313747Z

whoever will try another next-gen editor will probably need decent financial backing. I don’t see it happening as a side project

cfleming 2017-06-20T03:12:47.326418Z

Yes, no doubt. There’s no way I can keep up with the vast majority of what I’d like to do on Cursive, and that’s built on really significant existing infrastructure.

cfleming 2017-06-20T03:12:56.327352Z

It’s a massive amount of work.

shaunlebron 2017-06-20T03:13:53.333838Z

I can imagine

shaunlebron 2017-06-20T03:15:31.344945Z

i can barely work on parinfer when working fulltime, and that’s just a simple input/output text processor

shaunlebron 2017-06-20T03:23:34.399841Z

i’m out for the night, but I sat down a recorded a video summarizing my thoughts on Parinfer v2 tonight

shaunlebron 2017-06-20T03:23:39.400552Z

https://www.youtube.com/watch?v=CiDtmPKVskk

1❤️
shaunlebron 2017-06-20T03:24:15.404773Z

demo editor is updated here for trying out behavior differences: http://shaunlebron.github.io/parinfer/demo

mikeb 2017-06-20T03:37:31.493107Z

Hey @cfleming please don't laugh, but here is the very rough thought I was playing with for a function based interface with attached repl/tests/docs, created long ago. https://s3-us-west-2.amazonaws.com/language-ideas/ide/space.html On the top function say-hi if you click the repl/docs/tests buttons at bottom they will show. I was just thinking how nice it would be to have everything relating to a single "unit of code" right there beside each other. The language is made up.

2❤️
cfleming 2017-06-20T03:39:06.503105Z

@mikeb No laughing, that’s cool! Interesting idea having the REPL available right by the function with some usages shown there.

cfleming 2017-06-20T03:39:50.507959Z

Pharo smalltalk has a really cool doc search function where you can say: I have this data, and I’d like that data - which function will do that for me?

cfleming 2017-06-20T03:40:15.510617Z

So if you say: I have ” foo ” and I want “foo”, the search would return str/trim

cfleming 2017-06-20T03:41:33.518985Z

I like the code bubbles idea of having notes right there in the workspace too.

mikeb 2017-06-20T05:17:47.164493Z

Shaun, that's some amazing work on v2.

shaunlebron 2017-06-20T17:38:49.992262Z

@mikeb thank you! 😕 hope it works out, but we’ll see

shaunlebron 2017-06-20T22:34:18.963592Z

this is why I worry about edge cases even when nobody is reporting them: > This is great news. I’ve stopped using parinfer because it often modifies my AST in ways I don’t expect. With these changes, I think I can start using it again. Nice work! from: https://www.reddit.com/r/Clojure/comments/6ibyhr/parinfer_why_v2_is_different/

1💡