Hacker News with Generative AI: Programming Languages

Python interpreter adds tail calls (lwn.net)
The Faster CPython project has been working to speed up the Python interpreter for the past several years. Now, Ken Jin, a member of the project, has merged a new set of changes that have been benchmarked as improving performance by 10% for some architectures.
Node just added TypeScript support (deno.com)
Node.js recently added native TypeScript support in version 22.6 (stabilized in 23.6), a welcome enhancement simplifying setups for TypeScript users. This has sparked questions within the community about how Node’s new capabilities compare with Deno’s existing TypeScript integration.
Common Lisp in 2055 (Satire) (medium.com)
The year is 2055. AI automation has made 99.7% of all jobs obsolete — a human barista is now a rare novelty.
Zig: A good memory allocator in 200 lines of code (github.com/ziglang)
An allocator that is designed for ReleaseFast optimization mode, with multi-threading enabled.
Show HN: CodeTracer – A new time-traveling debugger implemented in Nim and Rust (github.com/metacraft-labs)
CodeTracer is a user-friendly time-traveling debugger designed to support a wide range of programming languages.
Zig-0.14.0 Landed (ziglang.org)
Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software.
F# for Fun and Profit (fsharpforfunandprofit.com)
This site will introduce you to F# and show you ways that F# can help in day-to-day development of mainstream commercial business software. On the way, I hope to open your mind to the joys of functional programming – it really is fun!
ZJIT: Building a Next Generation Ruby JIT (rubykaigi.org)
YJIT can make Ruby code run faster, but this is a balancing act, because the JIT compiler itself must consume both memory and CPU cycles to compile and optimize your code while it is running.
Zig 0.14.0 Release Notes (ziglang.org)
Zig 0.14.0 implements an accepted proposal which allows switch statements to be labeled, and to be targeted by continue statements.
Lean 4, Release v4.17.0 (github.com/leanprover)
The Lean v4.17 release brings a range of new features, performance improvements, and bug fixes.
C++ creator calls for help to defend programming language from 'serious attacks' (theregister.com)
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
On the criteria to be used in decomposing systems into modules (1972) (dl.acm.org)
An Attempt to Catch Up with JIT Compilers (arxiv.org)
Just-in-Time (JIT) compilers are able to specialize the code they generate according to a continuous profiling of the running programs. This gives them an advantage when compared to Ahead-of-Time (AoT) compilers that must choose the code to generate once for all.
A float walks into a gradual type system (ruudvanasseldonk.com)
I am building a new configuration language: RCL. It’s a gradually typed superset of json that extends json into a simple functional language that enables abstraction and reuse. Its main purpose is to generate json, yaml, and toml files, but it makes a pretty good json query tool too. Think jq, but without having to ask an LLM to write the query for you.
C++ creator calls for action to address 'serious attacks' (theregister.com)
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
Taichi: High-Performance Parallel Programming in Python (taichi-lang.org)
Taichi is a domain-specific language embedded in Python that helps you easily write portable, high-performance parallel programs.
C++ creator calls for help to defend programming language from 'serious attacks' (theregister.com)
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.
Falsehoods programmers believe about languages (localization) (lexiconista.com)
This is what we have to put up with in the software localisation industry.
An ode to TypeScript enums (disintegrator.dev)
It’s official, folks. TypeScript 5.8 is out bringing with it the --erasableSyntaxOnly flag and the nail in the coffin for many of the near-primordial language features like Enums and Namespaces. Node.js v23 joined Deno and Bun in adding support for running TypeScript files withouth a build step. The one true limitation is that only files containing erasable TypeScript syntax are supported. Since Enums and Namespaces (ones holding values) violate that rule since they are transpiled to JavaScript objects.
Begrudgingly Choosing CBOR over MessagePack (taylor.town)
In my pursuit of a sharable programming language, I need a suitable serialization format that's (1) performant to send/store and (2) easy to understand/implement.
Recursive Subtyping for All (cambridge.org)
Recursive types and bounded quantification are two prominent features in many modern programming languages, such as Java, C#, Scala, or TypeScript.
Ask HN: What less-popular systems programming language are you using? (ycombinator.com)
Ask HN: What less-popular systems programming language are you using?
Lisp in Your Language (danthedev.com)
I'm a fan of Lisp programming languages, but there's an incredible conceptual elegance that struggles to materialise as readable elegance for many unfamiliar programmers. The underlying concepts are incredibly simple, but the learning curve can represent a disproportionate challenge.
Show HN: a Rust library for creating hierarchical state machines (docs.rs)
Moku is a Rust library for creating hierarchical state machines.
Type++: Prohibiting Type Confusion with Inline Type Information [pdf] (ndss-symposium.org)
Imposing memory security in C [video] (fosdem.org)
They say that Rust is going to replace C. I don't believe that and I wanna share how we're doing memory-safe operations in BIRD's C code with no need to enforce this by the language paradigm. It's obviously possible to override that, yet with the right policies and processes in place, it is almost impossible.
Python interpreter adds tail calls (lwn.net)
The Faster CPython project has been working to speed up the Python interpreter for the past several years. Now, Ken Jin, a member of the project, has merged a new set of changes that have been benchmarked as improving performance by 10% for some architectures.
Python as a second language empathy (2018) (ballingt.com)
A mechanically verified garbage collector for OCaml [pdf] (kcsrk.info)
Calling Rust from Cursed Go (pthorpe92.dev)
Purego makes registering foreign symbols very simple. When the driver is registered, I dlopen() the library and