All Lisp indentation schemes are ugly
Indentation styles are a hot topic in every language. So let's see how Lisps do indentation! Uuuuuuugh!
The latest blog posts to take off on Hacker News. 3,707 posts.
Indentation styles are a hot topic in every language. So let's see how Lisps do indentation! Uuuuuuugh!
These sound like dismissals or absurdities from the outside, but once you learn what they really mean, they take on a new light. In this article, I want to explain the third. (See the appendix if you are curious about the first two.)
Nearly every line of code I write for fun is in Rust. It's not because I need great performance, though that's a nice benefit. I write a lot of Rust because it's a joy to write code in. There is so much else to love about Rust beyond going fast without segfaults.
After ~7 years, I was done with Clojure . I was writing a some CLI apps , and I hated how long they took to start up. The community at large seemed not to care about this problem, except for the babashka folks. However, I spent long, hard hours banging my head against native-image and it just wasn't working out. It…
They won't be able to find bugs in your code if they can't figure out how it works.
Programming languages seem to have somewhat stagnated to me. A lot of shuffling around ideas that already exist, not a lot of new ones.
Xe Iaso's personal website.
While browsing Reddit the other day waiting for my code to compile, I ran across this question on r/Python: is hash(-1) == hash(-2) an easter egg? Wait, is that really true? $ python Python 3.9.6 (default, Jun 29 2021, 00:00:00) [GCC 11.1.1 20210531 (Red Hat 11.1.1-3)] on linux Type "help", "copyright", "credits" or…
Programming has obvious abilities to increase productivity through automated manipulation of data. Metaprogramming allows code to be treated as data, turning programming’s power back onto itself. Programming close to the metal has perhaps the most to gain from metaprogramming as high level concepts need to be mapped…
Dmitrii Kovanikov's Personas Web Space
With this post I will concentrate on the here and now: how to use C’s future lifesaving defer feature with existing tools and compilers.
Alright, you know the drill. The Ruby team do the hard work of putting together a new version packed with features and I pick my favourites and write about them.
Static or dynamic, a program's design is written in its types.
So I like to joke occasionally on the Fediverse that when looking at Wikipedia's list of programming languages supporting dependent types :
An implemenation of the SuperMemo-2 algorithm.
Introduction The more I learn about Lua's design and implementation, the more impressed I am. It's very rare to see software that does so much with so lit...
CPS, or continuation-passing style, is an intermediate representation for programs, particularly functional programs. It’s used in compilers for languages such as SML and Scheme. Much of its utility comes from its support for tail calls and nonlocal control flow such as call/cc, but it can also be used as an…
Where I try to explain why I feel like C\+\+ is so much fun, and to correct some misinformation.
A long time ago, I wrote a memoization library for Ruby. It was not easy, but I learned a great deal in the process. In this article, I am share these learnings and showing you how deep the memoization rabbit hole goes.
A few years ago, on a whim, I wrote YAIOUOM. YAOIOUM was a static analyzer for Rust that checked that the code was using units of measures correctly, e.g. a distance in meters is not a distance in centimeters, dividing meters by seconds gave you a value in m / s (aka m * s^-1). YAIOUOM was an example of a refinement…
I’ve been using Rust for hobby projects since 2016 and have been working professionally in Rust since 2021, so I tend to consider myself pretty knowledgeable about Rust. I’m already familiar with all the common limitations of Rust’s type system and how to work around them, so it’s pretty rare that I have to “fight the…
The ride is coming to an end. The experiment is done. We tried, but we admit defeat. Four years ago we started adding support for an alternative HTTP backend in curl. It would use a library written in rust, called hyper. The idea was to introduce an alternative implementation of HTTP internals that you could ……
A deep dive into how I use types to the fullest
Java has many features that make it well suited for large, long-lasting projects. But I find it surprisingly good for small tasks as well. Recent language features make it even better. The killer features are compile-time typing and great tool support.
Handling errors in Go is simple and flexible – yet no structure! It’s supposed to be simple, right? Just return an error , wrapped with a message, and move on. Well, that simplicity quickly turns into chaotic as our codebase grows with more packages, more developers, and more “quick fixes” that stay there forever…
Hi, I'm Peter Bex, a Scheme and free software enthusiast from the Netherlands. See my user page on the CHICKEN wiki or my git server for some of my projects.
A deep dive into Rust’s vec::Drain and its Drop implementation as an example of how ownership prevents subtle bugs—memory and otherwise!
I was honored to present a talk on Ruby concurrency at RubyConf 2024. It represents a high-level distillation of much of my writing and research over the past year. The conference itself was great, and presenting was such a fun experience. Here is the talk, titled “In-Depth Ruby Concurrency: Navigating the Ruby…
Scheme to the Spec is a series on the more complex, often overlooked aspects of programming language implementation.
A curated list of misconceptions about mainstream compilers.