Handmade Network»Fishbowls

Fishbowls

Every two months on the Discord, we host a fishbowl: a panel conversation where a select few community members can discuss a topic in detail. Fishbowls give us the opportunity to discuss difficult subjects with more nuance and detail than you can find anywhere else on the Internet. In many ways, they're a distillation of everything the network is about.

This is an archive of those conversations. If you would like to catch one live, join the Discord!

We're still working through our backlog of fishbowls, so not all of these are available yet. We'll publish them as we finish them.

What, if anything, is OOP?

May 2022
Is object-oriented programming bad? Is it good? What even is it, anyway? This fishbowl explores OOP more carefully—what is the essence of it, what are the good parts, why did it take over the world, and why do we criticize it so much?

How to design flexible software

December 2021
We previously held a fishbowl about how to design to avoid configuration. But when you can't avoid configuration, how do you do it well? And if we want our software to be flexible, what other options do we have besides configuration? What other ways are there to make software flexible?

How software development is taught

June 2021
The Handmade Network exists because we are unhappy with the software status quo. To a large extent, this is because of how software development is taught. What are the good parts of software education today, what are the flaws, and how might we change things to improve the state of software?

The relationship of simplicity and performance

May 2021
In the community, we talk a lot about performance. We also talk a lot about having simple code—and the two feel somewhat intertwined. What relationship is there between simplicity and performance? Are there better ways to reason about "simplicity" with this in mind?

How to design to avoid configuration

March 2021
Configuration sucks. How can we avoid it, while still making software that supports a wide range of behaviors? What is the essence of "configuration", and how can we identify it? How can we identify what is "bad config", and design our software to avoid it?

Code skimmability as the root cause for bad code structure decisions

January 2021
Programmers tend to care a lot about "readability". This usually means having small classes, small functions, small files. This code might be "readable" at a glance, but this doesn't really help you understand the program—it's just "skimmable". How can we think about "readability" in a more productive way?

Approaches to parallel programming

November 2020
A discussion of many aspects of parallelism and concurrency in programming, and the pros and cons of different programming methodologies.

Lessons from the Lisp Jam

August 2020
In the summer of 2020 we held a Lisp jam, where many community members made exploratory Lisp-inspired projects. We held this fishbowl as a recap, as a time for the participants to share what they learned and explore how those lessons relate to our day-to-day programming.

Compile-time introspection and metaprogramming

June 2020
Thanks to new languages like Zig and Jai, compile-time execution and metaprogramming are a popular topic of discussion in the community. This fishbowl explores metaprogramming in more detail, and discusses to what extent it is actually necessary, or just a waste of time.

The future of operating systems in an Internet world

May 2020
Despite the web's technical problems, it dominates software development today, largely due to its cross-platform support and ease of distribution. At the same time, our discussions about the future of programming tend to involve new "operating systems", but those discussions rarely take the Internet into account. What could future operating systems look like in a world defined by the Internet?

If you'd like to help us plan more fishbowls, join the discussion over on GitHub.