Modernizing AWK, a 45-year old language, by adding CSV support
Why and how I added proper CSV support to GoAWK, my POSIX-compatible AWK interpreter.
The latest blog posts to take off on Hacker News. 5,636 posts.
Why and how I added proper CSV support to GoAWK, my POSIX-compatible AWK interpreter.
If you peruse the archives of language-summit blogs, you’ll find that one theme comes up again and again : the dream of Python without the GIL. Continuing this venerable tradition, Sam Gross kicked off the 2022 Language Summit by giving the attendees an update on nogil , a project that took the Python community by…
In this post, I want to give a nuanced perspective on our experience porting YJIT from C to Rust. I'll talk about the positives, but also discuss the things that we found challenging or suboptimal in our experience.
“ The Rise of Worse is Better ” is a famous essay in the software industry. It says that lazily-looking code that does not provide a consistent interface is sometimes actually better than neatly layered, consistent one. I think I've experienced this paradoxical situation, so I'd like to share that story.
Map your (least) favorite programming language to your favorite Planet Express crew member based on its characteristics.
Whether I’m teaching new Pythonistas or long-time Python programmers, I frequently find that Python programmers underutilize multiple assignment....
The Nim team is happy to announce version 1.6.6, our third patch release for Nim 1.6.
There is no way for your operating system to know exactly how much stack space a thread will need so it allocates an amount on the order of around a kilobyte initially and then around a megabyte once the thread starts to be used. You only have around a bakers dozen gigabytes of RAM, so you can only have give or take…
If the short answer leaves you wanting, keep reading. I must admit that this sentence from the Hare announcement may have caused some confusion:
Do you know why large companies like GitHub, Microsoft, Tesla, and Meta choose to use Haskell? Read our article on Haskell success stories to find out the answer.
Racket version 8.5 is now available from https://download.racket-lang.org. As of this release: Racket's new `-y` flag automatically keeps compiled files up to date, reducing subsequent load times. Error-message realms allow Racket-hosted langua...
Version 12 of GCC implements much of the recent C++ standard, allows a number of previously prohibited constructs, and fixes some problematic behaviors.
Learn Rust to 80% in 5 minutes by leveraging your existing JavaScript knowledge. In this article, I list a number of differences Rust has compared to JS that is crucial to understanding it.
This is a poorly structured list of common questions and answers about OCaml I had to ask myself or have been asked often.
From the highly eclectic blog of Mark Dominus
I often write pieces that showcase how well Rust can work for you, and how it can let you build powerful abstractions, and prevents you from making a bunch of mistakes. If you read something like S...
In the two years since I’ve posted I want off Mr Golang’s Wild Ride, it’s made the rounds time and time again, on Reddit, on Lobste.rs, on HackerNews, and elsewhere. And every time, it elicits the ...
write Python that’s faster than C by optimizing your code, adding standard type annotations, and using Mypyc.
We’ll spend the rest of this book illuminating every dark and sundry corner of the Lox language, but it seems cruel to have you immediately start grinding out code for the interpreter without at least a glimpse of what we’re going to end up with.
My honeymoon with the Go language is extremely over. This article is going to have a different tone from what I’ve been posting the past year - it’s a proper rant. And I always feel bad writing tho...
We illustrate how we implemented UTF-8 support in alfred-margaret and give some insights into how we optimized our Haskell code for performance.
In this article, we introduce you to typeclasses in Haskell: what they are, how they can be used, and how to define your own instances of typeclasses.
Today we’re releasing GraalVM 22.1! This release brings new features and lots of improvements — we’ll cover the highlights in this blog…
Evaluating code at compile time is a capability that most, if not all, compiled programming languages possess, even if it can't be directly used by the programmer, but rather applied as an optimization. In this post, we'll explore a bit how to execute code at compile time in Nim, Zig, Rust and C++.
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
PHP 8.2 has a new randomizer engine, readonly classes, disjunctive normal form types, redacted parameters, performance improvements, and more.
Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.