Skip to content

Latest commit

 

History

History
234 lines (226 loc) · 118 KB

andre-staltz-call-10-9-17.md

File metadata and controls

234 lines (226 loc) · 118 KB

Agenda

  • Where are you in the world?
  • In NY ever?
  • In finland
  • Scuttlebutt
  • How's it going?
  • How to help?
  • Open collective?
  • My master plan
  • Programming languages
  • Prototypes
  • Advice on master plan
  • People I should talk to?
  • FRP for kids?
  • Animation
  • Reading list?

Notes

  • Make things easier

  • Adding constraints

  • Like Lego

  • Advice on strategy

  • Hardest part is getting traction - Marketing / growth hacking

    • Making home page
    • README
    • "I don't know where early cyclejs users came from" - Things that helped the adoption
    • Picking the right keywords, buzz words
    • Reactive RxJS Functional VirtualDom - Marketing needs to have a big role
    • "How do I deal with people?"
    • "How do I get people to understand?"
    • Needs to be an early dialogue - Early adopters
    • Interested in new stuff
    • But ephemeral interest, so need to evolve enough to get next level of developers interested
    • Unintended use cases are key, see how people use things - Choose buzzwords to choose target audience
    • When you want to make something for everybody, don't market it this way in the beginning
    • The late majority doesn't look for things like them. They just follow the early community - Buzzwords not going to help
    • Reactive - 2013-2015
    • But people realizes that this doesn't mean anything
    • Reactive Manifesto - When it was new it was confusing people and they liked it
    • FRP - would bring a bunch of Haskellers
    • Elm used FRP when Reactive was a buzzword
    • But not sure that will help
    • Spreadsheets
    • AI is a good buzzword
    • Stream is a good buzzword
  • How is the world going to be in 10 years from now? - AI could be

    • What would be the accessible computing platform for everyone be using AI? - Blockstack could be
  • When choosing a paradigm, there are not that many options -

    • http://wiki.c2.com/?ThereAreExactlyThreeParadigms
    • Does not exist - requires AI?
    • "Please do what I want"
    • Turn off the light
    • Make it cozy
    • Put on a nice movie
    • Humans don't like dealing with someone that's pedantic
    • Elm is pedantic with British culture: nice when it corrects you
    • TODO think about the upsides and downsides of each paradigm
    • FP - Difficulty of expressing things in unfamiliar way
    • Logic programming - Explosion of search space so things are slow - Precision
    • Don't necessarily need AI
    • That's logic programming
    • The computer could guess what you mean with defaults
    • In the future you could guess with AI
    • Could also crowdsource these default values
    • One option is a conversational
    • Chat bot style
    • Human programmers are like this currently
    • "Expert systems" AI
      • For detecting diseases
      • TODO figure out why this was abandoned?
      • Maybe because you have to add all the questions by hand - Functional programming and logic programming Hybrid
    • (Relation is generalization of a function if you allow relations inside functional program)
    • Picks some default values
    • Maps from output back to input
  • Advice on how I spend my time - First a chaotic period

    • Very hacky
    • And this is good
    • Keep this so you can quickly experiment with ideas
    • Try not to make it a process or too formal too early - Make sure you really define a use case
    • Make games
    • Eve - help companies that have a lot of spreadsheets - Make a hacky tool that maximizes value for that use case and customer - Don't be afraid to make it hacky that delivers value quickly - Use Typescript, not JavaScript
    • Will be easier to refactor with a typed language - Spend more time with the problem
    • Not with the solution
    • This is what the problem is / this is how the problem looks
    • Get a shape of it
    • Then you'll see what the solution is
    • Need more than a vague idea of it
    • ** TODO THINK ABOUT THIS**
    • It's only after 248 comments they found a solution here
    • staltz/cycle-onionify#28 - Make simple things so people can give feedback on small details
  • CycleJS roadmap for next year

  • Move away from functional and reactive buzzwords

  • Abstraction behind: stream graph - Don't even need to say that the nodes are streams

  • Use case for reactive Scratch is there

  • But might take more time

  • Could make this more small

  • Would be able to iterate faster on text

  • But how novel would the library be or just use existing

  • Is this just fran? - Glitch avoidance

    • Happens when you do a combine
    • Systems need to have an idea of what's "happening at the same time"
    • CycleJS doesn't have this
    • Provides absolute guarantees everywhere
    • But glitches rarely happen when you allow them and there are ways of solving them
    • https://staltz.com/rx-glitches-arent-actually-a-problem.html
  • What should I read or look up? - https://ds300.github.io/derivablejs/

  • Conal Elliott - He's solving for good garuntees in 100% of cases - As opposed to 98% like CycleJS - So feels like wasted effort to provide guarantees for 2%

  • Woof vs Scratch

  • There is great respect for Scratch

  • Does blockly exist? - Showed cycle v2

  • Blockly or scratch descibes imperitive with nested commands

  • CycleJS stream graph as IDE - Some parts are not part of the graph

  • Declarative scratch with blockly - Two different tools and you could use them together in a bigger tool

    • One is declarative
    • One is imperative
  • One of the most important building blocks - ** Scratch-like thing but for evaluation**

    • ** Expression editor**
    • ** Blockly alternative**
    • ** TODO THINK MORE ABOUT THIS**
    • ** Is the most important problem to solve now?**
      • ** This could improve things for kids by a lot**
      • ** Could be used in a lot of projects**
    • ** How to build this?**
      • ** Do this on SVG**
      • ** Can do custom**
      • ** SVG and HTML**
      • ** Maybe just use React because good error**
      • ** CycleJS uses typeerrors**
      • ** Elm has great errors** - Elm blockly that writes elm that you teach to kids
    • Then from that something else grows
  • Should I work on http://glench.com/LegibleMathematics/? - Symbolic computing - But only useful for math - This but for update functions so it wouldn't look like this?

    • Look like Cycle v2
  • Like this https://pumpula.net/foolproof-html/?

  • Compile to cyclejs

  • Typescript? No that would be weird

  • What to work on next?

  • Streamsheets - no, too much unknown

  • Blockly for Elm or CycleJS - Could spend an hour here thinking about how to

  • Expression editor - Legible mathematics - Foolproof html - Thing to go inside every other app I ever made in this space

    • Also go inside spreadsheet expressions
    • Basically like codemirror but for expressions - Could eventually turn into a blockly alternative
    • Which I could then use to make into a UI for cycle or elm or anything
    • Need to think about why building elm blockly or cyclejs blockly doesn't work
    • Maybe has to do with sequential nature of the blocks vs how they fit inside each other
    • Think about how to make this infinitely customizable - Question: is this the highest leverage thing to build now?
    • Can always approximate with VBA expressions or like with what aprt.us has - Next steps
    • Good extensive googling to see if this exists
    • Compile a list of similar things, like aprt.us, google sheets, what numbers on mac does, soulver, etc
    • https://github.com/viskell/viskell
    • Think about the projectional editor tradeoffs
    • Lamdu
    • Isomorph
  • FRP WoofJS - Read

  • What to work on this week

  • Getting feedback on master plan and what to work on next

  • Continue developing plans for ideas of things to work on next - Marinate in problem - Think through solutions