Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 3,709 posts.
Clojure – Fascinated, Disappointed, Astonished (2016)
I’ve had a pleasure to work with Piotrek Jagielski for about two weeks on Clojure project. I’ve learned a lot, but there is still a lot to know about Clojure for me. In this post I’ll write what fasci
Python List Comprehensions Explained Visually
Sometimes a programming design pattern becomes common enough to warrant its own special syntax. Python’s list comprehensions are a prime example...
INTERCAL: Practically impossible
A very good friend of mine has been experimenting with trying to coax Chat-GPT4 to successfully do basic coding tasks. So have a lot of people these days, of course. In an idle moment, though, my friend submitted the following query:
Racket for E-Commerce
I had originally shared a version of this post with a small, private mailing list, but then I figured there'd be no harm in sharing it with a larger audience so here it is.
Clojure as a dependency
I have a shameful confession to make: I have long neglected an open-source library that I maintain, clj-tagsoup .
Good Practices for Writing Rust Libraries
For a bit more than a year now, I've been interested in Rust , a programming language by Mozilla research that “runs blazingly fast, prevents nearly all segfaults, and guarantees thread safety.” It is as low-level as C or C++, has a nice type system (with generics and traits), a helpful compiler, and a…
The Futures of Inform
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.
Tree-Structured Concurrency
For a while now I've been trying to find a good way to explain what structured concurrency is, and how it applies to Rust. I've come up with zingers such as: "Structured concurrency is structured programming as applied to concurrent control-flow primitives" . But that requires me to start explaining what structured…
Clojure macros continue to surprise me
Clojure macros have two modes: avoid them at all costs/do very basic stuff, or go absolutely crazy.
Logic Puzzles with Prolog (2017)
Solving Logic Puzzles with Prolog
Clojure and Deps.edn: A basic guide
After a rather long break from programming and Clojure I decided give them another go. When it comes to managing Clojure projects, Leiningen is de-facto standard tool. Recently, Clojure CLI tools are becoming more and more popular, though. Switching to yet-another-build-tool doesn't have any pragmatic value, but it's…
Ruby, Ractors, and lock-free data structures
This story is about concurrent data structures in the context of Ruby. The goal here is to demonstrate how true parallelism can be achieved with global mutable state (which at the time of writing, is not supported by built-in Ruby primitives).
Building a new functional programming language
I hope that the true promise of functional programming for parallel computing can be widely realized.
I like Odin
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…
The Evolution of a Haskell Programmer (2001)
Some time later, I came across Iavor’s "jokes" page, including a funny bit called “ The Evolution of a Programmer ” in which the traditional imperative "Hello, world" program is developed through several variations, from simple beginnings to a ridiculously complex extreme. A moment’s thought turned up the factorial…
Why tail-recursive functions are loops
One story every computing enthusiast should hear is the lesson ofhow loops and tail-recursion are equivalent. We like recursivefunctions because they’re amen...
The Costs of Programming Language Fragmentation
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
How to compare floats in Python
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!
Why don't you just rewrite it in X?
Whenever a new programming language becomes popular its fanpersons start evangelizing its virtues by going to existing projects and filing b...
Death to type classes
Death (XIII) Symbolizes significant change, transformation, and endings, rather than literal physical death. Have you ever seen a Number grazing in the f
An Opinionated Treatise on Cosmos, a New Programming Language
Alright, guys. Today I want to talk about programming. It is interesting to note that I have solved it. Yes, I solved it. Here are my…
When your hash becomes a string: Hunting Ruby's million-to-one memory bug
An "impossible" Ruby bug: Hashes becoming Strings at runtime. 2,700 identical crashes. No corruption. Just objects changing what they are. Deep dive.
Into CPS, Never to Return
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…