Educational Codebases

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • cats

    Implementations of cat(1) from various sources. (by pete)

  • I think that some codebases can lend themselves to be read more than others. Consider for example GNU cat[0] vs. Plan9's[1], from which one can infer the overall readability of the two projects.

    In particular, codebases who are composed of small, well-isolated components, can be read one chunk at a time, like a book. But I wouldn't be surprised for most "professional grade" codebases to consist of organic, "cluttered" aggregate. Which, as you observe, aren't really suited to be read, even more so linearly.

    It also depends on one's intents, which are likely narrower in a professional setting (e.g. fixing a bug, implementing a feature; refactoring being a notable exception), than in a learning setting (e.g. learning how to write idiomatic parsers in Go by studying the Go parser itself). In this last case, curiosity might push you to read the code more deeply, compare different codebases, etc.

    Finally, some languages also are more prone to enforce locality than others, impacting readability. See for example Linus arguing about C being more context-free than C++ [2].

    [0]: https://github.com/pete/cats/blob/master/gnu-cat.c

    [1]: https://github.com/pete/cats/blob/master/plan9-cat.c

    [2]: https://www.realworldtech.com/forum/?threadid=104196&curpost...

  • opus

    Pure Go implementation of Opus (by pion)

  • There are a few Go projects meant to be learned from:

    - https://github.com/pion/opus for to learn audio

    - https://github.com/benbjohnson/wtf for overall production quality

    - https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • wtf

    WTF Dial is an example web application written in Go. (by benbjohnson)

  • There are a few Go projects meant to be learned from:

    - https://github.com/pion/opus for to learn audio

    - https://github.com/benbjohnson/wtf for overall production quality

    - https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors

  • upspin

    Upspin: A framework for naming everyone's everything.

  • There are a few Go projects meant to be learned from:

    - https://github.com/pion/opus for to learn audio

    - https://github.com/benbjohnson/wtf for overall production quality

    - https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts