If I were to invent a programming language for the 21st century
A short essay about the evolution of programming languages.
The latest blog posts to take off on Hacker News. 3,709 posts.
A short essay about the evolution of programming languages.
Type inference is a major feature of several programming languages, most notably languages from the ML family like Haskell. In this post I want to provide a brief overview of type inference, along with a simple Python implementation for a toy ML-like language.
One of the main use cases for the Zig Programming Language is operating system development and embedded development. So, what better way to make sure the language is suitable than to work on a project in this field?
Technical blog of Microsoft certified developer James Hickey. Helping you reach the next step of your career as a software developer!
See also: "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" , Wikipedia (accessed May 4, 2008).
This is the 6th post in the Learning Clojure focus series. In general, one learns by comparing to what one already knows: I’m learning Clojure in that way. Coming from a Java background, I naturally want to use streaming features. So, what would be the Clojure counterparts of Java’s functions filter(), map(), etc.?
“Common what?” is a common reply I get when I mention Common Lisp. Perhaps rightly so, since Common Lisp is not all that common these days. Developed in the sixties, it is one of the ol…
As a fun experiment, and to show the basics of clojure development, I implemented a minesweeper clone using clojurescript and p5.js.
A blog about computers, functional languages, Lisp, and Scheme.
This is the keynote talk that I gave at the 2018 European Lisp Symposium in Marbella, Spain.
Everything you need to know today about Python Packaging: PEPs 517/518, pyproject.toml, Pipenv, setuptools, and—of course—pip.
In this post we’ll explore Haskell’s kind system, the similarities between types and kinds, and show how these can be leveraged to write safer and more reusable code.
There are a lot of places you’ll see * and ** used in Python. These two operators can be a bit mysterious at times, both for brand new programmers...
You are seeing this because the administrator of this website has set up Anubis to protect the server against the scourge of AI companies aggressively scraping websites . This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.
I’ve been exploring the idea of an Elm compiler that produces assembly for the Erlang Virtual Machine. You can find the code for this project on GitHub . This essay documents some interesting parts of the project.
Last week, I wrote a blog post about ResourceT, and mentioned Rust's RAII being better than Haskell's bracket pattern. In this blog post, I demonstrate what this advantage is.
In programming research, we say a lot about programs and languages, but very little about the actual process of programming. One simple trick that will make programming language research significantly more interesting is to think about programs not as expressions, but as a result of a sequence of interactions that…
λm.me - Compiling Lisp to JavaScript from scratch in 350 LOC
A lot has changed since my last post nearly a year ago. I want to write about my experience coming from a ML-family language to a Lisp. It’s not very informa...
I’ve told this story in person dozens of times, it’s time to write it down and share it here. I’ve again experimentally recorded a video version (below), which you can view on a non-Flash device here .
More than thirteen years have passed since Herb Sutter declared that the free lunch is over and concurrency is upon us , and yet it's hard to claim that most mainstream languages have made a strong shift towards concurrent modes of programming. We have to admit that concurrency is just hard , and the struggles of some…
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.