Parse, Don't Validate – In a Language That Doesn't Want You To
Applying Alexis King's parse-don't-validate principle in TypeScript, where the type system fights back just enough to be annoying.
The latest blog posts to take off on Hacker News. 5,634 posts.
Applying Alexis King's parse-don't-validate principle in TypeScript, where the type system fights back just enough to be annoying.
Introduction to Lisp programming on a PDP-1, with a hands-on practical focus
Ante has taken the first step towards something we all thought was impossible: blending reference counting and borrow checking without run-time crashes. 0
One keyboard bug three decades in the making
By rearchitecting the Images binding, we accidentally uncovered a bug that existed in the open-source hyper library across multiple major versions.
Rhombus version 1.0 is now available! Install: https://rhombus-lang.org/download.html More information: https://rhombus-lang.org/ Why a new language? https://rhombus-lang.org/goal.html (copied below) Frequently Asked Questions: https...
japanese verbs are awesome. you can take the dictionary form of a verb (for example, "taberu", to eat) and turn it into many forms: taberu ("eat"): tabemasu…
Let’s talk about nil pointer checks in Go. You want to prevent panics in production, but that doesn’t start with a deferred recover. It starts with defensive programming. Check your inputs, check your bounds, and check pointers for nil before dereferencing them. I’ve started to see more nil checks in Go code. In the…
I’ve been telling people for the last 25 years that Jane Street as an organization was just not interested in formal methods.
TrueType is a widely used vector font standard for rendering text in web pages, PDFs, operating systems, and applications. Familiar fonts like Helvetica, Garamond, and Monaco are all built on TrueType outlines. The format specifies a hinting interpreter intended to help outlines rasterize faithfully on low-resolution…
I’ve been telling people for the last 25 years that Jane Street as an organization was just not interested in formal methods.
Once I wrote users.select { |u| u.admin? }.map(&:email) and realized I’d written Lisp.
We are pleased to announce the Pyodide 314.0 release. This release focuses on standardization and packaging, marking a significant milestone in the Python-in-the-browser ecosystem. PEP 783 is Accepted: What Does It Mean? The acceptance of PEP 783: Emscripten packaging marks perhaps the most exciting change in the…
Library maintainers may feel overwhelmed by the plurality of type checkers that exist. We offer some guidance on how to focus their efforts where they matter most.
Technical articles and release notes about Symbolica, symbolic computation, numerical methods, and high-performance computer algebra.
C++: The Documentary premiered today on YouTube, and it was great to be on the live chat with Bjarne and many other key folks who participated in C++’s history. I’m honored to have been…
Welcome to all Camleers We are back with another practical walkthrough for the newcomers of the OCaml ecosystem. We understand from the feedback we have gathered over the years that getting started with the OCaml Distribution can sometimes be perceived as challenging at first. That's why we keep it ...
From Elixir v1.20, every program is now gradually type checked in search for verified bugs and typing violations.
News post: Gleam v1.17.0 released!
I am now generating this website with Clojure (yes, right after rewriting it in GNU Make and shell ; I have a problem, ok?). In a personal tradition, I used writing a static site generator as the project to play with and learn Clojure as a new language. While I’ve long scoffed at Clojure for its copious syntax ( three…
QBE 1.3 took a while to cook, but it is the most significant release since 1.0 with around 7k new lines of code and 1.5k deleted ones. In addition to the usual bug fixes, QBE gained a new and original IL matching algorithm, new optimizations from Roland Paterson-Jones, Scott Graham added support for the Windows ABI…
I never thought it could happen to me. I mean, parentheses? In this day and age? But for the past couple years, my go-to programming language for fun side projects has been a little Lisp dialect called Janet. (print "hey janet") I like Janet so much that I wrote an entire book about it, and put it on The Internet for…
By Terts Diepraam Almost exactly one year ago, we announced Roto, a JIT-compiled embedded scripting language for Rust applications. A lot has happened since then that we'd like to tell you about! 💡Along with this post, we published Roto v0.11.0! You can check out the changelog
Empowering everyone to build reliable and efficient software.
_posted by Stephen De Gabrielle and John Clements_ We are pleased to announce Racket v9.2 is now available from https://download.racket-lang.org/. As of this release:: The `match` form checks that when non-linear patterns (patterns where the same vari...
Who does things like that?!? Apparently: me. I have my own project, written in Rust. Not a big one, mind you, maybe approx. 30k lines of code in total. Rust is verbose so it’s not really that impressive. I’ve put it aside for some time and was toying with local inference, LLMs, writing agents and my attention was…
Anyone who's written C knows that full ISO C standard-adhering code is an impractical rarity. Most real world C code out there relies on non-standard behaviors and language extensions to varying extents, and a lot of this isn't for extra features, but just to work around bugs and gaps in different compilers and…
C array types are weird. In this article I’ll explain what I find weird about them, what I’d do differently, and ramble on a few related things.
Out of all the migrations I help teams with, Go to Rust is a bit of an outlier. It’s not a question of “is Rust faster?” or “does Rust have types?”, Go already gets you most of the way there. The discussion is mostly about correctness guarantees, run…