The lack of a case against Python 3
A point-by-point rebuttal of Zed Shaw's Unicode and 2to3 complaints, with a trainer's view on which Python version to teach beginners in 2016.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,636 posts.
A point-by-point rebuttal of Zed Shaw's Unicode and 2to3 complaints, with a trainer's view on which Python version to teach beginners in 2016.
Lists play an important role in Lisp--for reasons both historical and practical. Historically, lists were Lisp's original composite data type, though it has been decades since they were its only such data type. These days, a Common Lisp programmer is as likely to use a vector, a hash table, or a user-defined class or…
God famously does not play dice with the universe, but he seems to enjoy writing Haskell :
This is somewhat of a followup to my post on Lua integration from a few days ago.
Updates (2024) Since this post was originally written, the FizzBuzz github repository has received 23 additional contributions so the total…
Here’s a bit of code from Kernighan’s and Ritchie’s seminal text, The C Programming Language . I’m not sure I’d actually recommend coding this way (as written in the book, the entire program has only one comment), but it’s so darn clever and concise, I can’t help but post it. This snippet is part of a larger program…
My new book guides you through the start-to-finish build of a real world web application in Go — covering topics like how to structure your code, manage dependencies, create dynamic database-driven pages, and how to authenticate and authorize users securely .
Learnings from building MiniJinja, a template engine in Rust
This is the absolute best guide you'll find in the internet about how php handles typing internally and in userland.
The Swift 5 release enables runtime checking of “Exclusive Access to Memory” by default in Release builds, further enhancing Swift’s capabilities as a safe language. In Swift 4, these runtime checks were only enabled in Debug builds. In this post, I’ll first explain what this change means for Swift developers before…
Many people struggled with my article about Alan Kay and OO programming, so let's talk about the main objection.
This blog post explores an alternative formulation of Rust’s type system that eschews lifetimes in favor of places . The TL;DR is that instead of having 'a represent a lifetime in the code, it can represent a set of loans , like shared(a.b.c) or mut(x) . If this sounds familiar, it should, it’s the basis for polonius…
If you already know lots about JIT in general and Ruby’s MJIT in particular… you may not learn much new in this post. But in case you wonder “what is JIT?” or “what is MJIT?” or “what’s different about Ruby’s JIT?” or perhaps “why in the world did they decide to do THAT?”… Well then, perhaps I can
Arrays are JavaScript’s “native” representation of lists. Lists are important because they represent ordered collections of things, and ordered collections are a fundamental abstraction for making sense of reality.
Blog of Guillaume Gomez (Guide on how to write documentation for a Rust crate)
The Pascal language was named after Blaise Pascal (see picture), a French mathematician who was a pioneer in computer development history. In 1641, at the age of eighteen, Pascal constructed the first arithmetical machine, arguably the first computer. He would improve upon the instrument eight years later. In 1650…
_posted by Eli Barzilay_ Racket version 5.3 is now available from http://racket-lang.org/ Release Highlights:: Submodules are nested module declarations that can be loaded and run independently from the enclosing module. See also the overview of su...
Everywhere on the web we read that Javascript has prototypal inheritance. However Javascript only provides by default a specific case of prototypal inheritance with the new operator. Therefore, most of the explanations are really confusing to read. This article aims to clarify what is prototypal inheritance and how to…
We are pleased to announce the release of Ruby 2.1.3.This is a patchlevel release of the stable 2.1 series.
Firefly is an alternative compiler to BEAM, introducing new levels of efficiency and speed for compiling Elixir applications.
Nim is in an excellent position to “get married” with static analysis, and it doesn’t have to be based on some intermediate representation but can achieve a solution more similar to Spark.
This article provides a hands-on guide to integrating Rust and Java through the Java Native Interface (JNI).
With the new C++11 Standard, C++ faces the first time challenges of multicore architectures. The 2011 published standard defines how a C++ program has to behave in the presence of multiple threads. The C++11 multithreading capabilities are composed of two components. This is, on the one hand, the defined memory model…
So far this year I’ve been bitten three times by compiler edge cases in GCC and Clang, each time catching me totally by surprise. Two were caused by historical artifacts, where an ambiguous specification lead to diverging implementations. The third was a compiler optimization being far more clever than I expected…
I write a lot of reductions: loops that combine every element from a collection in some way. For example, summing a vector of integers: