Garnet: The Generics Problem

How Might Generative AI Change Programming?

Testing Shell Commands with the Crystal CLI

How to Think About Compiling

Issue #309



A friend has lent me the domain to build something. I was thinking of doing something like cronitor, to help monitor cronjobs/APIs/website pages. If you have any other good ideas, let me know!
Last issue before the weekend. Hope you have a good one.


Today's Sponsor: FireHydrant

Incident management for every developer. Stop simply putting out fires and start improving reliability with a full-cycle incident management platform.


Garnet: The Generics Problem

Published: 14 December 2022
Tags: compiler, garnet, rust

Simon Heath discusses the problem with generics and how it relates to code reuse, in reference to implementation on the Garnet programming language.
Some highlights:

  • Although generic types aren't complicated to implement by themselves, the complexity comes up when you want to start reasoning about the relationships between types, including types you don't know about yet
  • Modules trade off some power for simplicity
  • The main practical difference between traits/typeclasses and modules is that with traits the compiler does more of the accounting work for you


How Might Generative AI Change Programming?

Published: 15 December 2022
Tags: ai, algorithms

Laurence Tratt elaborates on how generative AI can be used for programming.
Some highlights:

  • "Programming turns specifications into software"
  • "Programming is unforgiving of approximations", which makes extra work if models produce the incorrect output
  • The generative models can be useful for some techniques, like fuzzing


Testing Shell Commands with the Crystal CLI

Published: 29 March 2021
Tags: bash, crystal, sponsored

FireHydrant explains in detail how you can use the Crystal programming language CLI to test shell scripts.


How to Think About Compiling

Published: 8 December 2022

Nicholas Yang presents some of the difficulties and concepts of designing and implementing a compiler.
Some highlights:

  • A lot of compilation is combining concepts
  • If you're implementing a compiler, start with the simplest examples
  • Desurgaring is the process of breaking down more complicated syntax into simpler forms


How did I do?

* Amazing
* Articles not relevant to me
* Articles were relevant, but badly written
* Summaries told me everything I wanted to know
* I like turtles

Want to help?

Thank you for reading! If you enjoy the newsletter, I would really appreciate you helping me spread the word by forwarding this to your friends and colleagues or sharing it on social media! Get cool stuff for your referrals using your link

Your referrals:

If you want to discuss or comment on this issue, head on over to this page at A Byte of Coding. You can also subscribe there if you're new!

Have comments or feedback? Just reply to this email or hit me up on Twitter @AByteOfCoding.

Email landed in your promotions tab? Please move it over to primary so you don't miss the latest issues in the future.
Thanks for your Support! 

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.

Stats (updated daily)

Sent: 2995

Opens: 1459

Clicks: 360

Link Clicks Clicks % Unique Clicks Unique Clicks %
Garnet: The Generics Problem 74 31.62% 77 31.95
How Might Generative AI Change Programming? 53 22.65% 54 22.41
Testing Shell Commands with the Crystal CLI Awaiting Update Awaiting Update Awaiting Update Awaiting Update
How to Think About Compiling 107 45.73% 110 45.64


Back to Issues