Gleam, the statically typed language designed for safety and clarity on the BEAM and JavaScript platforms, has just released version 1.9.0—a feature-rich update that reflects the language’s ongoing evolution and practical focus. With a trio of notable improvements, including enhanced debugging tools, Git-based dependency support, and more efficient JavaScript output, Gleam v1.9.0 delivers meaningful upgrades tailored to developers’ real-world needs.
This latest release pushes Gleam closer to being a language not just admired for its design, but fully capable of supporting production-level workflows across varied environments. Gleam’s development continues to prioritize both developer experience and runtime performance without compromising its foundational principles of simplicity and reliability.
Echo for Debugging
A standout feature in Gleam v1.9.0 is the introduction of the echo keyword, explicitly aimed at improving the debugging experience. In many statically typed functional languages, debugging can often feel like a cumbersome process involving multiple steps to trace the value of a variable or expression.
With echo, Gleam introduces a more streamlined approach. This keyword allows developers to inspect values during execution, and critically, it displays not only the value itself but also the exact file path and line number where it appears. This contextual visibility is invaluable, especially when diagnosing complex behaviors in larger applications or when unfamiliar codebases are involved.
The echo feature is designed to support development workflows that require fast iteration and clarity, offering a lightweight yet informative debugging method. Instead of reaching for external tools or inserting verbose log statements, developers can now rely on echo for clear, precise runtime insights.
Git-Based Dependencies
Dependency management in Gleam has traditionally relied on published packages hosted in registries. While this model works well for stable, versioned libraries, it can introduce friction in early-stage development or internal collaboration. Gleam v1.9.0 addresses this limitation with built-in support for Git-based dependencies.
With this enhancement, developers can now specify dependencies directly from Git repositories, enabling more agile workflows. For teams experimenting with early prototypes or sharing in-progress libraries privately, this offers an ideal solution. There is no longer a need to publish packages to integrate them into projects prematurely. Instead, developers can point to a specific branch, commit, or tag in a remote repository and use it immediately within their codebase.
This flexibility is especially beneficial in fast-paced environments or within enterprises where internal tooling is standard. It reduces the overhead of publishing, reviewing, and versioning experimental code that may still be under heavy development.
Moreover, Git dependency support aligns Gleam more closely with modern language ecosystems that offer flexible ways to manage and test code dependencies outside of centralized registries.
JavaScript Backend Improvements
Gleam’s dual-targeting capability—supporting both Erlang’s BEAM VM and JavaScript—has always been a key differentiator. With version 1.9.0, the JavaScript backend receives substantial performance tuning, making it more competitive and practical for client-side or cross-platform applications.
This release focuses on refining how Gleam compiles to JavaScript, producing cleaner and more efficient code. These improvements not only reduce the size of the generated output but also contribute to faster execution times. Developers targeting browser environments or building serverless functions on Node.js will find these enhancements particularly impactful.
Previously, the JavaScript backend was considered secondary compared to the Erlang compilation target, but that perception is beginning to shift. As JavaScript continues to dominate in web and hybrid application spaces, the need for robust and efficient JS support becomes increasingly important. Gleam v1.9.0 brings the language a step closer to being truly viable in full-stack scenarios.
These changes may seem low-level at a glance. Still, they have real-world implications: smaller bundle sizes, lower latency, and improved overall performance in deployment environments that prioritize speed and responsiveness.
Language Server and Editor Tooling
Alongside core language enhancements, Gleam v1.9.0 delivers essential updates to its developer tooling, specifically through its language server, which integrates with modern editors such as VS Code and Neovim.
One of the most valuable additions is go-to type definition support. It allows developers to quickly navigate to the type definitions of variables, functions, or modules directly within their editor. It’s a small change that significantly improves code exploration, especially in larger projects where type information is essential to understanding flow and structure.
Another productivity-focused enhancement is HexDocs search integration. Developers can now search HexDocs directly from their editor interface, eliminating the need to toggle between browser and code. This tighter integration creates a smoother and faster development experience, reducing friction when looking up documentation or usage examples.
Enterprise environments also benefit from the inclusion of custom Certificate Authority (CA) support, making it easier to work within secure networks where internal or self-signed certificates are in use. It is a nod to Gleam’s growing relevance in corporate and enterprise settings, where compliance and security are often non-negotiable requirements.
Automated Code Actions
Gleam v1.9.0 also introduces a range of automated code actions that serve to reduce manual effort and enforce consistency across projects.
Among the most notable is the pipeline to function call converter. This feature allows developers to easily toggle between pipeline syntax—commonly used in functional programming—and traditional function calls. It can be helpful for readability, team coding standards, or debugging.
Another powerful new addition is the automatic generation of JSON encoders and decoders, including support for multi-variant types. JSON handling is a routine necessity in nearly every application that interacts with web APIs, databases, or front-end components. Automating this process saves time, reduces potential errors, and simplifies data serialization and deserialization across the board.
Additionally, the inclusion of native string interpolation improves syntax clarity. Developers can now format strings in a way that’s both readable and expressive without resorting to verbose concatenation methods.
Conclusion
Gleam v1.9.0 represents a meaningful evolution in the language’s capabilities and usability. It’s not just about adding new features but about reinforcing Gleam’s reputation as a modern, thoughtfully designed language that empowers developers to write safe, expressive, and performant code.
The introduction of contextual debugging with echo, the flexibility of Git-based dependencies, and the significant progress in JavaScript performance all point toward a maturing ecosystem. Coupled with more innovative tooling, editor support, and automation, version 1.9.0 delivers on its promise to improve both the developer experience and the practicality of using Gleam in diverse environments.