Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 427 posts.
TypeScript 4.0
Today we are thrilled to announce the availability of TypeScript 4.0! This version of the language represents our next generation of TypeScript releases,
Is APL Dead? Not anymore
Is APL dead? Not anymore. Changes in modern hardware, business needs, development methods, and our understanding of programming makes APL in its modern state perhaps more relevant and viable than ever before.
A Response to Hello World in Go
Hi I'm Caleb Doxsey and welcome to my website. I'm a software developer. If you'd like to contact me, you can email me here: [email protected] .
Applying Mypy to real-world projects
Some hints and tips for getting started with Mypy and introducing it to existing projects
What’s New in Swift 5.2
Key path expressions as functions, callAsFunction, and more
Why not to use (f)lex, yacc or bison
flex and bison still work, but modern parser generators beat them on Unicode, grammar format, keeping code out of the grammar, and documentation. A point-by-point comparison.
Perl One-Liners Cookbook
Example based guide for text processing with Perl from the command line
Compiling a Lisp to x86-64: primitive functions
Compiling Lisp primitive unary functions to x86-64
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…
The C++ Lifetime Profile: How It Plans to Make C++ Code Safer
This blog post explains what the C++ Lifetime Profile is and how it intends to make the language safer and help avoid memory management problems.
Lessons in Managing Haskell Memory
At Channable, we process several billion product data records for our customers every day according to user-customizable rules. Internally, this work is subdivided into jobs, where one job takes a set of products and the rules for how to process them as input, and returns the transformed set of products as output…
Implementing Rust's dbg! in Python
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
Towards Crystal 1.0
Currently the main goal of the Crystal core team is to reach 1.0 in the near future. Since achieving that goal involves a number of non-obvious tradeoffs, we want to use this post to shed some light on those inherent tensions and how they drive our work and priorities for the next few releases.
Lisp: Good News, Bad News, How to Win Big (1991)
Lisp has done quite well over the last ten years: becoming nearly standardized, forming the basis of a commercial sector, achieving excellent performance, having good environments, able to deliver applications. Yet the Lisp community has failed to do as well as it could have. In this paper I look at the successes, the…
Combinatris: Tetris with SKI Combinators
Combinatris
I can't believe I'm praising Tcl (2008)
So the other day I both defined Tcl procedures all by myself and used them interactively, and I liked it, to the point where it felt like some kind of local optimum. This entry is an attempt to cope with the trauma of liking Tcl, by means of rationalizing it. I'll first tell the story of my fascinating adventures, and…
Syntax changes from C++11 to C++20
Let’s start the week with Lambda Expressions. The plan is to have a set of concise articles presenting core elements of lambda expressions. Today you can see how the syntax has evolved starting since C++11 and what are the latest changes in C++20. The Series This blog post is a part of the series on lambdas:
Implementing a Type-safe printf in Rust
I show how to use heterogeneous lists and traits to implement a type-safe printf in Rust. These mechanisms can ensure that two variadic argument lists share important properties, like the number of format string holes matches the number of printf arguments.
The chronic suffering of the VB.NET community
I’d originally planned to write on this particular topic in response to increasing outreach to me personally, through my blog and other places, unsolicited, and independently from multiple communit…
A quick primer on type traits in modern C++
Discovering one of the pillars of C++ generic programming.
Swift: Announcing ArgumentParser
We’re delighted to announce ArgumentParser, a new open-source library that makes it straightforward — even enjoyable! — to parse command-line arguments in Swift.
Move, simply
C++ “move” semantics are simple, and unchanged since C++11. But they are still widely misunderstood, sometimes because of unclear teaching and sometimes because of a desire to view move…