Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
TypeScript and Set Theory
How does set theory help to understand type assignability and resolution in TypeScript?
I added some optimizations to my compiler that turns Lisp into JavaScript
Smaller programs that do less work.
Writing HTTP Middleware in Go
In the context of web development, "middleware" usually stands for "a part of an application that wraps the original application, adding additional functionality". It's a concept that usually seems to be somewhat underappreciated, but I think middleware is great.
A Forth Vocabulary for Iteration
I recently wrote a small 16-bit Forth for 8086 PCs running DOS. I built the basic one-liner loop words that can trivially be built with j...
Racket 8.4
_posted by John Clements_ Racket version 8.4 is now available from https://download.racket-lang.org. Command-line Racket provides a new expression editor by default for its read-eval-print loop (REPL). The new REPL is based on the Chez Scheme expr...
Amazing feats of Clang Error Recovery
In addition to parsing and generating machine code for your source files when valid, a compiler frontend's job is also to detect invalid code and give you a hint that explains what is wrong so you can fix the problem.
Needle: A DFA Based Regex Library That Compiles to JVM ByteCode
Many years ago, Kragen complained about the implementation and performance of Java regexes , and suggested that an implementation that emitted JVM bytecode could perform better. It's been a minute, but I'm happy to report that complaining on the Internet has served its purpose.
Generate Python extensions using Nim language
A Python Extension is generally some code written in language other than python to extend the python ecosystem by exposing an interface compatible with Python API.Such extensions are generally in form of compiled code and loaded dynamically by the Python runtime ...
The web.py Philosophy
The web.py slogan is: “Think about the ideal way to write a web app. Write the code to make it happen.”
Dave Prosser's C Preprocessing Algorithm (2006)
For about five years I've been trying to implement a fully conforming C preprocessor for the front end of the CScout refactoring browser. I've found this to be a fiendishly difficult task. Although what I have written can correctly process million-line real-life projects, every once in a while I come across a…
Should I choose Ada, SPARK, or Rust over C/C++? (2024)
At AdaCore, we’re in the business of supporting people who develop high-integrity software, in particular for embedded systems. In terms of programming…
Parsing C++ is literally undecidable (2013)
Many programmers are aware that C++ templates are Turing-complete, andthis was proved in the 2003 paper C++ Templates areTuring Complete.
On Scala
This is one of a series of posts on languages, you can read more about that here . Scala's blending of programming paradigms in a single language is impressive. It's fun to write code in and is a good language for leaning into the functional plus static typing paradigm. As much as I like
Python as an Alternative to Lisp or Java, Peter Norvig revisited
Josiah Carlson talks about Redis, Python, and other technology topics.
Memory safety without borrow checking, reference counting, or garbage collection
Single ownership is one of those concepts that's both easier and more powerful than we realize.
Why we still build with Ruby
Why we still choose Ruby on Rails in 2025: Learn how Lago scales millions of API events with Rails, Go, and Rust, balancing developer speed, concurrency, and performance.
JEP 325: Switch Expressions
Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a "traditional" or "simplified" scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch …
Prolog's Death (2010)
Maarten van Emden just posted a terrific and authoritative account of one episode in the history of Prolog under the title “Who Killed Prolog” (and, tantalizingly, promises another epis…
ES6 in Depth: Classes
ES6 In Depth is a series on new features being added to the JavaScript programming language in the 6th Edition of the ECMAScript standard, ES6 for short. Today, we get ...
Better Clojure formatting
A Clojure formatting style good enough to be a default standard
I've just learned Rust and I think I'm in love
I’ve decided to learn some Rust recently while working on the Stanford’s experimental course on operating systems. R...
How to use a Python multiprocessing module
Working with Python multiprocessing module can be difficult at times. Learn what you can do with it.
Katakana, Hiragana, and Unicode
How the 46 kana letters map onto 80 Unicode code points and how katakana and hiragana compare.