- 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
- 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?
-
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
- https://github.com/staltz/cycle-onionify/issues/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/
- Similar to mobX
- https://mobx.js.org/
- Often described as spreadsheets
- Plugging one thing for another
- Allow people to change things imperatively
- They do avoid glitches
- Allow you to give “same time” at pragmatic level
- One of the only dataflow languages
- Recommended from Evan from Elm
- Notion of things happening at the same time: synchronous
- 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?
- 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
- 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