The Rise of "Worse is Better"
Previous: Lisp's Apparent Failures Up: Lisp's Apparent Failures Next: Good Lisp Programming is Hard
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 146 posts.
Previous: Lisp's Apparent Failures Up: Lisp's Apparent Failures Next: Good Lisp Programming is Hard
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 expressive power of Lisp has drawbacks.
"In science, if you know what you are doing, you should not be doing it. In engineering, if you do not know what you are doing, you should not be doing it. Of course, you seldom, if ever, see either pure state."
Dr. Alan Kay explains when "object-oriented" was first used and what it means. []
Way back in September 1983, I started my first real job, working at Oranim, a big bread factory in Israel that made something like 100,000 loaves of bread every night in six giant ovens the size of…
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…
As it happens, designing Future Interfaces For The Future used to be my line of work . I had the opportunity to design with real working prototypes, not green screens and After Effects, so there certainly are some interactions in the video which I'm a little skeptical of, given that I've actually tried them and the…
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 "
Another great post
Tangle is a JavaScript library for creating reactive documents . Your readers can interactively explore possibilities, play with parameters, and see the document update immediately. Tangle is super-simple and easy to learn.
I want to take a moment to elaborate on what makes a well formed commit message. I think the best practices for commit message formatting is one of the little details that makes Git great. Understandably, some of the first commits to rails.git have messages of the really-long-line variety, and I want to expand on why…
In 2011 I wrote the initial version of JSLinux, the first PC/x86 emulator in Javascript running Linux. I reused parts of another of my emulators ( QEMU ) for the x86 helpers and the devices.
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…
Every educated person really ought to have a basic understanding of accounting. Just like maths, science, programming, music, literature, history, etc., it’s one of those things which helps you make sense of the world. Although dealing with money is not much fun, it’s an unavoidable part of life, so you might as well…
The power to understand and predict the quantities of the world should not be restricted to those with a freakish knack for manipulating abstract symbols.
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…
I’ve more or less kept my mouth shut about some of the dumb and plain evil stuff that goes on in the Rails community. As things would happen though I’d take notes, collect logs, and started writing this little essay. As soon as I was stable and didn’t need Ruby on Rails to survive I told myself I’d revamp my blog and…
It's not about technology for its own sake. It's about being able to implement your ideas.
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.
I spent two weeks reading and reverse engineering further the source code of Another World ("Out Of This World" in North America). I based my work on Gregory Montoir's "binary to C++" initial reverse engineering from the DOS executable. I was amazed to discover an elegant system based on a virtual machine interpreting…
There has been a long running debate in the Application Platform Services Group here at Burton Group between the REST people on one side and the SOAP people on the other. For the most part it mirrors the external debate. In one recent exchange, while discussing the complexity of SOAP and the web services framework…