Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 3,707 posts.
Carp, a compiled Lisp with type inference and a borrow checker
As some of you might know, I recently became enamoured with a new programming language, Carp. While you might have caught me fawning over it already, in…
Introduction to Go Modules
Random thoughts
Flappy Bird implemented in TypeScript types
The ultimate type-level trickery
Edward C++Hands
I’ve been looking for a good analogy of what programming in C++ feels like and I remembered this 1990 Tim Burton movie, Edward Scissorhands. It’s a darker version of Pinocchio, shot in …
I Switched from Flutter and Rust to Rust and Egui
This is just a personal experience, there are no absolute truths. Like in any other blog post, a lot of the things you'll read here could be just a skill issue, or legitimate issues. It's up to you to decide.
D compilation is too slow and I am forking the compiler
While working on my current project, the constant creep of increasing compilation times was becoming more and more noticeable. Even after throwing my usual tools at the problem, the total time was still over 7 seconds.
Homoiconic Python
McCarthy's Lisp in Python lists
Why is this Go faster than the equivalent Java?
At work there is a tradition of a Friday quiz being posted by the winner of the previous week. I missed out on the most recent one due to having to duck off early to do my tax but the problem was …
Pain Points of Haskell
I would like to preface this article by saying that Haskell is great. I have been using it as my go-to for native applications for several years now. Everything that follows is a product of my love and affection for the language, and a desire to see it succeed. And none of this is intended to disparage the efforts of…
When Haskell Is Not faster than C
This article is in response to an earlier one comparing Haskell and C, which made the claim that Haskell beats out C when it comes to speed. On a Hacker News thread I made the bold claim that the C code is rife with problems and that it is tempting to fix it.
Gleam Is Pragmatic
I’ve spent the past several years working with functional programming languages in my free time – primarily Haskell and OCaml. I love both languages but also find aspects of each frustrating. Haskell is terse and elegant with type classes providing a powerful mechanism for ad-hoc polymorphism. However, it can also be…
Five years of Scala and counting: debunking some myths
I started using Scala 5 years ago instead of Java after starting (but never quite finishing) to read the first edition of Programming in Scala. First only present in tests, my first attempts at Scala code would quite soon invade small utility classes and before I knew it take over all of my projects. There are many…
Parse, Don't Validate and Type-Driven Design in Rust
Applying the type-driven mindset to rust via the "Parse, don't Validate" pattern
A Lisper's first impression of Julia
I have recently looked at Julia , a new programming language developed at MIT that promises to be a dynamic programming language that is sui...
Four months with Haskell
At the end of January of this year, I switched to a new job, almost exclusively because I was enticed by the idea of being able to write Haskell. The concept of using such an interesting programming language every day instead of what I’d been doing before (mostly Rails and JavaScript) was very exciting, and I’m…
Why Clojure?
I’ve programmed systems in many different languages; from assembler to Java. I’ve written programs in binary machine language. I’ve written applications in Fortran, COBOL, PL/1, C, Pascal, C++, Java, Lua, Smalltalk, Logo, and dozens of other languages. I’ve used statically typed languages, with lots of type inference…
Updating the Go Memory Model
The current Go language memory model was written in 2009, with minor updates since. It is clear that there are at least a few details that we should add to the current memory model, among them an explicit endorsement of race detectors and a clear statement of how the APIs in sync/atomic synchronize programs.
Common Lisp Implementations in 2023
Much has been written on Common Lisp; there is rarely one year without someone proclaming the death of the language and how nobody uses it anymore. And yet it is still here, so something must have…
Go 1.7 toolchain improvements
This is a progress report on the Go toolchain improvements during the 1.7 development cycle. All measurements were taken using a Thinkpad x220, Core i5-2520M, running Ubuntu 14.04 linux.
Notes from the Meeting on Python GIL Removal Between Python Core and Sam Gross
During the annual Python core development sprint we held a meeting with Sam Gross, the author of nogil, a fork of Python 3.9 that removes the GIL. This is a non-linear summary of the meeting.
Coroutines and effects
For the past few months I’ve been mulling over some things that Russell Johnston made me realize about the relationship between effect systems and coroutines. You can read more of his thoughts on this subject here , but he made me realize that effect systems (like that found in Koka) and coroutines (like Rust’s async…
Clojure from the ground up
This guide aims to introduce newcomers and experienced programmers alike to the beauty of functional programming, starting with the simplest building blocks of software. You’ll need a computer, basic proficiency in the command line, a text editor, and an internet connection. By the end of this series, you’ll have a…
Idiomatic Clojure with LightTable
LightTable, the famous innovative IDE (slash reactive work surface, as described by the author) recently got some pretty amazing additions: user defined plugins and user defined custom expressions.…
I believe 6502 instruction set is a good first assembly language
Why I believe 6502 instruction set is a good first assembly language
Why would anyone need JavaScript generator functions?
You can go a long time as a JavaScript developer without ever feeling the need for generators. Hence, it’s natural to wonder: What are they good for? Why would you ever need one? What’s the point? But generators can do some neat tricks. And they may even change the way you approach certain problems.
Major standard library changes in Go 1.20
The second part of a three part look at new features in Go 1.20.