Python to OCaml: Retrospective
In 2013, I spent 6 months converting 0install's 29,215 lines of Python to OCaml (learning OCaml along the way). In this post, I'll describe the …
The latest blog posts to take off on Hacker News. 3,709 posts.
In 2013, I spent 6 months converting 0install's 29,215 lines of Python to OCaml (learning OCaml along the way). In this post, I'll describe the …
I’m pleased to introduce the third generation of my attoparsec parsing library. With a major change to its internals, it is both faster and more powerful than previous versions, while remaining backwards compatible. Comparing to C Let’s start with a speed comparison between the hand-written C code that powers…
The web site has since been through various iterations and changes, therefore I include some screenshots below for posterity (because my design is much more beautiful than what is now online ;-).
The Python community should fork Python 2.
Go obtains much of its compilation speed from the Plan 9 compiler, of which it is a direct descendant. The Plan 9 toolchain deferred much of the work traditionally performed by a compiler to the linking stage and its performance was summarised in section 8 of this paper
This post is part of the series “Debris: Opening the box”. Okay, previous posts from this series aimed to actually convey useful technical information: assuming you actually want to wri…
(This article has been translated into Spanish (PDF, with some additions) by Jorge Amado Soria Ramirez — thanks!) Preface I’m cranky. I complain about a lot of things. There’s a lot in the world of technology I don’t like, and that’s really to be expected—programming is a hilariously young discipline, and none of us
A list of things about unicode on Linux and Python 3 you really did not want to know.
There were numerous posts on reddit, SO and the like which were asking for how to architect real world Haskell applications. Well, this is my go at it for an in-house testing tool which is used extensively. I would not claim myself an advanced Haskeller, some of the code is probably not idiomatic Haskell (and also…
In the last post I introduced unique pointers. This time I will talk about another kind of pointer which is much more common in most Rust p...
OK OK, I couldn't resist that title but it probably goes a bit far. Let me try for a little more nuance:
This is a sketch of proposed enhancements to the Java Virtual Machine instruction set, and secondarily to the Java Language, to support small immutable, identityless value types . (They may also be considered as identityless aggregates, user-defined primitives, immutable records, or restricted classes.) This is an…
Rust is a systems language and therefore must give you raw access to memory. It does this (as in C++) via pointers. Pointers are one area w...
WARNING: 2018-04-12 : The code snippets for this post are no longer available. This is just as well anyway, since they all depended on an unstable internal compiler interface, which hasn’t existed for years.
What was the first thing you saw in Go that surprised you?
https://web.archive.org/web/20201121162125/https://artyom.me/learning-racket-2
Topics : monads, Common Lisp, functional programming Author : Marijn Haverbeke Date : July 11th 2008
How to use your language's most-overlooked feature to its utmost.
If The `if` statement is pretty much the same in Rust as C++. One difference is that the braces are mandatory, but brackets around the ...
A blog about everything to do with Software Development. Written by a Delphi developer and Development Manager and Certified ScrumMaster.
This science fiction / comedy / completely serious talk traces the history of JavaScript, and programming in general, from 1995 until 2035. It's not pro- or anti-JavaScript; the language's flaws are discussed frankly, but its ultimate impact on the industry is tremendously positive. For Gary's more serious (and less…
https://web.archive.org/web/20201121162132/https://artyom.me/learning-racket-1
How to design resilient architectural patterns that last the test of time