How I Start: Erlang
Erlang releases are a bit like magnets. Everyone who thinks about them shares the same thought: f**king releases, how do they work?
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 1,045 posts.
Erlang releases are a bit like magnets. Everyone who thinks about them shares the same thought: f**king releases, how do they work?
It has been over 20 years since I wrote " Lisping at JPL ", half memoir and half geeky screed (and all of it half-baked) about how an obscur...
This document comes with a companion example program, available as one file or as multiple files (zipped) .
One day before Rust 1.0 was released, I published a blog post covering the fundamentals of error handling . A particularly important but small section buried in the middle of the article is named “ unwrapping isn’t evil ”. That section briefly described that, broadly speaking, using unwrap() is okay if it’s in…
In September, 2004, I posted a query to the Types list asking people to name the five most important papers ever written in the area of programming languages. This page collects the responses I received. (A few are missing because I am still tracking down bibliographic information.)
Lack of ABI stability, slow compile times, poor Xcode support, and more hold Swift back
Many beginning Python users are wondering with which version of Python they should start. My answer to this question is usually something along the lines…
k is a family of concise, fast vector-oriented languages designed by Arthur Whitney . Calling k a “family” is deliberate; there is no single definitive k, but instead a sequence of slightly incompatible versions. If you decide to stick with k, you’ll see mentions of k4 , k5 etc. Exactly what those numbers mean aren’t…
This iteration of the RedMonk Programming Language Rankings is brought to you by IBM. From Java to Node.js, IBM remains at the forefront of open source innovation. Try our code patterns to help build the future of open source. With the second quarter looming, it’s time for us to drop our first quarter bi-annual…
If you skim this blog entry too quickly or just read the title, you might think I am someone who does not like F#. Nothing could be further from the truth. Over the last several months, I have become a big F# fan. It has become my preferred language for personal projects.
This post lays out a 4-part roadmap for the borrow checker that I call “the borrow checker within”. These changes are meant to help Rust become a better version of itself, enabling patterns of code which feel like they fit within Rust’s spirit , but run afoul of the letter of its law . I feel fairly comfortable with…
There is no clear, widely-accepted definition of Functional Programming. It is a collection of related featues which cohere well into a very useful style of programming.
Ah, Zig . I have a love-hate relationship with this one. A “new” (reading: appeared a couple years ago , already — yes, already ), language with high ambitions. Zig was made to run at low-level, with a simple design to solve many problems C has (macros, allocators, error handling, more powerful types like baked-in…
A guide to all the Magic Methods in Python
In this blog post, we are proud to introduce Oxy - our modern proxy framework, developed using the Rust programming language
Snyk's annual JVM ecosystem report presents the results of the largest annual survey on the JVM ecosystem, which gathered over 2000 responses in the second half of 2019.
Andrey Petrov is the author of urllib3, the creator of Briefmetrics and ssh-chat, and a former Googler and YCombinator alum. He’s here to tell us of a...
I’m pleased to announce the release of Incremental (well commented mli here), a powerful library for building self-adjusting computations, i.e., computations...
Following up on my recent Scala posts , some commented that because I haven't used Scala seriously, my opinion is of little value. I respo...
An overview of a paper that presents a reference implementation of a defer mechanism (co-authored with Robert C. Seacord) has been accepted for publication at SAC’21. The full version is avai…
Over the last 25 years, I’ve written a lot of event-driven code in C++. A typical example of event-driven code is registering a callback that gets invoked every time a socket has data to be read. Once you have read an entire message, possibly after many invocations, you parse the message and invoke another callback…
Why I might use Rust instead of Python, with walkthroughs for building a simple
Ruby apps can use a lot of memory. But why? Various people in the community attribute it to memory fragmentation, and provide two “hacky” solutions. Dissatisfied by the current explanations and provided solutions, I set out on a journey to discover the deeper truth and to find better solutions.
While on vacation, I’ve been working on an alternate type inference scheme for rustc. (Actually, I got it 99% working on the plane, and have been slowly poking at it ever since.) This scheme simplifies the code of the type inferencer dramatically and (I think) helps to meet our intutions (as I will explain). It is…