|
Paul
@
_paulshen
San Francisco, CA
|
|
Code and aesthetics.
|
|
|
1.510
Tweetovi
|
191
Pratim
|
486
Osobe koje vas prate
|
| Tweetovi |
|
Paul
@_paulshen
|
23 h |
|
I'm starting to feel server-side rendering + client hydration serves a small niche. The content can't be too dynamic (hydration issues). If it's very static, rerendering the whole page is wasteful.
|
||
|
|
||
|
Paul
@_paulshen
|
3. velj |
|
I like the idea of having multiple representations for known types. e.g. flipping to a visual editor to edit markup/CSS. Dreamweaver/Frontpage v9999
|
||
|
|
||
|
Paul
@_paulshen
|
3. velj |
|
I was thinking less about the source of truth than the ways we manipulate it (abstraction layers like you said). Text is more portable but not necessarily more compact. Invalid programs are representable with text.
|
||
|
|
||
|
Paul
@_paulshen
|
30. sij |
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
youtube.com/watch?v=tSnnfU… There are good ideas in this haha. Hard to find concrete artifacts of their work. I'm curious what happens if you apply these principles to today's stack (React, TypeScript, etc.)
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
You'd have human-readable labels on identifier nodes. Maybe on collections of nodes as well.
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
Yeah! I really like what @darklang is doing and need to learn more about MPS. I wonder if there's a middle-ground approach where you flip between text and AST. VSCode and IDEs have AST-aware operations which use text as source of truth.
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
Imagine if syntax errors weren't a thing. It'd be huge for engineers new to a language. Version control on AST would be pretty crazy. A function rename would go from N lines to a single operation. And code review!
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
Text has many inherent advantages. Humans communicate with words and are experts at reading and manipulating text. Keyboards are optimized for text entry.
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
Why do we code with text instead of something closer to ASTs? 🤔
|
||
|
|
||
|
Paul
@_paulshen
|
29. sij |
|
The hardest thing about React hooks is useEffect interacting with closures (e.g. setTimeout, event listeners, subscriptions). Most of the time you don't want to reattach when a dep changes.
|
||
|
|
||
| Paul proslijedio/la je tweet | ||
|
Daniel Destefanis
@it_daniel_d
|
28. sij |
|
It's live! 🥳 Design Lint, my new @figmadesign plugin is available on Figma. Lint your designs for missing styles without logging in or signing up. It's also open source! More information at lintyour.design pic.twitter.com/fK5GfMrR7Q
|
||
|
|
||
|
Paul
@_paulshen
|
27. sij |
|
No Reason/OCaml unfortunately. TypeScript, Rust, Python, and Elixir. The language principles are appreciated though!
|
||
|
|
||
|
Paul
@_paulshen
|
27. sij |
|
Going to be writing a lot of Reason 😀
|
||
|
|
||
|
Paul
@_paulshen
|
26. sij |
|
I'm going to spend time thinking about tools for product engineers. Mess around with ASTs. Ways to visualize code bases. It's not well-defined yet but I'm excited! More tweets to come.
|
||
|
|
||
|
Paul
@_paulshen
|
26. sij |
|
I just left an honestly great job at @discordapp. The team is made of good and talented people with big plans. Let me know if you want an intro!
As for what I'm doing next /
|
||
|
|
||
|
Paul
@_paulshen
|
21. sij |
|
I was just in Tulum this weekend too!
|
||
|
|
||
|
Paul
@_paulshen
|
30. lis |
|
This seems consistent with TypeScript's decisions (closest one is bivariance). The call to mutate doesn't invalidate the refinement.
typescriptlang.org/play/#code/GYV…
|
||
|
|
||
|
Paul
@_paulshen
|
11. lis |
|
I find it useful to have state outside React components. It acts like a global but is convenient to not have to wire to the correct component's state/context.
I'd be careful using context for state that changes often. github.com/facebook/react…
|
||
|
|
||
|
Paul
@_paulshen
|
11. lis |
|
Obviously biased but check out github.com/paulshen/resto…. Looks like Reductive has been updated to work almost the same so that might be the more popular solution.
|
||
|
|
||