|
@Conaw | |||||
|
33. The world is a worse place because MIT switched from teaching LISP in the intro CS courses to teaching Python.
|
||||||
|
||||||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
23. Weaknesses of Excel
Really only works for quantitative thoughts
But there are all sorts of relationships between qualitative thoughts, and algorithms you can run on them
We need a programming language for meta-cognition, + db + io
ideas here
twitter.com/Conaw/status/1ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
24. Advances in programming languages reduce incidental complexity -- the complexity of talking with machines that doesn't relate to problems you're trying to solve.
Big advances: garbage collection/not having to worry about memory management, performant immutable datastructures
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
25. Big ideas that shape whole languages have made their way into Clojure through libraries
The paper Communicating Sequential Processes inspired the creation of Golang (Go) -- very popular at google.
In Clojure, core.async library gives you all that!
youtube.com/watch?v=drmNlZā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
26. Bret Victor is right about direct manipulation generally.
Specifically: CSS is a flaming pile of garbage.
Messing with margins and padding to try to get a layout to look the way you want is 100% incidental complexity.
youtube.com/watch?v=PUv667ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
27. Just parroting his quote from above talk
"So much of creativity is discovery, and you can't discover anything if you can't see what you're doing"
Similarly, programming languages should not only be conceived of as text or symbol based
see
worrydream.com/KillMath/
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
28. Getting beyond abstract symbols does not mean getting beyond abstract ideas.
The power of programming languages (and why you may want to learn them, even if not intent on building software) is that they let you get you hands dirty with building and using ur own abstractions.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
29. Cheating and linking an old thread
twitter.com/Conaw/status/1ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
30. Datalog is a much better query language than SQL, and will be more widely used than SQL in 2050
But might be only if you count people using natural language datalog, which will go mainstream in next 10 years
web.archive.org/web/2018110211ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
31. Urbit is an interesting project, but won't actually take off unless/until someone writes an X -> Hoon or X -> Arvo or X -> "whatever" compiler because no one actually wants to think in Yarvis' pig latin.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
32. Hosted languages that provide nicer abstractions over the libraries from their host language have a huge huge advantage over new languages starting from scratch.
The ability to work with libraries from an existing/broader ecosystem is damn near table stakes for a new lang
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
34. If you haven't learned a programming language for a reason other than
A) It was a assigned to you in school
B) You thought it would make you money
Then I doubt your
a) curiosity
b) open-mindedness
and as a result
c) competency as a engineer
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
35. There are two problems for programming languages to solve
1) Performance on machines
2) Usefulness as a tool for thought
Right now those are complected -- Intentional Software was doing something interesting toward separating those two out
en.wikipedia.org/wiki/Intentionā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
36. **Technical people** are just people who "try to understand"
Killing conversations with "I'm not technical" is a dangerous practice that will hurt you (and those around you) in the long run.
roamresearch.com/#/v8/help/pageā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
37. Your type system won't save you
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
38. Provably correct doesn't mean it works
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
39. Contracts and gradual typing > strong types
youtube.com/watch?v=XTl7Jnā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
40. Many people with 10 years of experience in software engineering haven't actually grown or learned much in that time.
They've done the same first year 10 times on repeat.
Polyglots generally avoid falling into this pattern.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
41. Reagent (A Clojurescript wrapper around React) is way easier to read, write, and maintain than vanilla react.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
42. Dan Abramov has said that Redux is not a javascript clone of Re-frame (the CLJS framework for writing SPAs in react), it is just that both were inspired by elm and arrived at similar pattern...
But even so... Re-frame was first and still much better in almost every way
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
43. The Re-frame documentation is most informative/entertaining read-me on github
github.com/day8/re-frame/ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
44. Clojurescript is an EXCELLENT choice for consumer or SaaS internet startups.
If you are starting a new company and can afford it, you should spend invest a few months in learning it first and building in it vs your normal stack, will pay huge dividends over time.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
45. A great engineer can learn Clojure well enough to be productive in under a month.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
46. Setup for react development (Webpack/Babel/100 other tooling things) was a dumpster fire in 2015.
It's probably still bad.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
47. Create-React-App and Gatsbyjs probably have made setup for Javascript projects much better.
Still probably not as easy to use or as powerful as shadow-cljs.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
48. Typescript is mostly hype.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
49. VScode is a typescript IDE, is probably pretty magical, and I am likely missing some cool sources of tools for thought inspiration by not playing in that ecosystem.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
50. Airtable is on track to be the Wordpress of relational databases.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
51. Graph databases are far better than relational databases for most things.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
52. Amendment to 4. No one who is loud about OO is doing real OO.
Agree Erlang is OO
twitter.com/weskerfoot/staā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
53. In general, folks thinking about programming languages and computing more broadly, don't know enough history.
Folks interested in the topic should read "The Dream Machine" to start and not blindly trust shitposters like me.
VN def over-hyped tho
twitter.com/Grady_Booch/stā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
54. One reason to know history is so you can see what elements of your language were put in place to deal with constraints in your environment that no longer exist
We don't use punch-cards, we don't need a distinction between expressions and statements
paulgraham.com/diff.html pic.twitter.com/ZrFTndLQfy
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
55. Questions are not a sign of ignorance, they are a sign you are paying attention.
It's more than OK to ask people to define terms or give a concrete example, and ok to stay in conversations you can barely understand.
Applies to conversations in and about all languages.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
55. Meta opinion about my opinions on programming languages
twitter.com/Conaw/status/1ā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
56. Datomic is far and away the best graph database available today.
Has Java and Clojure APIs, non jvm languages can use rest apis.
If you're a startup, worth being in Clojure though.
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
57. Listen, I'm not saying he didn't have massive contributions, esp on the math side.
Just know too many AI bros (who I still love) who've said things like "We just need 50 Von Neumanns to build an AGI god and we're set"
No.
And he's not all that.
twitter.com/zhaphod/statusā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
58. The most important idea in Datomic is that there is no reason to overwrite data just because it changes.
It is more than a graph database, it is a graph database with a notion of time and history built in.
What was Joe's address as of Dec 2017?
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
59. The main limitation of the EAV tuples (popular in Semantic Web land) is that you can't easily describe the relationships.
You get the FACTS, but it is a bit tricky to add information to those facts like "where did this info come from", or make statements like
If A then B
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
15. pro |
|
60. To model human thought in a computable way you need to solve the problem in 59, you move closer to this goal if you give each "fact" or "edge" in the graph a unique identifier.
Long history of this in Associative Databases
Example in @RoamResearch
roamresearch.com/#/v8/help/page⦠pic.twitter.com/cBYtMW0npe
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
16. pro |
|
My shit posting on Eve has evoked the ire of @ibdknox, whose work I do greatly respect.
So will offer my more nuanced opinions on Eve and programming languages related to tools for thought, esp related to @RoamResearch and see if that gets me the last 40
twitter.com/ibdknox/statusā¦
|
||
|
|
||
|
Conor White-Sullivanš§¢
@Conaw
|
16. pro |
|
61. Designing a programming language - a medium for people to express their thought in a machine computable way is insanely hard.
Perhaps even harder to get the time and funding to do that level of deep work.
Exponentially harder to do on VC timescales.
|
||
|
|
||