Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,637 posts.
Rust's Object System
On the rust-dev mailing list, someone pointed out another “BitC retrospective” post by Jonathon Shapiro concerning typeclasses . The Rust object system provides interesting solutions to some of the problems he raises. We also manage to combine traditional class-oriented OOP with Haskell’s type classes in a way that…
Zig 0.10.0 Release Notes
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
Cursed Linear Types in Rust
Inspired by Jack Wrenn’s post on Undroppable Types in Rust, I set out to see if it’s possible to create types that must be used exactly once. From my understanding, those things are called linear types, but don’t quote me on that1. Unless you are quoting the title of this article which explicitly says linear types… I…
LLVM Code Generation in HHVM
One of the most common questions we get about HHVM is why we don’t use LLVM for code generation. The primary reason has always been that while LLVM is great ...
Array Languages for Clojurians (2020)
appliedscience.studio ships with Moz DA 25 and 70 referring domains — a rare descriptive .studio pickup. Listed at $100.
Interview with Matt Might
Interview with Matt Might, a professor, programming languages researcher, investigator of rare disease, and popular blogger.
Go At Heroku (Doozer)
Two Heroku system engineers discuss their experiences using Go.
Deep Learning in Rust
Meta Edit 2/2/2016: I wrote this post when deeplearn-rs was only a week old. This is more of a journal post where I reflect on things. To…
PHP 5.5.5 Released
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
Python is the new BASIC
The above is the Hello World program for Java, arguably one of the most popular programming languages. Encapsulated in the above three lines are several different concepts ranging from static functions to return types to stdout and to the entirety of object oriented programming in general.
Representing the Impractical and Impossible with JDK 10 “var”
Having benefited from “var” for many years when writing c#, I’m delighted that Java is at last getting support for local variable type inference in JDK 10. From JDK 10 instead of saying ArrayList<String> foo = new ArrayList<String>(); we can say var foo = new ArrayList<String>(); and the type of “foo” is inferred as…
Any application that can be written in a system language, eventually will be
Atwood's Law predicted JavaScript's dominance through accessibility. A new corollary is emerging: system languages will win through operational efficiency and AI-assisted development.
Is Fortran better than Python for teaching basics of numerical linear algebra?
Quarto Academic Website Template adapted by Dr. Gang He
PHP in 2024
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
Let the Type System do the Work
How to use your language's most-overlooked feature to its utmost.
APL: An Array Oriented Programming Language (2018)
APL was invented by Ken Iverson in the early 1960s as a notation for array oriented calculations. It was precise and useful enough, so it…
C++11 FQA anyone?
isocpp.org announced "the C++ FAQ" to which reportedly Bjarne Stroustrup and Marshall Cline will link to help boost its search rank. Good stuff; also, given that the language is >30 years old – it's about time.
Does Go Have Subtyping?
I’ve been noodling on a static type system for my current hobby language. To try to keep the language as simple as possible, I’m trying to see if I can live without subtyping. Since most of my programming experience is in object-oriented languages, I’ve been learning more about languages that lack—or at least claim to…
Stem, a stack-based language with metaprogramming and a C FLI
My own concatenative programming language
JEP 544: Ahead-of-Time Code Compilation
Improve startup and warmup time by making optimized native code for an application instantly available when the HotSpot Java Virtual Machine starts. Achieve this by compiling application code to native code in a training run, storing the native code in the AOT cache for use in subsequent production runs. If the…