MiniRust
I have been thinking about the semantics of Rust – as in, the intended behavior of Rust programs when executed, in particular those containing unsafe code – a lot. Probably too much. But al...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,707 posts.
I have been thinking about the semantics of Rust – as in, the intended behavior of Rust programs when executed, in particular those containing unsafe code – a lot. Probably too much. But al...
Part 1: expressions, arithmetic Part 2: statements, control flow Ever since I was a teenager I wanted to create my own systems pr...
Short introduction to the Prolog language and its essential features.
I recently compiled a list of Perlis Languages that were meant to illustrate varying paradigms not typically found in mainstream programming languages. Those languages were meant to stretch your mind and are not necessarily representative of the state of the art in language design and implementation. In this post I…
If you’d asked me a only few months ago if there’ll ever be a printed version of Writing An Interpreter In Go I’d responded with a “Huh, uummm, well, I don’t know. Maybe. Maybe if I’ll find the time and if there’s any interest.”
A guide to create programming languages presenting an organized list of selected articles, books, tutorials, and tools on designing languages and compilers.
The onion architecture may be the future of large-scale FP
This article explains how a game can be made in Prolog by leveraging the hidden power of logic programming. Inspired by the elegance of data-driven design and declarative programming paradigms, I will be explaining a new way of designing game rules which can at the same time be used as the source code of the gameplay…
Demonstrating the basics of logic programming with data from the Pokémon games.
What Zig felt like, coming from Rust Intro I’ve spent the last 7 years as a Rust developer, working mostly on open source projects, and I’d like to think I’ve built a solid feel for the language and its ecosystem along the way. I gravitate toward the functional side of Rust like clean functions, expressive types, that…
A few thoughts on Rust after a few months of regular use.
My last post C++20: The Big Four started with an overview of concepts, ranges, coroutines, and modules. Of course, C++20 has more to offer. Today, let’s continue my overview of the core language.
The ISO C++ committee had its winter meeting in Kona, HI, USA from February 27 to March 4, hosted by Plum Hall and the Standard C++ Foundation. Over 100 people attended, officially representing 9 c…
Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times.
In Why Lean is Faster Than Rust , the author shares an impressive result: a DEFLATE compression library written in Lean 4 , a functional programming language and proof assistant, outperforming an equivalent Rust package that crates.io says has been downloaded over a billion times. From the article:
I've just released a new version of Idris 2 , which is a significant release in that it's the first one which is able to compile itself. Thus, it's the first one where we can really see how the performance of Idris 2 improves on the performance of Idris 1.
Learn how asyncio works by recreating it from scratch with Python generators and using the __await__ dunder method for the async/await keywords.
On your Python learning journey, you may have heard that a great way to get better is to read code written by other people. That's true, but finding good code to study is not easy, mostly because the design philosophy and the reasoning behind the code are rarely documented. The Python standard library is special in…
If you prefer video over blog posts, here is my talk on this at GopherCon 2016: https://www.youtube.com/watch?v=KyuFeiG3Y60
I'm super enthusiastic about Julia after running this comparison of Julia vs Numpy vs Fortran, for performance and code simplicity.
Beautiful Racket
A little over a decade ago, there were some popular blogposts about whether Ruby was an acceptable Lisp or whether even Lisp was an acceptable Lisp . Peter Norvig was also writing at the time introducing Python to Lisp programmers . Lisp, those in the know knew, was the right thing to strive for, and yet seemed…
It's not about technology for its own sake. It's about being able to implement your ideas.
(N.B. The word “fuck” appears multiple times in this post. I recommend that the reader temporarily not consider “fuck” as profanity, as it isn’t used that way here.)
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.)
Note to readers: this is an April Fools post, intended to satirize bad arguments made against Rust. I have mixed feelings about it now, as I think people who understood the context appreciated the humor, but some people were confused. That’s partly because it’s written in a very persuasive style, and I mixed in some…