Origins of Python's “Functional” Features (2009)
I have never considered Python to be heavily influenced by functional languages, no matter what people say or think. I was much more familia...
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 1,045 posts.
I have never considered Python to be heavily influenced by functional languages, no matter what people say or think. I was much more familia...
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…
This summer, I am again working on Rust full-time, and again I will work (amongst other things) on a “memory model” for Rust/MIR. However, before I can talk about the ideas I have for this ...
Project Loom's mission is to make it easier to write, debug, profile and maintain concurrent applications meeting today's requirements. Threads, provided by Java from its first day, are a natural and convenient concurrency construct (putting aside the separate question of communication among threads) which is being…
Many programmers are aware that C++ templates are Turing-complete, andthis was proved in the 2003 paper C++ Templates areTuring Complete.
We announce and explore the possibilities for bringing set-theoretic types into Elixir.
Why's (Poignant) Guide to Ruby, from Why's (Poignant) Guide to Ruby by _why the lucky stiff. CC BY-SA 2.5.
I normally do not read comp.lang.c, but Jim McKie told me that `` Duff's device '' had come up in comp.lang.c again. I have lost the version that was sent to netnews in May 1984, but I have reproduced below the note in which I originally proposed the device. (If anybody has a copy of the netnews version, I would…
This PEP provides the technical specification for the match statement. It replaces PEP 622, which is hereby split in three parts:
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...
In this blog post, I will present one of the most interesting additions to the community 2019 version of SPARK: pointer support. One of the core…
Fairy tales are more than true: not because they tell us that dragons exist, but because they tell us that dragons can be beaten.
In most languages that support nested scopes, code can refer to or rebind (assign to) any name in the nearest enclosing scope. Currently, Python code can refer to a name in any enclosing scope, but it can only rebind names in two scopes: the local scope...
In all the above scenarios you might want to use other Clojure and Java libraries (dependencies or 'deps'). These may be libraries you are writing locally, projects in git (e.g. on GitHub) or, commonly, libraries available in the Maven ecosystem and hosted by central repositories like Maven Central or Clojars.
It took three years and 200,000 words more than I expected, but my second book, Crafting Interpreters , is complete. I finished the third draft of the last chapter today, marking the last of around 1,400 days of continuous writing.
PHP, as the result of a spectacular error of judgement, appears to be written in US English. How do we developers ensure the traditions of the British Empire continue to be upheld, even in the digital age?
Stay up to speed on the rapid advancement of AI technology and the benefits it offers to humanity.
An introduction to the basic operations needed to get started with Go modules.
V is a programming language promising to be “Simple, fast, safe, compiled. For developing maintainable software.” V has a controversial past but what is the state of V in 2022?
In 2001, Edsger W. Dijkstra wrote a letter to the Budget Council of The University of Texas. A PDF is available here , I’ve typed it up so that everyone can read it. Sadly, the curriculum was changed to Java . Relatedly, the algorithmic language Scheme was replaced by Python in MIT’s The Structure and Interpretation…
Go 1.5 is the first step toward a new low-latency future for the Go garbage collector.
Integer overflow detection/handling in Rust is sometimes misunderstood.
It turns out my hopes were answered. First, Prechelt published another article that covers Tcl, Python, Perl, and Rexx. Also, Ron Garret (nee Erann Gat) did a follow-up study in which he asked programmers to write Prechelt's test program in Lisp. His results show that the resulting Lisp programs ran faster on average…
“ Object-oriented programming is an exceptionally bad idea which could only have originated in California. ” – Edsger Dijkstra