close icon
daily.dev platform

Discover more from daily.dev

Personalized news feed, dev communities and search, much better than what’s out there. Maybe ;)

Start reading - Free forever
Start reading - Free forever
Continue reading >

Gleam: The new programming language for building typesafe systems

Gleam: The new programming language for building typesafe systems
Author
Nimrod Kramer
Related tags on daily.dev
toc
Table of contents
arrow-down

🎯

Learn about Gleam, a new programming language designed for building robust and typesafe systems that offers an easy learning curve, powerful type system, cross-platform deployment, and developer-friendly tools.

Gleam is a new programming language designed for building robust and typesafe systems. It combines the reliability of Erlang's VM with the user-friendliness of languages like Elm and Rust. Here's what makes Gleam stand out:

  • Easy to Learn: You can quickly get up to speed with its intuitive syntax and powerful features like algebraic data types and pattern matching.
  • Powerful Type System: Catch errors early with a system inspired by Elm and Rust, making your code safer and more reliable.
  • Cross-Platform Deployment: Write once, run anywhere - from back-end systems on Erlang VM to web browsers with JavaScript, and even in native applications.
  • Developer-Friendly Tools: Enjoy a smoother coding experience with the Gleam language server, reliable refactoring, and a growing library support.

Gleam is now production-ready with its 1.0 release, promising a stable and growing ecosystem for developers looking to build dependable systems, APIs, and more. Whether you're into functional programming or looking for a language that ensures your application's reliability, Gleam offers a compelling mix of features and benefits.

Positioning Gleam in the Market

Gleam borrows ideas from other programming languages that are good at making sure your code does what it's supposed to do, like OCaml, Elm, and Rust. But it tries to be easier for people to pick up and use while still keeping things safe with its type system (a way to define what kind of data your code can work with). Because it runs on the Erlang VM (a platform known for running applications very reliably), Gleam is especially good for making server applications and APIs that need to be up and running all the time without any problems.

Key Features and Benefits

Easy to Learn

Gleam is pretty straightforward and you can get the hang of it quickly. Here’s why it’s easy to start with:

  • It looks and feels like other programming languages that are good for making apps, such as OCaml.
  • You don’t have to keep saying what type something is because Gleam figures it out for you.
  • You can write clear and powerful code with features like algebraic data types and pattern matching.
  • Everything stays the same (immutable), which means fewer mistakes.
  • There’s not a lot of extra stuff you need to learn to start making things.

Gleam keeps things simple but effective, letting you focus more on creating cool stuff rather than getting stuck on complicated language problems.

Powerful Type System

Gleam uses smart ways from languages like Elm and Rust to check your code for mistakes before it even runs. This means:

  • You can describe complex ideas in your code more easily.
  • The language helps you by not needing to repeat yourself with types.
  • It checks your code to avoid common mistakes like forgetting to handle a case where something doesn’t exist.
  • Since things don’t change unexpectedly, it’s easier to keep your code bug-free.
  • Changing your code is safer because Gleam checks to make sure everything still works together.

These features help you build apps that can handle a lot without breaking down, making sure your code is solid from the start.

Cross-Platform Deployment

Gleam is great because it lets you use the same code in different places. You can make it work on:

  • The Erlang VM, which is good for backend stuff that needs to be reliable.
  • JavaScript, for things you see in a web browser or for backend systems on platforms like Fly.io.
  • Native apps, when you need things to run super fast.

This means you can use the same ideas and code whether you’re working on the front end, the back end, or anywhere in between. No need to switch your thinking for different parts of your project.

Gleam gives you the flexibility to choose how and where to run your project while keeping the benefits of a system that checks your code and a style of programming that’s about doing one thing at a time.

Developer Experience

Gleam Language Server

The Gleam language server makes coding easier by suggesting how to finish your code, where to find stuff, and the best way to rename things. It helps you avoid mistakes and code faster by giving smart tips as you write. This tool also points out errors, unused bits of code, and style issues right away, offering quick fixes. It's all about making coding smoother so you can concentrate on solving problems instead of struggling with the tools.

Reliable Refactoring

Changing your code around is safe in Gleam because its smart type system and tools help you out. If you rename something, the compiler shows you everywhere it needs to be updated and does it for you, ensuring nothing breaks by accident. This means you can keep improving your code without worrying about messing things up, making it easier to work on big projects over time.

Library Support

Gleam comes with a bunch of built-in tools for things like working with data, doing tasks at the same time (concurrency), and more, so you can start building stuff right away. It also has packages for working with popular databases and services, like MongoDB, PostgreSQL, and Kafka, making it easier to connect your code to these tools. The plan is to keep adding more libraries so you can focus more on your main project and less on the setup. This helps you get more done on real projects.

sbb-itb-bfaad5b

Adoption and Roadmap

Production Readiness

Gleam version 1.0 means it's ready for serious projects. The main parts of Gleam are stable, and the team will now work on growing its tools and features without messing with what's already there. Businesses can use Gleam for important tasks without worry.

The Gleam team promises to give a heads-up about any big changes at least 6 months in advance. This way, everyone has time to adjust. They'll use semantic versioning to make it clear when updates might cause issues.

Community Growth

Now that Gleam is ready for the real world, getting more people involved is key. There's a lot of help available, from beginner guides to detailed manuals that explain everything about Gleam.

A book about Gleam is on the way, offering a deep dive into making apps with it. Video tutorials are coming too, showing how to create things like web APIs that work with databases.

There's a forum for Gleam users to swap tips and help shape the future of Gleam based on what they need. As more people start using Gleam, this forum will be a great place for finding solutions together.

Expanded Platform Support

With a solid base in place, Gleam is looking to work well with more types of software. It's going to get easier to use Gleam with popular web tools like Phoenix, making it simpler to build services and APIs.

There will also be better support for making mobile apps, letting you use the same core logic for iOS, Android, and web apps. Gleam's efficient setup is perfect for smaller devices, like in IoT or edge computing.

As Gleam becomes more versatile, it'll attract users from different fields while keeping its focus on being reliable and safe. The language will keep improving to match a broader set of needs.

Conclusion

Gleam is like a toolbox for making strong and reliable computer programs. It mixes the best of two worlds: the safety of functional programming (a way of writing code that's clean and predictable) and the power of the Erlang VM, which is known for running big, important apps without a hitch.

Here's why Gleam is pretty cool:

  • Easy to get into: If you've tried other programming languages, picking up Gleam won't be hard. It's straightforward, doesn't make you repeat yourself, and keeps things simple with data that doesn't change unexpectedly.
  • Smart at catching mistakes: By borrowing smart ideas from languages like Elm, OCaml, and Rust, Gleam can spot errors before your code even runs. This means less fixing bugs and more confidence when changing parts of your code.
  • Reliable foundation: Gleam runs on the Erlang VM, which is the same system that keeps apps like WhatsApp running smoothly for millions of people. It's all about handling lots of users and tasks without breaking a sweat.
  • Works in many places: Whether you're building for the web, a mobile app, or a back-end system, Gleam lets you write your code once and use it in many different environments. This is great for making your project work everywhere, from browsers (using JavaScript) to servers on platforms like Fly.io.
  • Focused on making coding easier: Gleam is designed to be friendly for coders, with tools that help you refactor (change your code) without fear, integrate with your coding editor, and easily find libraries for common tasks. This makes working on Gleam projects more enjoyable and less of a headache.

With its version 1.0, Gleam is ready for big projects and is starting to catch the eye of developers who want to build tough and dependable systems, APIs, databases, and more. Its ability to adapt to different platforms also makes it a good choice for web, mobile, and embedded projects that need to be reliable. As more people start using Gleam, it's set to become an even more attractive option for those into functional programming.

What is gleam programming language?

Gleam is a new programming language that's all about making sure your code is correct and can run without issues on the Erlang VM. It's kind of like a mix between Elm and Rust, with a focus on:

  • Catching mistakes early with type safety
  • Keeping things the same (immutable) to avoid surprises
  • Using algebraic data types and pattern matching for flexibility
  • Working on both the web and backend by compiling to Erlang and JavaScript
  • Taking advantage of Erlang's proven track record for keeping systems running smoothly

In short, Gleam is designed to help you build strong, scalable systems more easily.

Is Gleam production ready?

Yes, since Gleam 1.0 was released in 2021, it's ready for real projects. The Erlang VM, which Gleam uses, has been trusted for big systems for many years. But, since Gleam is still pretty new, you might need to make some tools yourself for specific needs. For general web and backend jobs, though, Gleam has what you need to get going.

What is the difference between elixir and gleam?

elixir

Here's how Elixir and Gleam are different:

  • Typing: Gleam checks your code for errors before it runs (static typing), while Elixir checks as it runs (dynamic typing). This means Gleam can catch more issues ahead of time.
  • Syntax: Gleam's setup is more like ML languages, and Elixir looks more like Ruby.
  • Metaprogramming: Elixir lets you change the language while you're using it more than Gleam does. Gleam keeps things simpler.
  • Interop: Both can work with Erlang well, but Gleam has some limits because of how it handles memory.

Overall, Elixir is more about making coding fast and fun, while Gleam focuses on making sure your code is solid and safe. Both use the Erlang VM's strengths for handling lots of tasks at once without crashing.

Related posts

Why not level up your reading with

Stay up-to-date with the latest developer news every time you open a new tab.

Read more