On Learning Smalltalk
Summary: In 2021 I learned Smalltalk, mostly using the lovely Pharo implementation. While the syntax of the language is quite nice, it...
Summary: In 2021 I learned Smalltalk, mostly using the lovely Pharo implementation. While the syntax of the language is quite nice, it...
There is no way for your operating system to know exactly how much stack space a thread will need so it allocates an amount on the order of around a kilobyte initially and then around a megabyte once the thread starts to be used. You only have around a bakers dozen gigabytes of RAM, so you can only have give or take…
Easy to follow guide using practical examples
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance. Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer…
Evaluating code at compile time is a capability that most, if not all, compiled programming languages possess, even if it can't be directly used by the programmer, but rather applied as an optimization. In this post, we'll explore a bit how to execute code at compile time in Nim, Zig, Rust and C++.
PHP 8.2 has a new randomizer engine, readonly classes, disjunctive normal form types, redacted parameters, performance improvements, and more.
The German school of Lisp is described by Kazimir Majorinc as a Spartan movement 1 in Lisp implementation. But let me be clear, the Lisps in question are not toys like the one’s littering the Lisp landscape (including my own ). Likewise, these Lisps are not libraries nor are they full-blown development ecosystems.
Code can really be written with any text editor that you're comfortable with. I tend to use Vim for quick edits and writing notes, and on L...
Some make the claim that "all languages depend on C"; 1 not only is this statement ill-typed, as implementations perhaps depend on other languages, and languages rarely do, but the statement would still be wrong if we correct it. Some will retort by writing parts of an implementation in another "system language"; more…
The official site of Zhenghao He, a software engineer and a TypeScript/JavaScript enthusiast.
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
My coding time this year has been invested in Quamina , an event-filtering library implemented in Go. Just in the last couple of weeks I spotted an opportunity to bring Go’s shiny new generics to bear, and not just anywhere, but for a central data structure. I got good results, but the process was sort of painful; I…
A review of the Odin programming language # Written by Dale Weiler Twitter GitHub Last updated Tuesday, September 10th, 2022 What is Odin # For those unfamiliar, Odin is a systems programming language that is more conservative in its design than other newer programming languages such as Rust, Zig, and Carbon. The…
Proponents of Zig claim that it does not have function colors. In this post, I attempt prove that it does.
Chad Nauseam Home
Difference between strings and symbols in Ruby
A new top-level syntax for programming languages is proposed to show advantages of this method. New syntax is arguably as simple, but more consistent, better preserves visual structure and solves some issues in code formatting.
A public service announcement about the dangers of utcnow and utcfromtimestamp and the benefits of using their replacements.
I’ve seen a lot of misconceptions around what the unsafe keyword means for the utility and validity of Rust and its marketing as a “safe systems language”. The truth is a lot more complicated than a single pithy tweet can possibly sum up, unfortunately; here it is as I see it.
“A Modest Proposal For Preventing The Children of Rust Developers From Being Exposed To Procedural Macros”
This is a talk and slides from Narrascope 2022, held online in July 2022. It completes a trilogy — I also spoke at Narrascope I and Narrascope II. I’m grateful to the IFTF, and particularly to Judith Pintar and Andrew Plotkin, for arranging the opportunity.
As someone who is interested in systems programming, and has experience working with Go, but not with C or C++1, The Odin language is a great fit. Proper systems language Odin is a systems langauge…
davidamos.dev is your first and best source for information about davidamos. Here you will also find topics relating to issues of general interest. We hope you find what you are looking for!
C++11 has been around for around 11 years and C++14 for 8. From my experience, I see that even today, many companies struggle to use those standards in production in the most efficient way. As always, with new stuff came benefits, risks, and increased learning effort. Fortunately, with a new book written by top C++…
When I was still researching this fabled obscure language called Lisp one thing people kept saying about it is that “Lisp is a programmable programming language”, but I could never figure out what they meant by that. It sounds like a smug buzzword or like a gimmick from an academic toy language. Lisp programmers have…
In this tutorial, you will discover a helpful step-by-step procedure and helpful questions to guide you to the most appropriate concurrency API.
I have written previously about why Turbo Pascal is a Great Choice For Programming Under CP/M and now it is time to talk about what could have been. You probabl