Worst practices are viral for the wrong reasons (2014)
Perverse incentives surrounding best practices
Topics /
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
Perverse incentives surrounding best practices
This document is slightly out of date. None of the fundamental concepts has changed but the requires public directive has been renamed to requires transitive , and several additional capabilities have been added. An update is in preparation and will be posted here when ready.
Julia is a high-level programming language for mathematical computing that is as easy to use as Python, but as fast as C. The language has been created with performance in mind…
What if you could build realtime web apps with the same ease as you build static web pages in PHP today? Without long polling, event handling and state synchronization, the engineering complexity of realtime web applications would drop by an order of magnitude. There would be a fundamental shift in the way we build…
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.
I always assumed that Python's str.splitlines() split strings by " universal newlines ", i.e., \n , \r , and \r\n .
Earlier this year, I wrote about an update to the roadmap for F# and .NET Core. I had mentioned that there were a number of things you could build with F# and .NET Core today, such as web services. In this post, I’ll walk through building a web service with F# and .NET Core 2.0 […]
(This post is part of Crystal Advent Calendar 2015)
This article describes how you can build a simple LISP, based on the 1978 article <i>'A Micro Manual For LISP - Not The Whole Truth'</i> with Swift, taking advantage where possible of the features the language offers.
The upgrade to Ruby 2.7 for GitLab involved thousands of deprecation warnings across hundreds of files. Here's how we fixed most of them.
<!DOCTYPE html>
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…
Over the course of my Spring 2020 semester at Harvey Mudd College , I developed a self-hosting compiler entirely from scratch. This article walks through many interesting parts of the project. It’s laid out so you can just read from beginning to end, but if you’re more interested in a particular topic, feel free to…
Cedarwood is an effort to speed up jieba-rs , an efficient implementation of trie is needed in order to satisfying the following needs.
Why Lisp Failed.
“Common what?” is a common reply I get when I mention Common Lisp. Perhaps rightly so, since Common Lisp is not all that common these days. Developed in the sixties, it is one of the ol…
A short essay about the evolution of programming languages.
With Perl 5.36.0 just around the corner, we thought that this is a good time to clarify plans for the future of the Perl programming language. We realised that the future was hammered out in a number of steps, across several months. This meant that there hasn't been a single statement we could refer people to. This…
OCaml's let … = … in … is very confusing. When nested, you can't tell how it's nested.
I typed up some quotes from Chris Lattner on a recent panel discussion about Swift.
An expose on Implicits and Local Coherence
This is a sketch of proposed enhancements to the Java Virtual Machine instruction set, and secondarily to the Java Language, to support small immutable, identityless value types . (They may also be considered as identityless aggregates, user-defined primitives, immutable records, or restricted classes.) This is an…
I'm a longtime Java, Ruby, and Python programmer. Yet Clojure is the first language I've used that...