Search a title or topic

Over 20 million podcasts, powered by 

Player FM logo
Artwork

Content provided by Ivan Reese, Jimmy Miller, and Lu Wilson. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Ivan Reese, Jimmy Miller, and Lu Wilson or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.
Player FM - Podcast App
Go offline with the Player FM app!

Reflection 14: /about

1:52:17
 
Share
 

Manage episode 222523227 series 2343646
Content provided by Ivan Reese, Jimmy Miller, and Lu Wilson. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Ivan Reese, Jimmy Miller, and Lu Wilson or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.

If you haven’t been following my research journey, this episode is a great place to join! I recap of who I am, where I come from, what I’m trying to accomplish, and how I hope to accomplish it.

The mission of this project is, broadly, to “democratize” programming. My new phrase is:

Enable all people to modify they software they use in the course of using it.

This mission would cause the following changes, in order of increasing importance:

  1. All software will be co-created by decentralized communities, rather than centralized groups or companies.
  2. Through the power of crowd-sourcing, the quality of all software will become much higher than existing software.
  3. All software will be much more composible, interoperable with other pieces of software.
  4. All software will be arbitrarily customizable, allowing for bespoke, tailored experiences.
  5. Learning to communicate with computers teaches one how to think more clearly, precisely, mathmatically, and powerfully. If one can manipulate the software one uses, if only one learns how to organize one’s thoughts, many people will self-teach themselvse to do just that.
  6. As the fabric of the world is eaten by software, the ability to fully manipulate that software one uses is an essential freedom.

This vision is not new nor creative: it’s obvious that people would change things if they could. Yet this problem has proven stubborn over the decades and most have given it up as insoluble. We have all but forgotten the essential characteristic of computers: their malleability.

In order to accomplish this vision, I believe there are three large categories of problems that need to be addressed:

  1. Rid ourselves of the IO Monad, replacing it with better abstractions for whole systems.
  2. Create a better programming experience for the complex abstractions we create to avoid IO.
  3. Reimagine version control for a world where software looks very different than it does today, with many more forks, at many more levels than just one-deep off of master

My recent work was on ridding ourselves of the IO Monad from user interfaces, which is building on Conal Elliot’s FRP work. My paper and talk at REBLS last month argues that Elm Architecture makes software take longer to understand (which is untenable if we want people to be able to modify the software they use in the course of using it) as compared to the higher-order and cyclic streams of Conal’s original FRP.

My future work will be improving the programming experience of “original FRP”, potentially with a Haskell-inspired structured editor. I will also extend Conal’s FRP work to also removing the IO Monad from the “backend”.

In the episode I add a lot more color to these points, as well as discuss my personal background, the past and future of Future of Coding meetups, my experience at SPLASH last month, and other whacky ideas!

You can see the transcript for this episode at https://futureofcoding.org/episodes/33.

Support us on Patreon: https://www.patreon.com/feelingofcomputing

See omnystudio.com/listener for privacy information.

  continue reading

78 episodes

Artwork

Reflection 14: /about

Feeling of Computing

199 subscribers

published

iconShare
 
Manage episode 222523227 series 2343646
Content provided by Ivan Reese, Jimmy Miller, and Lu Wilson. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Ivan Reese, Jimmy Miller, and Lu Wilson or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://podcastplayer.com/legal.

If you haven’t been following my research journey, this episode is a great place to join! I recap of who I am, where I come from, what I’m trying to accomplish, and how I hope to accomplish it.

The mission of this project is, broadly, to “democratize” programming. My new phrase is:

Enable all people to modify they software they use in the course of using it.

This mission would cause the following changes, in order of increasing importance:

  1. All software will be co-created by decentralized communities, rather than centralized groups or companies.
  2. Through the power of crowd-sourcing, the quality of all software will become much higher than existing software.
  3. All software will be much more composible, interoperable with other pieces of software.
  4. All software will be arbitrarily customizable, allowing for bespoke, tailored experiences.
  5. Learning to communicate with computers teaches one how to think more clearly, precisely, mathmatically, and powerfully. If one can manipulate the software one uses, if only one learns how to organize one’s thoughts, many people will self-teach themselvse to do just that.
  6. As the fabric of the world is eaten by software, the ability to fully manipulate that software one uses is an essential freedom.

This vision is not new nor creative: it’s obvious that people would change things if they could. Yet this problem has proven stubborn over the decades and most have given it up as insoluble. We have all but forgotten the essential characteristic of computers: their malleability.

In order to accomplish this vision, I believe there are three large categories of problems that need to be addressed:

  1. Rid ourselves of the IO Monad, replacing it with better abstractions for whole systems.
  2. Create a better programming experience for the complex abstractions we create to avoid IO.
  3. Reimagine version control for a world where software looks very different than it does today, with many more forks, at many more levels than just one-deep off of master

My recent work was on ridding ourselves of the IO Monad from user interfaces, which is building on Conal Elliot’s FRP work. My paper and talk at REBLS last month argues that Elm Architecture makes software take longer to understand (which is untenable if we want people to be able to modify the software they use in the course of using it) as compared to the higher-order and cyclic streams of Conal’s original FRP.

My future work will be improving the programming experience of “original FRP”, potentially with a Haskell-inspired structured editor. I will also extend Conal’s FRP work to also removing the IO Monad from the “backend”.

In the episode I add a lot more color to these points, as well as discuss my personal background, the past and future of Future of Coding meetups, my experience at SPLASH last month, and other whacky ideas!

You can see the transcript for this episode at https://futureofcoding.org/episodes/33.

Support us on Patreon: https://www.patreon.com/feelingofcomputing

See omnystudio.com/listener for privacy information.

  continue reading

78 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Copyright 2025 | Privacy Policy | Terms of Service | | Copyright
Listen to this show while you explore
Play