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 2022/12 Week 4 #167

Closed marianoguerra closed 1 year ago

marianoguerra commented 1 year ago
marianoguerra commented 1 year ago

🎹 Engelbart's Unfinished Revolution πŸ’‘ Noncommand User Interfaces ✍ Feynman Diagrams of Software

Two Minute Week

πŸŽ₯ Week 51 via Peter Saxton

🧡 conversation

Vimeo Thumbnail

Sneak peak of the next version of my structural editor. The core AST receieved a fairly big rewrite. (added effect types, made case statements first class). So now the editor needs to be updated to match the new tree.

marianoguerra commented 1 year ago

Our Work

🐦 Continued experimentation with additional hardware interfaces for programming via Jack Rusher

🧡 conversation

🐦 Jack Rusher: I got an @elgato Stream Deck+ as an early holiday gift from @missginsu this year, so I wrote up a USBHID driver for it in Clojure. Now I can livecode it from within emacs for interactive control of my digital art sketches. πŸ₯°

Tweet Thumbnail

marianoguerra commented 1 year ago

πŸ“ The Next Browser Language via Nicholas Yang

🧡 conversation

Wrote up a post on what I want for the next browser based language. Would love some thoughts on this draft!

marianoguerra commented 1 year ago

Reading Together

πŸ“ β€œProgramming Paradigms for Dummies: What Every Programmer Should Know” by Peter Van Roy (2012) via Christopher Shank

🧡 conversation

This chapter gives an introduction to all the main programming paradigms, their un- derlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dual-paradigm languages and a definitive lan- guage. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focus- ing on concurrency, which is widely considered the hardest concept to program with. We present four little-known but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both ea- ger and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multi-core processors and we give several examples from computer music, which often uses these paradigms.

marianoguerra commented 1 year ago

Thinking Together

πŸ’¬ Jarno Montonen

🧡 conversation

Any opinions on should the editors in which you edit a structure (AST) rather than text be called Structure Editors, Structured Editors, Structural Editors (just saw Peter Saxton use this term in his post), or Projectional Editors? Are all of these synonyms or are they just related in specific ways?

Personally I like Structure Editor the best, as opposed to Text Editor. Although Structured and Structural sound correct, I feel like they refer to the editor UI. Similar to how the terms graphical and visual are used. But a Structure editor could be either visual or textual, so having Structure Editor as the 'base term' would allow being more specific by saying Graphical Structure Editor or Textual Structure Editor. Also, even if technically a structure editor would always use a projection of the structure, I feel like it would be best to reserve the term Projectional Editor to editors that explicitly support multiple projections of the said structure. However, Projection(al) might be a bit foreign term to people not familiar with the topic, so I would rather just use Structure Editor 99% of the time. I feel like one of the barriers for more widespread usage of structure editors is that you have to explain people what they even are and it would certainly be easier to change this if the developer field could agree on the terminology πŸ™‚.

Any thoughts?

marianoguerra commented 1 year ago

πŸ’¬ Paul Tarvydas

🧡 conversation

Question:

How did REGEX jaibreak from Compiler Technology and become popular with non-compilerists?

First guess: (1) grep, sed, awk, etc. broke the ice, and, (2) perl brought REGEX into the mainstream.

I guess that perl solved a latent problem, which made it very popular. What was that problem?

marianoguerra commented 1 year ago

Content

πŸ“ Little Beginnings Everywhere via Christopher Galtenberg

🧡 conversation

Where FoC and TFT overlap... passionate care for "little beginnings"

marianoguerra commented 1 year ago

🐦 Tweet from @ChengduLittleA via Scott Anderson

🧡 conversation

This is fun

🐦 YimingWu @ChengduLittleA@mastodon.art: #OurPaint The node based brush engine!

:D

Tweet Thumbnail

marianoguerra commented 1 year ago

πŸŽ₯ Engelbart's Unfinished Revolution | 1998 | Session IV via Andreas S

🧡 conversation

Youtube Thumbnail

Hello everyone πŸ‘‹

I found this very interesting session from 1998 - it delves into the territories of "humanistic computing". Terry Winograd, @stewartbrand and Jaron lanier - throughts and feedback on this is appreciated :)

marianoguerra commented 1 year ago

πŸŽ₯ Dave Snowden | Engage citizens, empower communities, enact stories | State of the Net 2018 via Andreas S

🧡 conversation

Youtube Thumbnail

And another one since we have some long holidays before our selves: There are at least some interesting points ( at least for me) how dave snowden talks about our relationship to technology, and how we still can scale making better decisions

marianoguerra commented 1 year ago

πŸ“ Noncommand User Interfaces: Article by Jakob Nielsen via Nils Berg

🧡 conversation

Stumbled upon this from the Dial Box wikipedia page

[I]t may be one of the defining characteristics of next-generation user interfaces that they abandon the principle of conforming to a canonical interface style and instead become more radically tailored to the requirements of individual tasks

Not quite how it happened (this article is from the late 90s, i.e. pre-iPhone)

marianoguerra commented 1 year ago

🐦 Tweet from @VictorTaelin via Mariano Guerra

🧡 conversation

Maxwell equations of software? or rather Feynman diagrams of software? crossing fingers that some of this is true πŸ™‚

Twitter thread explaining it

High-order Virtual Machine (HVM) is a pure functional runtime that is lazy , non-garbage-collected and massively parallel . It is also beta-optimal , meaning that, for higher-order computations, it can be exponentially faster than alternatives, including Haskell's GHC.

That is possible due to a new model of computation, the Interaction Net , which supersedes the Turing Machine and the Lambda Calculus . Previous implementations of this model have been inefficient in practice, however, a recent breakthrough has drastically improved its efficiency, resulting in the HVM. Despite being relatively new, it already beats mature compilers in many cases, and is set to scale towards uncharted levels of performance.

Welcome to the massively parallel future of computers!

Interaction Combinators Paper

It is shown that a very simple system of interaction combinators , with only three symbols and six rules, is a universal model of distributed computation, in a sense that will be made precise. This paper is the continuation of the author's work on interaction nets , inspired by Girard's proof nets for linear logic , but no preliminary knowledge of these topics is required for its reading.

Interaction nets are a graphical model of computation devised by Yves Lafont in 1990 as a generalisation of the proof structures of linear logic. An interaction net system is specified by a set of agent types and a set of interaction rules. Interaction nets are an inherently distributed model of computation in the sense that computations can take place simultaneously in many parts of an interaction net, and no synchronisation is needed. The latter is guaranteed by the strong confluence property of reduction in this model of computation. Thus interaction nets provide a natural language for massive parallelism.

🐦 Fica, vai ter monads: Since I've been receiving a bunch of DMs asking what HVM, Kindelia and Kind are, and since it is still so early (we don't even have a pitch deck yet!), let me make some tweets to present our work, and a sneak peek on the crazy things we're building. GIANT TECH THREAD INCOMING

marianoguerra commented 1 year ago

🎺 Riffusion: riff + diffusion via Paul Tarvydas

🧡 conversation

marianoguerra commented 1 year ago

https://tinyletter.com/marianoguerra/letters/future-of-coding-weekly-2022-12-week-4