Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
Fast high-level programming languages
Python and R are slow when they can’t rely on functionality or libraries backed by C/C++. They are inefficient not only for certain algorithm development but also for common tasks such as FASTQ parsing. Using these languages limits the reach of biologists. Sometimes you may have a brilliant idea but can’t deliver a…
Classes are a way of writing higher order functions
Joe and I recently kicked off a re-read of SICP . I can say that it is the most interesting textbook I have gone through. Imagine, you begin with just 4 or 5 constructs, and you end up building algebraic equation solvers, circuit simulators, and even logic programming languages. Because you start off with such few…
Rust’s worst feature
There are several aspects of Rust that I’m not particularly fond of but the one that takes the cake is core::io::BorrowedBuf which I despise with passion. It’s a nightly feature which puts in question my extreme emotions about it. On the other hand it means there’s time to stop it from getting stabilised and figure…
Thoughts On Lisp And Racket (2019)
I plan on writing about why I am interested in the Lisp family of languages. It will probably come out in stages.
Go Bloviations
This post was written sixteen months ago, when fish briefly explored Go with the intention of writing a new command line shell. ( fish abandoned Go after discovering that terminal programming is what makes shells so horrible, and term programming is least horrible in C.)
My love-hate relationship with LuaJIT (2015)
I love LuaJIT for its performance, but its complexity sometimes puts me off.
My views on NeoHaskell
A rundown and critique of the NeoHaskell project
A tail calling interpreter for Python (already landed in CPython)
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
Writing C for Curl
It is a somewhat common question to me: how do we write C in curl to make it safe and secure for billions of installations? Some precautions we take and decisions we make. There is no silver bullet, just guidelines. As I think you can see for yourself below they are also neither strange nor … Continue reading Writing…
What Java Modules Are About
When the subject of Java modules comes up in online discussions every so often, I get the sense that many people misunderstand what it is that modules are supposed to do. That's understandable, as the name 'modules' does not evoke the precise purpose of the feature. There are many kinds of modules, even in the Java…
Metaprogramming is less fun in D
Despite the speaker’s calm voice and the slides showing almost nothing but code in C++ (which isn’t what you’d normally expect from a keynote), Louis Dionne’...
Rare Greek Variables
I scrape Arxiv to find underused Greek variables which can add some diversity to math; the top 10 underused letters are ϰ, ς, υ, ϖ, Υ, Ξ, ι, ϱ, ϑ, & Π. Avoid overused letters like λ, and spice up your next paper with some memorable variables!
Modern C
This new edition has been the occasion to overhaul the presentation in many places, but its main purpose is the update to the new C standard, C23 . The goal was to publish this new edition of Modern C at the same time as the new C standard goes through the procedure of ISO publication. The closest approximation of the…
The Next Big Language
Dylan? C# 3? Perl 6? Does it have deterministic destructors, even as blocks like Python 2.5? Generics? A powerful macro system? Even as described it sounds like magic, but not a moment too soon.
Metaprogramming in Python
How you can use metaprogramming in Python and how it can simplify certain tasks.
Haskell is not category theory
What, why, who?
JRuby 1.7.0. Released
After a long journey (1.5 years..oh my) we have released JRuby 1.7.0. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And JRuby…
Unpacking Elixir: Syntax
Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in "a great legacy" and not as in "system you don't like anymore". Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elixir was designed to provide strong…
A bit of background for the unified C++ call proposal
C++ provides two calling syntaxes, x.f(y) and f(x,y). This has bothered me for a long time. I discussed the problem in the context of multimethods in D&E in 1994, referring back to a proposal by Doug Lea from 1991, and again in 2007. Each of the syntaxes has its virtues, but they force design decisions on people…
First impressions about Graal VM
Last week was the release of Oracle’s GraalVM. As stated on the website: GraalVM is a universal virtual machine for running applications written in JavaScript, Python 3, Ruby, R, JVM-based languages like Java, Scala, Kotlin, and LLVM-based languages such as C and C++. GraalVM removes the isolation between programming…
JRuby Creator's Short List of Key Missing JVM Features
I mused today on Twitter that there's just a few small things that the JVM/JDK need to become a truly awesome platform for all sorts of development. Since so many people asked for more details, I'm posting a quick list here. There's obviously other things, but these are the ones on my mind today.Cold…
Programming Algorithms in Lisp: Data Structures
The next several chapters will be describing the basic data structures that every programming language provides, their usage, and the most i...
Ante: A new way to blend borrow checking and reference counting
Ante has taken the first step towards something we all thought was impossible: blending reference counting and borrow checking without run-time crashes. 0