Clojure or: How I Learned to Stop Worrying and Love the Parentheses
I'm a longtime Java, Ruby, and Python programmer. Yet Clojure is the first language I've used that...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,636 posts.
I'm a longtime Java, Ruby, and Python programmer. Yet Clojure is the first language I've used that...
Parenthetically Speaking: Articles by Shriram Krishnamurthi
Interesting post, but you lost me at “Let’s try to do that using undef”. Why bother with notions of an “undef value” (or “deferred UB”), when plain UB is all you need?
The code formatting and typography is frequent, controversial but probably unavoidable topic among programmers. This document contains some representative and possibly, relevant examples of the Lisp code.
Master them in 20 minutes. Use them every day.
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
I thought it would be fun to go outside of my comfort zone of web development topics and write about something completely different and new, something I have never written about before. So today, I'm…
Serde is one of the most popular Rust crates, and deservedly so. If you aren't familiar, Serde describes itself as "a framework for serializing and deserializing Rust data structures efficiently and generically." What is most impressive to me is how robust the Serde data model has proven to be, allowing it to support…
Let me show you characteristics of APL that will influence your understanding of programming concepts and the way you use other languages.
Currently the main goal of the Crystal core team is to reach 1.0 in the near future. Since achieving that goal involves a number of non-obvious tradeoffs, we want to use this post to shed some light on those inherent tensions and how they drive our work and priorities for the next few releases.
Humans have a tendency toward binary thinking (pardon the pun). If it's not A, it's B. Perhaps because Lisps have REPLs, they are often thought of from the outside as being dynamic, interpreted languages. Our years of Python have taught us that such languages don't really have strong typing - it's all a wild guess…
One of the things people often complain about when doing Async Rust is cancellation. This has always been a bit confusing to me, because it seems to me that async cancellation should feel a lot like panics in practice, and people don’t complain about panics very often (though they do sometimes). This post is the start…
Web browsers do a lot of calculations on geometric coordinates, in many different coordinate systems and units of measurement. For example, a browser may need to translate a position expressed ...
Note for subscribers: if you are interested in my Ada programming articles only, you can use this RSS feed link. Link to Part 3 here . As ...
One of the most pervasive IR (and thus compiler API) changes in LLVM 3.0 was a complete reimplementation of the LLVM IR type system. This change was long overdue (the original type system lasted from LLVM 1.
Without writing a single line of Rust, why I feel it might be right