marianoguerra / future-of-coding-weekly

repository to work on future of coding weekly newsletter
https://tinyletter.com/marianoguerra/
32 stars 3 forks source link

Future of Coding Weekly 2021/09 Week 2 #94

Closed marianoguerra closed 3 years ago

marianoguerra commented 3 years ago
marianoguerra commented 3 years ago

⏳ Time & Computation 🧮 Algebra UX 🚀 Lambdu Structured Editor i18n 🧠 Type Talk

Our Work

🎥 New Feature: Data Transformation on Multiple Cards via Mariano Guerra

🧵 conversation

Thumbnail

marianoguerra commented 3 years ago

📝 fishdraw generative art source via Paul Shen

🧵 conversation

I took Lingdong's fishdraw generative art source and broke apart the code onto this natto canvas (my spatial live JS project). I think it's an interesting test of whether the environment scales and how the coding experience differs from a traditional editor. I share some detail videos in this thread. Check it out and would love to hear your thoughts!

🐦 Paul Shen 沈博文: I took @LingdongH's beautiful single-file fishdraw js and exploded it onto a natto canvas. an experiment reading code in a spatial live programming env. check it out on a computer! https://natto.dev/@paul/215716c502f046d385ba179be2323aa2

details in thread /

marianoguerra commented 3 years ago

📝 Michael Gummelt via Michael Gummelt

🧵 conversation

Hi all. I've recently met many from this community who have recommended I post here (Shout out to Breck Yunits and Steve Krouse and @Szymon Kaliski).

Me: I'm Michael Gummelt, a Stanford alum and former co-founder of Heap Analytics. I've written here about the future of the low-code market.

Product: My new company, Plato, is a low-code platform for building internal tools. You can think of it as if Retool and Airtable had a beautiful baby. Unlike Retool, it's built for citizen developers. Unlike Airtable, it integrates with a company's existing databases and APIs. And unlike any product, it innovates primarily through features for Programming by Example. I believe the only way to democratize computing is by letting users think concretely rather than symbolically.

Company: Our customers are ops teams at tech-enabled services companies in sectors like financial services, logistics, and healthcare. I just raised a $2M round from SV Angel, the former CTO of Dropbox, the co-founder of Quora, and lots of others.

Job: I'm looking for a founding engineer eager to democratize computing and earn a lot of equity. If you or someone you know is interested, hit me up at mgummelt@plato.io and I'll show you a demo!

marianoguerra commented 3 years ago

Thinking Together

📝 Hest Podcast, Episode 25 via Florian Schulz

🧵 conversation

When Ivan Reese talks about the data model in Hest (Hest Podcast, Episode 25), he mentions things like:

He also mentions a way to organise data where each property (name, color, position, …) is stored in its own Array – in contrast to an Array of Objects of Properties.

This reminded me of a talk I had seen at Unite (Unity Conference) about “Data-Oriented Design”. While it makes a lot of sense in terms of memory usage, caching and lookup performance, I barely see data-oriented design today.

What are examples of programming languages or software that are using/promote data-oriented design outside of game development?

marianoguerra commented 3 years ago

📝 the theory of polynomial functors via Nick Smith

🧵 conversation

Calling all software engineers who know basic category theory: some applied category theorists in the US are organizing a hackathon to explore how the theory of polynomial functors can be applied to software development (new programming libraries and/or languages). The attendees would be a mix of software engineers (who know category theory) and category theorists. If you'd be interested in attending or brainstorming about such a hackathon let me know. I've offered to help organize it, but we need more input from software engineers. 🙂 This would be an in-person event in the US, taking place ~March next year.

There is a short course and book draft on the category of polynomial functors, outlining its applicability to interactive systems and databases. I expect these applications will be the focus of the hackathon.

marianoguerra commented 3 years ago

💬 Ivan Reese

🧵 conversation

I'm thinking more about the sensation of time, as it pertains to the execution of code. (Yeah, back on my bullshit.) I see a spectrum here — a spectrum of different sensations of time for different ways we interact with computation.

On one end of the spectrum, we have raw math. There's not supposed to be any sensation of time in the evaluation of math. A variable always has a specific value; relationships either exist or they don't. It might take you (or a computer) some time to crunch values and arrive at a result, but that's absolutely not supposed to be part of the aesthetic. Conal Elliot's Denotational Design is an application of this sort of thinking to software design. Lambda calculus, Curry-Howard, and some of the more hardcore FP languages all exist — infinitely, suspended frozen in midair — over here. Of course, no computer language is actually timeless (that violated physics, and this is addressed in Church-Turing and related work, and we all agree never to try that again), but the desired sensation — the aesthetic — is one in which time is not a constraint or concern.

On the other end of the spectrum, we have mechanical computers. There's no avoiding the sensation of time when operating these clockwork beasts. You're required to think about the passage of time as you plan an execution, or else the result will be nonsense, or malfunction. Nothing is instant, nothing exists until you build it. Here we find the CAP theorem, Turing machines, and Rich Hickey's The Language of the System, all of them toiling, sweating, grinding, churning.

[Aside: note that Functional Programming is orthogonal to this spectrum — it is not bound to the math side. On either extreme and anywhere in between, you can have programming that's about immutable values (or not), static vs dynamic binding, data & behaviour co-located (or not), for-each vs map, place-oriented vs value-oriented, and so forth.]

I've spent all my time over in the mechanical labour camp — this is where Hest lives. So I don't have much insight at all into the crystal tower of pure evaluation. So beyond just suggesting "Hey, talk about this spectrum" (which, granted, I am suggesting), I'd also like to know what examples you can point to that obviously violate this common alignment of aesthetics. For example: what's the most I feel the passage of time in execution you can get to when working with something like Coq, or Haskell, or APL? Is there some step debugger for SML that really lets you feel the iterative progress through execution? Or on the other side, what's out there that takes a process rooted in time — like CAP — and makes it shake that feeling of temporality? Look at something like Erlang/OTP — they take Prolog (timeless) and reify the sensation of process ("let it fail"). Who else is doing that? Is anyone doing it in the other direction?

marianoguerra commented 3 years ago

💬 Jimmy Miller

🧵 conversation

I know a lot of us here have been influenced by talks like Bret Victor’s “Inventing on Principle”. But I’m curious about your favorite papers that are somehow related to the future of coding. I’ll start with mine.

PILOT: A Step Toward Man-Computer Symbiosis - Warren Teitelman

This is actually a thesis, so it is a bit long, though much of that length is taken up with a transcript. I will admit there is a lot in this paper that isn’t great. The resulting system is almost certainly something no one would want to use today. But yet in it are such interesting ideas.

It is often considered to be the paper that introduced aspect oriented programming, but I believe that sells it a bit short. PILOT is an integrated, live, editing and computational system. It’s goal is to allow programmers to 1) customize their interface and syntax, 2) edit programs they are unfamiliar with 3) make changes not just to current functions in the program, but future ones as well 4) control how the program itself executes and so much more. It is a bit of a historical trip, but includes so many fascinating ideas.

Programming as Theory Building - Peter Naur

Naur lays out a view of the activity of programming that is both radical and yet highly attractive. A key consequence on his theory is that the real end product of programming is not the source code, not the build artifact, not the running system, but the knowledge that a programmer builds. So much follows from this. It is a fascinating paper that I highly recommend reading.

The Structure of a Programming Language Revolution - Richard P Gabriel

A beautiful paper about the changes to programming language research that Gabriel has seen over his career. I will just leave you with this quote that sets the mood for the paper.

That night I pulled the paper down from the ACM server and read it while outside enormous puffed clouds dwelled overhead, lit from beneath by the town of Porto de Galinhas on the Brazilian coast; the smell of burning sugarcane and bitter ocean pushed into my room.

What are your favorites? What papers have really pushed you in a particular direction? What papers do you think people should read, even if you disagree with them? Whatever the criteria for the paper being good, I want to know about it.

marianoguerra commented 3 years ago

Content

📝 Old news again. Two (old) Alan Kay's papers on Personal Computing and Novice Programming via Alexander Chichigin

🧵 conversation

marianoguerra commented 3 years ago

🐦 Tweet from @elzr via Daniel Garcia

🧵 conversation

🐦 Eli Parra 🌊: I want to manipulate equations on screen better than on paper.

Digitizing math script is so tiring, we usually just jump to automatic solvers after. But math is more than statements & solutions, it’s about the fun of engaging abstractions.

Algebra needs new interfaces!🧃

marianoguerra commented 3 years ago

🐦 Tweet from @LamduProject via Mariano Guerra

🧵 conversation

We code in many different languages, but there's one language that all programmers use.

This video introduces the issue and presents Lamdu's approach for code I18N.

marianoguerra commented 3 years ago

🐦 Tweet from @LamduProject via Mariano Guerra

🧵 conversation

The Lamdu project is excited to announce its new 0.8 release!

This release includes the first opensource internationalized IDE for a general purpose language.

It also includes many new features, UX improvements and bugfixes.

marianoguerra commented 3 years ago

🎥 Jaron Lanier: Virtual Reality, Social Media & the Future of Humans and AI | Lex Fridman via Andreas S

🧵 conversation

Thumbnail

In lex fridmans recent interview with Jaron Lanier, Lanier mentions a combination of Tik tok and github as a possible future collaboration Method. Spontaneous yet deep and valuable collaboration. He also shares nuanced and insightful perspectives on topics like AI, algorithms, crypto/blockchain and government/politics (perpetual annoyance - I love it ❤) HIghly recommend!

marianoguerra commented 3 years ago

📝 Interesting editor prototype via Tomas Čerkasas

🧵 conversation

🐦 Elliot: The graph editor prototype is working. Here's me creating a state machine graph inline in some JS.

marianoguerra commented 3 years ago

📝 Don Syme articulating his reluctance to adding type classes to F# via Ivan Reese

🧵 conversation

Via Jonathan Edwards on Twitter, here's F# designer Don Syme articulating his reluctance to adding type classes to F# and his critique of some aspects of typing / type theory in general.

marianoguerra commented 3 years ago

https://tinyletter.com/marianoguerra/letters/future-of-coding-weekly-2021-09-week-2