Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 45 posts.
What Every C Programmer Should Know About Undefined Behavior #1/3
People occasionally ask why LLVM-compiled code sometimes generates SIGTRAP signals when the optimizer is turned on. After digging in, they find that Clang generated a "ud2" instruction (assuming X86 code) - the same as is generated by __builtin_trap().
The Lisp Curse
The expressive power of Lisp has drawbacks.
Kay on the Meaning of "Object-Oriented Programming"
Dr. Alan Kay explains when "object-oriented" was first used and what it means. []
Beyond Exception Handling: Conditions and Restarts
One of Lisp's great features is its condition system. It serves a similar purpose to the exception handling systems in Java, Python, and C++ but is more flexible. In fact, its flexibility extends beyond error handling--conditions are more general than exceptions in that a condition can represent any occurrence during…
The Roots of Lisp
(I wrote this article to help myself understand exactly what McCarthy discovered. You don't need to know this stuff to program in Lisp, but it should be helpful to anyone who wants to understand the essence of Lisp � both in the sense of its origins and its semantic core. The fact that it has such a core is one of…
What Every C Programmer Should Know About Undefined Behavior #2/3
In Part 1 of our series, we discussed what undefined behavior is, and how it allows C and C++ compilers to produce higher performance applications than "safe" languages. This post talks about how "
Dynamic languages are static languages
While reviewing some of the comments on my post about parallelism and concurrency, I noticed that the great fallacy about dynamic and static languages continues to hold people in its thrall. So, i…
(An ((Even Better) Lisp) Interpreter (in Python))
The tokens #t and #f are the True and False literals, respectively. The single quote mark serves to quote the following expression. The syntax ' exp is completely equivalent to (quote exp ) . The backquote character ` is called quasiquote in Scheme; it is similar to ' except that within a quasiquoted expression, the…
What Every C Programmer Should Know About Undefined Behavior #3/3
In Part 1 of the series, we took a look at undefined behavior in C and showed some cases where it allows C to be more performant than "safe" languages.
The Next Big Language
Dylan? C# 3? Perl 6? Does it have deterministic destructors, even as blocks like Python 2.5? Generics? A powerful macro system? Even as described it sounds like magic, but not a moment too soon.
Parallelism is not concurrency
In an earlier post I mentioned that one goal of the new introductory curriculum at Carnegie Mellon is to teach parallelism as the general case of computing, rather than an esoteric, specialized sub…
Things that amuse me
I think the only serious gripe is what you call your biggest gripe, and I must say that I envy this in Haskell. As you know, in the eager world we tend to write out our own recursive functions, rather than use combinators. You give part of the reason; the other part is that deforestation and related transformations…
Code Like a Pythonista: Idiomatic Python
The home of pythonistas
The context sensitivity of C's grammar
Context free grammars (CFGs) are a valuable theoretical tool on which the modern compilation theory relies for parsing the code of programming languages. For example, the most popular tool used for parsing – YACC , generates parsers for CFGs. What most people don’t know 1 is that the vast majority of programming…
PEP 263 – Defining Python Source Code Encodings
This PEP proposes to introduce a syntax to declare the encoding of a Python source file. The encoding information is then used by the Python parser to interpret the file using the given encoding. Most notably this enhances the interpretation of Unicode ...
Tutorial: Writing an Interpreter with PyPy, Part 1
This is a guest blog post written by Andrew Brown , with help from the PyPy developers on the pypy-dev mailing list. This tutorial's master...
Joel Spolsky: Can your programming language do this?
One day, you’re browsing through your code, and you notice two big blocks that look almost exactly the same. In fact, they’re exactly the same, except that one block refers to “Sp…
Go At Heroku (Doozer)
Two Heroku system engineers discuss their experiences using Go.
PyPy is faster than C, again: string formatting
String formatting is probably something you do just about every day in Python, and never think about. It's so easy, just "%d %d" % (i, i) ...
Profiling Go Programs
How to use Go's built-in profiler to understand and optimize your programs.
Thoughts on Python 3
My current thoughts on the state of Python 3 and where it’s heading.
How to read Haskell like Python
Have you ever been in the situation where you need to quickly understand what a piece of code in some unfamiliar language does? If the language looks a lot like what you’re comfortable with, you can usually guess what large amounts of the code does; even if you may not be completely familiar how all the language…
Amount of profanity in git commit messages per programming language
Andrew Vos's personal site
A better introduction to Objective-C
Khám phá những chuyển động mới nhất của thể thao thế giới với tin tức, sự kiện, giải đấu, màn trình diễn ấn tượng và câu chuyện nổi bật từ nhiều bộ môn hấp dẫn.
Perlis Languages
A language that doesn’t affect the way you think about programming is not worth knowing. – Alan Perlis
Python and the Principle of Least Astonishment
Why Python follows the Principle of Least Astonishment even when some people are surprised.