Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,638 posts.
Clojure 1.0
After a sustained period of API stability and minimal bug reports, I'm happy to announce the release of Clojure 1.0! http://clojure.googleco...
Can your programming language do this?
In information theory, entropy is the measurement of the amount of randomness in a probability distribution. It's defined as In my code, it'...
Scheming is Believing (2005)
Scheming is Believing Stevey's Drunken Blog Rants™
PyPy vs Unladen Swallow vs CPython: benchmarks
Hello. Recently, thanks to the surprisingly helpful Unhelpful, also known as Andrew Mahone, we have a decent, if slightly arbitrary, set of...
Ruby’s Most Underused Keyword
Order lexapro - LOWEST PRICES ON THE WEB, We Accept Visa and Mastercard Credit Cards
Parrot VM v1.3.0 Released
On behalf of the Parrot team, I'm proud to announce Parrot 1.3.0 "Andean Swift." Parrot is a virtual machine aimed at running all dynamic languages.
Understanding Ruby Blocks, Procs and Lambdas
Robert leads large and complex firms through mission-critical Digital Transformations with a focus on Artificial Intelligence and Cloud Engineering. As a Presidential Innovation Fellow at Barack Obama's White House , Robert reformed digital services across the Federal Government, resulting in millions of veterans…
Scheme: The Swine before Perl
In November 2001 I gave an invited talk at the inaugural Lightweight Languages conference that has since become somewhat notorious (in netspace, it is said to be “ kickassing genial ”).
PEP 634 – Structural Pattern Matching: Specification
This PEP provides the technical specification for the match statement. It replaces PEP 622, which is hereby split in three parts:
Objects Have Not Failed
Here is some practical evidence: According to the most recent 2002 North American Developer Survey by Evans Data Corporation, over half the developers surveyed are using Java. About 1/7 of developers surveyed are using C#. Roughly half of those also use Java, so the fraction of surveyed developers using one or both is…
Reader Q&A: What about VC++ and C99?
I occasionally get asked about whether, or how well, Visual C++ supports C99. This week, I just posted two replies to this questions on UserVoice (merged below). Last fall, I also answered it in an…
research!rsc: Off to the Races
Go is defined to be a safe language. Indices into array or string references must be in bounds; there is no way to reinterpret the bits of one type as another, no way to conjure a pointer out of thin air; and there is no way to release memory, so no chance of “ dangling pointer ” errors and the associated memory…
Wizards and warriors, part one
A common problem I see in object-oriented design is: A wizard is a kind of player. A warrior is a kind of player. A staff is a kind of weapon. A sword is a kind of weapon. A player has a weapon. Bu…
PEP 518 – Specifying Minimum Build System Requirements for Python Projects
This PEP specifies how Python software packages should specify what build dependencies they have in order to execute their chosen build system. As part of this specification, a new configuration file is introduced for software packages to use to specify...
Parsing expressions by precedence climbing
I've written previously about the problem recursive descent parsers have with expressions, especially when the language has multiple levels of operator precedence.
PEP 20 – The Zen of Python
Long time Pythoneer Tim Peters succinctly channels the BDFL’s guiding principles for Python’s design into 20 aphorisms, only 19 of which have been written down.
Defer, Panic, and Recover
An introduction to the Go's defer, panic, and recover control flow mechanisms.
PEP 554 – Multiple Interpreters in the Stdlib
CPython has supported multiple interpreters in the same process (AKA “subinterpreters”) since version 1.5 (1997). The feature has been available via the C-API. [c-api] Multiple interpreters operate in relative isolation from one another, which facilit...
research!rsc: The Generic Dilemma
Generic data structures (vectors, queues, maps, trees, and so on) seem to be the hot topic if you are evaluating a new language. One of the most frequent questions we've had about Go is where the generics are. It seems like there are three basic approaches to generics:
The Implementation of Functional Programming Languages
“The Implementation of Functional Languages” is a book about implementing functional programming languages using lazy graph reduction, and it divides into three parts. The first part describes how to translate a high-level functional language into an intermediate language, called the lambda calculus, incuding detailed…
Defer, Panic, and Recover
An introduction to the Go's defer, panic, and recover control flow mechanisms.