|
| 1 | +--- |
| 2 | +title: JE Meeting 11/21/18 |
| 3 | +--- |
| 4 | + |
| 5 | +## JE meeting 11/21/18 |
| 6 | + |
| 7 | +* TOC |
| 8 | +{: toc } |
| 9 | + |
| 10 | +### Recap |
| 11 | + |
| 12 | +Instead of jumping right into drawing more "ideal worlds", I was struck by a few thoughts: |
| 13 | + |
| 14 | +1. Sean McDirmid was skeptical of my diagnosis of the key hard parts of Reflex |
| 15 | +2. You mentioned dogfooding so I wondered what the best approximation of it was to build something better |
| 16 | +3. I wanted to get a better sense of the framework before building abstractions on top of it |
| 17 | + |
| 18 | +So my idea was to try and set up a better Haskell/Reflex experience, film myself building things, and then write down complaints. I wasn't able to get a better experience (crazy!) so I went ahead and made a list of key complaints and some next step ideas... |
| 19 | + |
| 20 | +https://futureofcoding.org/log#biggest-experience-problems-with-haskellreflex |
| 21 | + |
| 22 | + |
| 23 | +### drawing ideas |
| 24 | + |
| 25 | +* maybe livestream it somehow to encourage me to actually do it? |
| 26 | +* think more precisely abstractlbetter distinguish my "vision" from exsiting Haskell alternatives (lamdu, luna, isomorf) |
| 27 | + * the idea of never being able to "delete" anything, nor stop it from running |
| 28 | + * the idea of hashed expressions, particularly with scope |
| 29 | + * exploring which concepts we can move from the language compiler to the editor (no free variables, type inference is just local if not just a type "suggestion") |
| 30 | + |
| 31 | +### Next steps |
| 32 | + |
| 33 | +* p4 next steps |
| 34 | + * read the first 6 chapters of TaPL |
| 35 | + * draw out what a better time would look like |
| 36 | +* schedule JE podcast |
| 37 | + |
| 38 | +### notes from JE |
| 39 | + |
| 40 | +* they have generators in JS so maybe we have laziness and also weak refs maybe |
| 41 | + * TODO ask ryan trinkle |
| 42 | +* building a langauge is a lot but a JS framework is great |
| 43 | + * people would immediately download and play with it |
| 44 | +* interpreting haskell seems like a lot of work |
| 45 | +* starting from the top (the UI like aprt.us) is good |
| 46 | +* could start from a DSL for the streams --> maybe a macro thing for JS or a little lang with syntax and a parser with embedded JS |
| 47 | +* he's skeptical of the Xerox parc advice to build one's own infrastructure to build what you want on top |
| 48 | +* imagining UI is a pain but implementing is weeks or months of work, but a DSL can give you great sense of the UI and so much easier to build |
| 49 | + * the risks with this is that you'll go with things that are good on paper but hard to visualize |
| 50 | + * tons of DSL tools: spoofax, MPS, look into this for JS |
| 51 | +* strongly recommends typescript |
| 52 | + * there's a lot of work on "functional typescript" and some even have typeclasses! |
| 53 | +* subtext in the past has been "parametric in my mind", living in multiple places in the design space |
| 54 | + |
| 55 | + |
| 56 | +### His work |
| 57 | + |
| 58 | +* minimum viable paradigm |
| 59 | +* maybe someone will steal it if it's communicated well enough |
| 60 | +* maybe people would join as contributors and could work on parts |
| 61 | +* classically, research is stealing idea -- not working with you |
| 62 | +* people who cite me is for "inspiration" and I don't get cited in actual research yet because they are not solid enough --> like how Eve inspired Apple |
| 63 | +* ultimate goal is to have an impact and what's the best way of doing that? |
| 64 | +* I've always avoided making design commitments but now it feels good to settle down |
| 65 | +* think on a time to do a work retreat with JE, maybe Sarah will come |
| 66 | +* reminder that PX deadline Feb 1 |
| 67 | + |
| 68 | + |
| 69 | +<script> |
| 70 | + |
| 71 | +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| 72 | +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| 73 | +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| 74 | +})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); |
| 75 | + |
| 76 | +ga('create', 'UA-103157758-1', 'auto'); |
| 77 | +ga('send', 'pageview'); |
| 78 | + |
| 79 | +</script> |
0 commit comments