Themata.AI
Follow coverage
Themata.AI
← All topics

Programming languages

Source reports covering Programming languages. Stories will appear when analysis and community reactions are ready.

47 reports · page 1 of 1

Browse reports ↓Search this topic

Connected topics are temporarily unavailable. You can still browse stories below.

Source reports

  • The End of Programming

    opinion

    10 min read

    Bun 1.4 includes a rewrite of Bun from Zig to Rust, adding more than 1 million lines of Rust code. Bun creator Jarred Sumner reportedly used a pre-release model called Fable 5, an agent framework that could work in parallel, and an effectively unlimited token budget to complete the initial translation in 11 days. The effort generated 6,778 commits and would have cost about $165,000 at API pricing, according to the account. Agents then continued refining the code for months before the supported release, which Paul Dix says is running on millions of developer machines. Dix argues that AI agents will increasingly write, test and improve software while people specify requirements, build verification systems and assess end results rather than review every line of code. He reports using Fable to build unshipped InfluxDB prototypes: an Iceberg integration in 14 hours and an edge-data replication system in 28 hours, followed by testing and bug fixes. Dix says neither project is production-ready or supported, but both reached end-to-end working implementations. Dix predicts that cheaper, faster frontier models and larger token budgets could make this workflow widely accessible by the end of the following year. He expects organizational inertia to preserve manual programming and code review at many companies, while more productive teams rely on AI-directed software factories and automated verification.

    BunRustDeveloper tools
  • What's new in Emacs 31.1

    tool

    181 min read

    Emacs 31.1 has been released with incremental usability, completion, window-management and terminal improvements rather than a single flagship feature. The release permanently removes the legacy unexec dumper, deprecated since Emacs 27, leaving the portable dumper as the supported mechanism for preloading Emacs Lisp state. It also stops building and installing Emacs’s old ctags program, directing users to Universal Ctags or to `etags --ctags` for compatible behavior. A planned new garbage collector was postponed to Emacs 32. A new User Lisp Directory feature automatically processes Lisp files under `user-lisp/` in an Emacs configuration directory, including recursive byte compilation, autoload generation and load-path setup. Tree-sitter modes can now offer to install their required language grammars. Completion gains configurable eager display and live updating of the *Completions* buffer, while the rewritten flex completion style is intended to be faster and rank matches more accurately. New commands rotate, flip and transpose window layouts, and a setting controls preferred split direction. Compatible terminals now enable `xterm-mouse-mode` by default, and TTY frames gain child-frame support. Emacs 31.1 also adds built-in controls for collapsing minor-mode indicators, hiding a buffer’s mode line, extending selections with Shift-click, and preventing asynchronous native compilation on battery power. It includes Org 9.8 and supports Unicode Standard 17.0.

  • Thinking in Python

    tool

    1 min read

    Thinking in Python is a Bruce Eckel book covering Python insights, idioms, and patterns. The site provides the book for online reading and links to example code and exercise solutions hosted on GitHub. The material is copyrighted © 2026 by Bruce Eckel and licensed under CC BY-NC-ND 4.0. The site states that the book is freely readable online and that reproduction requires permission.

  • A Friendly Introduction to Racket

    tool

    7 min read

    Racket is a descendant of Scheme designed for education and programming-language research that can also be used to create domain-specific languages. PLT Scheme, created by Matthias Felleisen’s group in 1995, was renamed Racket in 2010. DrRacket includes an editor and a read-eval-print loop, while the racket command opens a terminal REPL and raco provides package-management and tooling commands. Racket programs use parenthesized expressions in operator-first form, such as (+ 1 2), and define values and functions with define. Lists are central data structures: quoting with ' prevents evaluation, while first, rest, and cons access or construct lists. Functions are first-class values, enabling operations such as map, filter, and foldl; recursive functions can express repeated computation through base cases and self-calls. Racket also ships with libraries including 2htdp/image for graphics. Because Lisp-family code can be represented as lists, quoted expressions can be manipulated as data and evaluated as code. Racket macros can transform syntax before runtime; define-syntax-rule can define constructs such as a while loop. Lisp originated at MIT in 1958 under John McCarthy, Scheme was created by Gerald Sussman and Guy Steele in 1975, and Lisp introduced or popularized concepts including garbage collection, first-class functions, REPLs, and code-as-data representation.

  • Rust Glancer: Rust LSP using 100x less RAM

    tool

    6 min read

    Rust Glancer is an alternative Rust language server built over four months to reduce memory use and preserve workspace indexes across editor restarts. It targets less than 100 MB of RAM for reasonable projects by storing analysis results on the filesystem and loading data only when a query needs it. Its VS Code extension is available now, although the server remains incomplete and has known bugs. Rust Glancer performs full workspace indexing with type inference and the Chalk trait solver, and supports common Rust syntax and LSP functions including go-to-definition, hover information, inlay hints, and completions. On a MacBook Pro M4 Max with 36 GB RAM, its reported base and full indexing times were five and eight seconds, versus six and 13 seconds for rust-analyzer. On a 2020 M1 MacBook Pro with 8 GB RAM, the reported times were six and nine seconds, versus seven and 14 seconds for rust-analyzer. Unlike rust-analyzer’s incremental in-memory model, Rust Glancer invalidates frozen analysis on save. It uses shallow analysis while typing and reuses the previous complete index, so new imports, structs, and traits are not fully indexed until a document is saved. The developer expects rust-analyzer to remain preferable for feature completeness and per-keystroke accuracy, while Rust Glancer targets lower-memory machines and workflows with many external code changes.

  • Go 1.27

    tool

    3 min read

    The Go team released Go 1.27, adding language features, toolchain updates, runtime profiling, performance work, and new standard-library packages. The release supports generic methods, allowing methods such as math/rand/v2.Rand.N to work across integer types. Struct literals can now initialize nested or embedded fields through valid field selectors, and generalized function type inference now covers all assignment contexts, including composite literals, type conversions, and channel sends. Go 1.27 adds go fix modernizers for atomic types, embedded literals, backward slices, and unsafe functions. The go doc command supports package@version queries, while go mod tidy consolidates multiple require blocks into direct and indirect blocks. Size-specialized allocation reduces costs for objects smaller than 80 bytes by up to 30%, with roughly 1% overall improvement claimed for allocation-heavy programs. The runtime/pprof goroutineleak profile is generally available for detecting permanently blocked goroutines. Standard-library additions include encoding/json/v2, post-quantum ML-DSA signatures through crypto/mldsa, UUID support, experimental SIMD packages, and an in-memory HTTP test server for testing/synctest.

  • Mojo is now open source!

    tool

    3 min read

    Modular has released the full source code for the Mojo programming language under the Apache 2.0 license with LLVM exceptions. The Modular GitHub repository now includes the Mojo compiler, tooling and components needed to build the language. Mojo is a general-purpose language designed to apply modern compiler and programming-language research to GPUs, AI accelerators and other advanced computing hardware. Mojo 1.0 recently reached source stability, following four years of development in which the language had an open community but a closed compiler. Modular had previously open-sourced Mojo’s standard library, kernel code, tools and support components. The Apache 2.0 license permits broad use, while the LLVM license exceptions expand permissions for building and distributing binaries compiled from Mojo. Developers can clone the Modular repository and use Bazel to build the compiler and standard library locally. The `--config=build-mojo` setting compiles the toolchain from local source, and developers can run standard-library tests through Bazel. The `--config=prebuilt-mojo` setting downloads a nightly compiler binary instead, although Modular says a prebuilt compiler remains necessary for customizing MAX kernels or models. Mojo’s standard library has accepted outside contributions since 2024, but Modular is not yet accepting contributions to the compiler or tooling and aims to do so by the end of the year.

  • Rhombus 1.1 is now available

    tool

    1 min read

    Rhombus version 1.1 is now available for download at https://rhombus-lang.org/. This release introduces new features, including the ability to define annotations without writing meta-time code and a new binding form for improved readability.

  • Why Target Common Lisp for Code Generation?

    opinion

    4 min read

    Common Lisp is chosen for code generation due to its unique features and capabilities that may not be present in mainstream languages like Python, TypeScript, or Java. The use of Common Lisp allows for more specialized and nuanced coding practices despite the larger training sets available for more popular languages.

  • Go is an ideal language for AI-assisted software engineering

    opinion

    11 min read

    Go is an ideal programming language for AI-assisted software engineering due to its simplicity and efficiency, allowing developers to easily read, clean, and verify AI-generated code. The language's strong support for concurrency and scalability makes it well-suited for building complex systems that AI can help develop.

  • Mojo 1.0

    tool

    4 min read

    Mojo language has officially reached version 1.0, marking its evolution into a stable, general-purpose programming language since its initial release in 2023. The 1.0 version supports a vibrant developer community in creating libraries, tools, and applications, providing a production-ready foundation for long-term development.

  • What's the best programming language for coding agents?

    research

    53 min read

    Dynamically typed programming languages are generally more token efficient in LLMs compared to statically typed languages due to their ability to omit explicit type declarations. This efficiency leads to lower token costs when coding agents.

  • Go 1.27 Interactive Tour

    tool

    15 min read

    Go 1.27 introduces new features with an interactive tour that includes runnable examples to demonstrate changes and updated behaviors. The initiative continues from previous interactive tours created by Anton Zhiyanov for Go versions 1.22 through 1.26.

  • EYG: A Programming Language for Humans

    tool

    6 min read

    Eat Your Greens (EYG) is a statically typed functional programming language designed to improve programming experiences. The language incorporates selected features aimed at enhancing usability and addressing common user frustrations in programming.

  • 10 REM"_(C2SLFF4

    tool

    6 min read

    The Wizard's Castle is an 80s microcomputer BASIC game originally written for the Exidy Sorcerer platform. The source code includes a comment line that features a seemingly nonsensical string, which appears verbatim from the original code.

  • Understanding the Odin Programming Language

    tool

    8 min read

    Understanding the Odin Programming Language is a book that covers both basic and advanced concepts of the Odin programming language. Topics include procedures, manual memory management, parametric polymorphism, and data-oriented design, aimed at individuals with some programming experience.

  • After 7 years in production, Scarf has reluctantly moved away from Haskell

    opinion

    11 min read

    Scarf has transitioned away from Haskell after seven years of production use. The decision reflects challenges faced while using Haskell in their development process.

  • Java 27: What's New?

    tool

    9 min read

    Java 27 has reached its Rampdown Phase One, indicating that it is feature complete. New functionalities introduced in this version are aimed at enhancing the development experience for Java programmers.

  • My thoughts on the Bun Rust rewrite

    opinion

    8 min read

    Bun is being rewritten in Rust to improve performance and maintainability. Jarred's early involvement in the Zig community showcased his experimental approach to problem-solving, contributing to his growth as an engineer.

  • Poly/ML – A Standard ML Implementation

    tool

    1 min read

    Poly/ML is a Standard ML implementation that has been fully compatible with the ML97 standard since version 4.0. It features a fast compiler, avoids incompatible extensions, and includes various library extensions, particularly a thread library.

  • Road to Elm 1.0

    news

    1 min read

    Elm is a programming language designed for building web applications, featuring friendly error messages, high performance, small asset sizes, and no runtime exceptions. Recent updates have improved build times, enhancing developer productivity.

  • Odin, Wikipedia and engagement farming

    opinion

    37 min read

    Odin is a programming language that has been nominated for deletion on Wikipedia. The situation raises concerns about engagement farming and the impact of community-driven content management on lesser-known programming languages.

  • Pledging another $400k to the Zig software foundation

    tool

    2 min read

    Mitchell Hashimoto's family is pledging an additional $400,000 to the Zig Software Foundation, increasing their total support to $700,000. Zig is recognized for its progress in developing a robust programming language and compiler, along with a commendable maintainership approach.

  • Nim Conf 2026 (Online, Sat June 20)

    news

    2 min read

    NimConf 2026 will be held online on June 20th, 2026, at 11am UTC. The conference will be free to attend, streamed live, and recorded for later viewing, allowing participants to engage with speakers and ask questions during the sessions.

  • Elixir v1.20: Now a gradually typed language

    tool

    8 min read

    Elixir v1.20 introduces gradual typing, allowing type inference and type checking for all Elixir programs without requiring type annotations. This release marks a significant development milestone in implementing set-theoretic types in the language.

  • My thoughts after using Clojure for about a month

    opinion

    1 min read

    Clojure offers a functional programming paradigm that emphasizes immutability and concurrency. Users report a steep learning curve but appreciate its powerful abstractions and simplicity once mastered.

  • Cessation of public development of Kefir C compiler

    tool

    11 min read

    Public development of the Kefir C compiler has been halted, with future work transitioning to a private mode indefinitely. No new major developments will be distributed publicly during this period.

  • If AI writes your code, why use Python?

    opinion

    8 min read

    The shift in software development priorities has moved from speed of deployment to performance efficiency. As AI tools increasingly write code, languages like Rust, Go, and C++ are gaining traction due to their superior performance, despite longer ramp-up times and smaller talent pools compared to Python and TypeScript.

  • Mojo 1.0 Beta

    tool

    2 min read

    Mojo is a programming language designed to combine the user-friendliness of Python with the performance of C++. It allows developers to write fast code for various hardware, including CPUs and GPUs, while ensuring memory safety and avoiding vendor lock-in.

  • Redis array: short story of a long development process

    tool

    4 min read

    A new Array data type for Redis has been developed over four months, with implementation occurring part-time. The development process was accelerated by advancements in technology, allowing for increased productivity during that period.

  • Uncle Bob: It's Over

    opinion

    1 min read

    Uncle Bob announces the end of a significant phase in his career. He reflects on the impact of software development practices and the evolution of programming.

  • Vera: a programming language designed for machines to write

    tool

    9 min read

    Vera is a programming language specifically designed for large language models, allowing them to write code. Programs written in Vera compile to WebAssembly and can be executed from the command line or in web browsers.

  • The seven programming ur-languages (2022)

    opinion

    9 min read

    Learning any programming language is beneficial as it helps grasp fundamental concepts shared across languages. Key programming principles, such as looping through arrays or lists, are consistent in imperative languages.

  • Official Clojure Documentary page with Video, Shownotes, and Links

    tool

    5 min read

    A documentary chronicles the origins and community values of the Clojure programming language, featuring insights from key figures like Rich Hickey and Alex Miller. It explores Clojure's impact on software engineering, particularly within the fintech sector, supported by Nubank.

  • Enabling Codex to Analyze Two Decades of Hacker News Data

    tool

    1 min read

    Modolap enables Codex to analyze approximately 10GB of Hacker News data stored in parquet files. The initial analysis focuses on comparing mention history of programming languages, specifically Rust versus Go, and MySQL versus Postgres.

  • The Little Book of C

    tool

    290 min read

    C is a powerful programming language that operates close to the machine level, making it essential for modern operating systems, compilers, and databases. Learning C provides a unique understanding of computer functionality that is not offered by other programming languages.

  • Hypothesis, Antithesis, Synthesis

    tool

    14 min read

    Hegel is a new family of property-based testing libraries that integrates the quality of property-based testing from Hypothesis with Antithesis. This integration aims to enhance bug-finding capabilities across multiple programming languages.

  • Windows native app development is a mess

    opinion

    13 min read

    Windows native app development faces significant challenges due to inconsistent frameworks, limited documentation, and a fragmented ecosystem. Developers often encounter difficulties with tooling and compatibility, complicating the process of building applications for the platform.

  • Common Lisp Development Tooling

    tool

    32 min read

    Common Lisp development environments consist of various tools that help streamline the programming process. Understanding the purpose and function of each component in the development stack can facilitate a smoother setup and enhance the learning experience for beginners.

  • No Semicolons Needed

    tool

    7 min read

    Roto is a new scripting language designed for ease of use and readability, eliminating the need for semicolons to terminate statements. The challenge lies in determining where a statement ends without explicit terminators.

  • Comparing Python Type Checkers: Typing Spec Conformance

    research

    6 min read

    Python's type system began with PEP 484, establishing foundational rules for type checking. A comparison of various type checkers reveals differing levels of conformance to the Python typing specification.

  • Ladybird Browser adopts Rust

    tool

    3 min read

    Ladybird is transitioning from C++ to Rust for its programming needs due to Rust's memory safety, mature ecosystem for systems programming, and better platform support. Parts of Ladybird will be rewritten in Rust to leverage these advantages.

  • Loon: A functional lang with invisible types, safe ownership, and alg. effects

    tool

    1 min read

    Loon is a programming language that operates within web browsers and requires JavaScript to function. It allows users to write and execute code directly in their browser environment.

  • Using go fix to modernize Go code

    tool

    20 min read

    The Go 1.26 release features a completely rewritten go fix subcommand that uses algorithms to identify and implement improvements in Go code. This tool helps developers modernize their codebases by leveraging newer language and library features.

  • SectorC: A C Compiler in 512 bytes

    tool

    10 min read

    SectorC is a C compiler written in x86-16 assembly that occupies 512 bytes in the boot sector of an x86 machine. It supports a subset of C sufficient for writing functional programs, making it potentially the smallest C compiler ever created.

  • LLMs could be, but shouldn't be compilers

    8 min read

    LLMs can potentially function like compilers by translating high-level instructions into executable code. However, there are concerns that relying solely on LLMs may lead to a lack of understanding of the underlying code.

  • Wirth's Revenge

    14 min read

    Niklaus Wirth's 1995 essay "A Plea for Lean Software" critiques the software industry's inefficiencies, coining Wirth's Law: software is becoming slower at a rate faster than hardware improves. Wirth reflects on the simplicity of interactive text editors from 25 years prior compared to modern software complexity.

Explore all topics →