Compiling Clojure to javascript pt 1
this is the first entry in an n-part series explaining the techniques and design principles of ClojureScript . translations: [ 日本語 ]
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 1,045 posts.
this is the first entry in an n-part series explaining the techniques and design principles of ClojureScript . translations: [ 日本語 ]
A longer explanation of why I think that the CoffeeScript scoping is problematic and should be changed.
Five years ago, when I started writing the first lines of code of what would become later the Red/System compiler, I had a pretty good pictu...
Programming is all about managing complexity. Without good tools to manage it, the complexity of programs becomes mentally intractable for our limited brains and we’d lose control and understanding of our programs (imagine writing a big software system entirely in assembly language).
This is a self-contained computer with its own display and keyboard, based on an ATmega1284, that you can program in the high-level language Lisp:
Comments extracted from a code review. I've been asked to disseminate them more widely. I should say something about regular expressio...
2013 Update: I was young and stupid when I wrote this. I fear that Haskell is doomed to succeed. — Tony Hoare I ♥ Lisp. I think it's t...
You find the latest version of my book at the usual place at This now contains all the material that I plan to put into it. New are “experience” parts about performance, function-like m…
For 2003 OSCON I proposed to give nine five-minute talks in a 45-minute slot. To avoid confusing this with the real lightning talks sessions, Nat decided to call my talk ``Nine Views of Mark Jason Dominus''. At first I didn't like that title, which sounded too much like self-promotion. But I warmed up to it after a…
I was recently asked for a list of
Following up from the last post, there is a lot more we need to cover. This was intended to be the post where we talk exclusively about benchmarks and numbers. But, I have unfortunately been perfectly taunted and status-locked,
I love Ruby! I’ve used it every day for years and I’m not sick of it yet. It’s an easy language to love: it’s expressive, flexible and syntactically beautiful ; it has a unique combination of useful features like mixins , metaclasses and blocks ; it comes with a useful core library and comprehensive standard library …
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
What we learned from the December 2017 Go User Survey.
All the “C++ killers”, even these which I wholeheartedly love and respect like Rust, Julia, and D, help you write more features with fewer bugs, but they don't much help when you need to squeeze the very last FLOPS from the hardware you rent. As such, they don’t have a competitive advantage over C++. Or, for that…
This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. The book is intended to be a source of practical labwork material, to help make functional-language implementations `come alive’, by helping the reader to develop, modify and experiment…
In 1999, Lutz Prechelt published a seminal article on the COMMUNICATIONS OF THE ACM (October 1999/Vol. 42, No. 10) called Comparing Java vs. C/C++ Efficiency Differences to Interpersonal Differences , henceforth Java VS C , which seems to have later (March 2000) been expanded into a full paper, An empirical comparison…
In Praise of APL: A Language for Lyrical Programming Professor Alan J. Perlis Yale University
We have finished the first chapter on a long journey of resurrecting Fortran: forming an initial core community of developers and users with enough momentum around the new Fortran website and projects at fortran-lang.org . There is still have a long way to go to, but this was a necessary (although not sufficient)…
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…
A while ago, I wanted to get a little quick feedback on some data I was playing with, but the day was almost over and I wasn’t done working on it yet. I decided to tweet my rough draft of a graph of GitHub language trends anyway, followed later by a slight improvement. Much to my surprise,
wingolog: article: v8: a tale of two compilers
Just as all mainstream languages now have lambda functions, I predict sum types are the next construct to spread outward from the typed functional programming community to the mainstream. Sum types are very useful, and after living with them in Haskell for a while, I miss them deeply when using languages without them…
Longer answer: it depends on what you mean by "equivalent". Pointer arithmetic and array indexing are equivalent. In other aspects, pointers and arrays are different.