Loading...
Loading...
A wave of language and tooling updates is shifting momentum from syntax novelty to developer experience. Swift 6.3 and new JavaScript proposals highlight continued investment in safety and structured concurrency, while Go-centric content spans project organization, naming, and compiler work like //go:fix inlining. Meanwhile, experimental languages and runtimes—Solod (a Go subset transpiling to C), Scheme fexpr compilation tweaks, and tiny-kernel DSL efforts—aim to simplify systems programming without heavy runtimes. Version control is also being rethought for AI-era workflows, from token-lean Git reimplementations in Zig to semantic, entity-based systems like Kin, underscoring tooling as the main lever for adoption.
The Lone Lisp project has added a dedicated generator type, intended to become the basis for iteration in the language. The article demonstrates a generator created from a function that uses a new yield form to emit successive values; repeated calls to the generator return 2, 3, 4, then the function’s final return value (1), and then error when exhausted. The author frames generators as “semicoroutines,” a restricted coroutine model that always yields back to its caller, simplifying both understanding and implementation. The change is motivated by performance concerns with implementing generators via delimited continuations, which in Lone’s design require memcpy-style stack copying (“multishot” continuations). Instead, the implementation moves toward coroutine-style stack switching using a generator structure with its own stack and function.
Generators in Lone Lisp | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login Generators in Lone Lisp ( matheusmoreira.com ) 8 points by matheusmoreira 2 hours ago | hide | past | favorite | discuss help Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:
<p>A new approach to compiling fexprs.</p> <p>It's simple: fexprs can't mutate the lexical environment in which they are called.</p> <p>Downside: you can't create fexprs like (define-class x ...), you need to write (define x (make-class ...))</p>
CESIL and other programming languages
A developer has released “nit,” a Git replacement written in Zig that uses libgit2 to reduce token-heavy output for AI coding agents. Based on data from 3,156 coding sessions, Git produced about 459,000 tokens and represented 7.4% of shell-command output; the author says Codex exceeds 10% of bash calls. Nit defaults to compact, machine-oriented formatting and claims large token reductions versus Git defaults: status ~125→~36 (71%), log -20 ~2,273→~301 (87%), diff ~1,016→~657 (35%), and show --stat ~260→~118 (55), saving an estimated 150,000–250,000 tokens across sessions. Benchmarks over 100 hyperfine runs show 1.39x–1.64x speedups. Unimplemented commands fall through to Git via execvpe(), and a “-H” mode restores human-friendly output.
Developer Fielding posted “Show HN: Nit,” a Git reimplementation written in Zig that aims to reduce token usage for AI coding agents by producing more compact command output. The Hacker News post claims a 71% token savings and suggests aliasing nit as git so agents can use familiar workflows; for commands Nit doesn’t implement, it falls back to wrapping the standard Git CLI. Commenters questioned whether existing Git flags (for example, `git status --short` and `git log --oneline`) already provide similar brevity, and why a full rewrite is needed versus a wrapper. Others asked for evidence that Git output is a major token bottleneck in typical agent sessions and raised concerns about heavy LLM involvement in the project and write-up. The article provides limited technical detail beyond these claims.
acwj: A Compiler Writing Journey
Swift 6.3 released
Structuring Go projects
Adding structured concurrency to JavaScript
Go Naming Conventions: A Practical Guide
Arturo programming language
From error-handling to structured concurrency
An Incoherent Rust
A developer introduced Solod (So), a new programming language that is a strict subset of Go which translates directly to readable C11. So aims for systems programming without a runtime: no garbage collection, no hidden allocations, and no reference counting — everything is stack-allocated by default with explicit heap allocation via the standard library. It preserves much of Go’s syntax and tooling (syntax highlighting, LSP, linting, go test) while removing goroutines, channels, closures, and generics. So supports structs, methods, interfaces, slices, multiple returns, defer, and native bidirectional C interop without cgo. The project targets C-level performance and interoperability while keeping Go-style safety and developer ergonomics.
Rust Project Perspectives on AI
The article introduces Solod (So), a new programming language that is a strict subset of Go which transpiles to readable C11. Key features: zero runtime (no GC or hidden allocations), default stack allocation with optional heap via the standard library, direct C-to-So and So-to-C interop without cgo, and compatibility with Go tooling (syntax highlighting, LSP, go test). So supports structs, methods, interfaces, slices, multiple returns, and defer, but omits channels, goroutines, closures, and generics to keep simplicity and C-mappability. The writeup includes examples showing Go source and the generated C header and implementation, details on type mapping (strings, ints, any as void*), and design rationale aimed at systems programming using Go syntax and safety while producing efficient C output.
&#32; submitted by &#32; <a href="https://www.reddit.com/user/Low-Trust2491"> /u/Low-Trust2491 </a> <br/> <span><a href="https://rune.codes/hub/tech-trends/top-5-emerging-programming-languages-every-developer-should-watch">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1s0lvll/check_out_top_5_emerging_programming_languages/">[comments]</a></span>
Solod: Go can be a better C
&#32; submitted by &#32; <a href="https://www.reddit.com/user/ketralnis"> /u/ketralnis </a> <br/> <span><a href="http://www.os2museum.com/wp/bitfield-pitfalls/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rz2kyq/bitfield_pitfalls/">[comments]</a></span>
Kin: Semantic version control that tracks code as entities, not files
&#32; submitted by &#32; <a href="https://www.reddit.com/user/ketralnis"> /u/ketralnis </a> <br/> <span><a href="https://www.harudagondi.space/blog/torturing-rustc-by-emulating-hkts/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rwnfam/torturing_rustc_by_emulating_hkts/">[comments]</a></span>
&#32; submitted by &#32; <a href="https://www.reddit.com/user/aspleenic"> /u/aspleenic </a> <br/> <span><a href="https://blog.gitbutler.com/git-ux-rant">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rw70i3/a_couple_of_git_nits/">[comments]</a></span>
Good Haskell Libraries
//go:fix inline and the source-level inliner | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login //go:fix inline and the source-level inliner ( go.dev ) 24 points by commotionfever 1 hour ago | hide | past | favorite | 1 comment help measurablefunc 3 minutes ago [–] https://en.wikipedia.org/wiki/Hygienic_macro reply Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:
Show HN: GDSL – 800 line kernel: Lisp subset in 500, C subset in 1300 | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login Show HN: GDSL – 800 line kernel: Lisp subset in 500, C subset in 1300 ( firthemouse.github.io ) 8 points by FirTheMouse 53 minutes ago | hide | past | favorite | discuss help Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:
&#32; submitted by &#32; <a href="https://www.reddit.com/user/Imaginary-Fail8279"> /u/Imaginary-Fail8279 </a> <br/> <span><a href="http://thorn.hikikomori.no">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1ru8qxh/thorn_a_programming_language_you_dont_need_a_phd/">[comments]</a></span>
Good Old Pointers (2015)
A free, ~400-page beta book titled "Algorithms and Data Structures in TypeScript" provides an idiomatic, type-safe, and tested presentation of core undergraduate algorithms (roughly MIT 6.006/6.046) implemented in TypeScript. Built with Zenflow and assisted by Anthropic models, the book targets software engineers and CS students who want practical, code-centered explanations and exercises; implementations and tests are available in an accompanying GitHub repo and contributions/issue reports are encouraged. The resource aims to close the gap between theoretical pseudocode and real-world TypeScript usage, making algorithmic guarantees and data-structure mechanics directly applicable to everyday development and interview prep. It’s beta, so readers should expect incomplete sections and potential errors.
Show HN: Algorithms and Data Structures in TypeScript – Free Book (~400 Pages)
Learn Haskell in Two Weeks
&#32; submitted by &#32; <a href="https://www.reddit.com/user/fagnerbrack"> /u/fagnerbrack </a> <br/> <span><a href="https://purplesyringa.moe/blog/fenwick-layout-for-interval-trees/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rsgo6k/fenwick_layout_for_interval_trees/">[comments]</a></span>
A developer built a small stack-based virtual machine and then wrote a tiny compiler that emits bytecode for it, implementing a classic compilation pipeline: lexer, parser, AST, bytecode generator, and VM. The compiler targets a Java-like source language and produces instructions tailored to the custom VM’s instruction set. The project demonstrates how high-level constructs are lowered into bytecode and executed by a runtime, useful for learning compiler design, virtual machines, and language implementation. It matters to developers and systems programmers as a hands-on example of language tooling, bytecode design, and interpreter/runtime trade-offs, and can inform education, prototyping of domain-specific languages, or experimentation with custom execution models.
&#32; submitted by &#32; <a href="https://www.reddit.com/user/ketralnis"> /u/ketralnis </a> <br/> <span><a href="https://ziglang.org/devlog/2026/#2026-03-10">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rqysa7/zig_type_resolution_redesign_and_language_changes/">[comments]</a></span>
&#32; submitted by &#32; <a href="https://www.reddit.com/user/BlueGoliath"> /u/BlueGoliath </a> <br/> <span><a href="https://www.youtube.com/watch?v=zOUsVf1LsKg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rq6r1f/exploring_the_ways_different_languages_handle/">[comments]</a></span>
"Go isn’t perfect. No language is. But for cloud-native backend services, Go offers a combination that’s hard to beat: simplicity, performance, tiny deployments, and a flat learning curve." https://t.co/mJA8wWgxb4 < fantastic case for @golang on the backend https://t.co/aeyRtzCNAK [翻译] "Go 不完美。没有语言是完美的。但对于云原生后端服务,Go 提供了难以超越的组合:简洁性、性能、极小的部署体积和平缓的学习曲线。" < 为后端使用 @golang 的绝佳理由
Compiling Prolog to Forth [pdf] | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login Compiling Prolog to Forth [pdf] ( vfxforth.com ) 11 points by PaulHoule 1 hour ago | hide | past | favorite | discuss help Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:
The article explains how the Purple Garden language implements match statements and compiles them down to bytecode for a typed, register-based virtual machine. It describes match syntax (conditional cases plus a required default), the language's SSA-style IR composed of functions and basic blocks with explicit parameters and terminators, and the parser design (recursive-descent with Pratt elements). The piece walks through parsing (including Parser::parse_match in Rust), AST construction, and the pipeline that decouples codegen and optimizations. The write-up highlights design choices—no phi nodes, explicit block params, and a bytecode backend—showing why this approach simplifies control-flow lowering and enables future backend expansion.
Compiling Match Statements to Bytecode
The Go project is moving to add a uuid package to the standard library to generate and parse UUIDs (versions 3, 4 and 5), driven by a proposal that has reached “Likely Accept.” The proposal notes the widespread reliance on third-party libraries like github.com/google/uuid across Go servers and databases and argues UUID support belongs in the stdlib. The draft API emphasizes RFC 9562 compliance, cryptographically secure randomness for new UUIDs, permissive parsing, and stable symbols (Nil, Max, Parse). If accepted, this reduces dependency churn, standardizes UUID handling in Go programs, and aligns Go with other languages that include UUID support natively. Key players include the Go proposal authors and reviewers in the Go project.
The Go project is moving to add a uuid package to the standard library to generate and parse UUIDs (notably v3, v4 and v5), driven by a long-standing proposal and wide use of third-party libraries like github.com/google/uuid. The proposal—updated in Feb 2026—outlines an API consistent with RFC 9562, cryptographically secure random generation, permissive parsing behavior, and stable exported vars for Nil and Max; it is marked Likely Accept. Adding uuid into the stdlib matters because UUIDs are ubiquitous in server and database applications, and including a vetted, stable implementation reduces dependency fragmentation, improves security assumptions, and standardizes behavior across Go programs.
UUID package coming to Go standard library | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login UUID package coming to Go standard library ( github.com/golang ) 26 points by soypat 1 hour ago | hide | past | favorite | discuss help Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact Search:
Go lacks a try-style error-propagation operator by design, and the article argues that this is not merely about preference for explicitness. It compares Go to Zig and Rust, noting that Zig’s try is actually more explicit: Zig’s type system encodes failure in function signatures so the compiler enforces handling and all possible errors are visible. Go’s if err != nil pattern is verbose but optional (you can ignore errors with _), so the language doesn’t truly enforce explicit handling. Proposals to add try to Go seem attractive for brevity, but the Go team resists it because try creates implicit early returns and can hide control flow. The piece frames the choice as a trade-off between concise syntax and compiler-enforced error semantics.
&#32; submitted by &#32; <a href="https://www.reddit.com/user/Sushant098123"> /u/Sushant098123 </a> <br/> <span><a href="https://sushantdhiman.dev/things-i-miss-about-spring-boot-after-switching-to-go/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rmguzb/things_i_miss_about_spring_boot_after_switching/">[comments]</a></span>
rustc-php: A Rust compiler with ownership checking, written in PHP
A rabbit hole in 5 commits
&#32; submitted by &#32; <a href="https://www.reddit.com/user/Jabes"> /u/Jabes </a> <br/> <span><a href="https://pub.huizhou92.com/go-is-finally-getting-lambdas-8-years-in-the-making-a2559a65443f">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rlv3xe/go_is_finally_getting_lambdas_8_years_in_the/">[comments]</a></span>
&#32; submitted by &#32; <a href="https://www.reddit.com/user/ketralnis"> /u/ketralnis </a> <br/> <span><a href="https://blog.lorenzano.eu/smalltalks-browser-unbeatable-yet-not-enough/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1rks7r7/smalltalks_browser_unbeatable_yet_not_enough/">[comments]</a></span>
Smalltalk’s Browser: Unbeatable, Yet Not Enough
State of Haskell 2025 results