-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
83b15c7
commit 5890c97
Showing
12 changed files
with
149 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
+++ | ||
title = "Betting on BEAM" | ||
date = 2024-12-17 | ||
description = """ | ||
Bogdan/Björn's Erlang Abstract Machine has been called the "soul of Erlang and Elixir." In this post | ||
I discuss how and why I will be investing my time into working with BEAM technologies for building | ||
information systems that make sense. | ||
""" | ||
[taxonomies] | ||
tags = ["beam", "elixir", "erlang"] | ||
+++ | ||
|
||
- came across erlang first through computerphile learning about fp | ||
- after falling in love with Strange Loop Conference, I watched and rewatched Joe Armstrong's talks | ||
- Sasa Urić's talk teh soul of erlang and elixir | ||
- safety, recoverability, self-healing, scale, soft-real-time | ||
- elixirs growing ecosystem | ||
- erlangs strong hold in the existing infrastructure | ||
- incredible wealth of literature | ||
|
||
### Languages | ||
|
||
These days the common BEAM language of choice seems to tend toward [Elixir](https://elixir-lang.org/), and there are many good reasons for this - powerful metaprogramming capabilities, friendly syntax, expressive pattern matching, and amazing documentation. Its syntax is descended from that of Ruby: | ||
|
||
This here is another paragraph to test some spacing. | ||
|
||
```erl | ||
def elixir_example() do | ||
"like this," |> print() | ||
end | ||
``` | ||
|
||
The original language for the Erlang Abstract Machine is, of course, [Erlang](https://www.erlang.org/), with its Prolog-inspired syntax: | ||
|
||
```ex | ||
erlang_example() -> | ||
print("like this,"). | ||
``` | ||
|
||
If you enjoy homoiconicity and the uniformity of S-expressions like I do, there's [LFE](https://lfe.io/): | ||
|
||
```lfe | ||
(defun (lfe-example) | ||
(print "like this,")) | ||
``` | ||
|
||
For people who can't give up their C-style braces and don't mind working with a very young language, there's also [Gleam](https://gleam.run/) (which sits somewhere between Rust and SML/OCaml/F# syntactically): | ||
|
||
```gleam | ||
fn gleam_example() { | ||
"like this," |> print() | ||
} | ||
``` | ||
|
||
The value proposition of Gleam is that it uses a static type system with Hindley-Milner style type inference to guarantee certain program invariants at compile-time. This is of course a very nice tool to have in some systems and scenarios. It is not to my liking, however, both in terms of its approach to type safety and syntax. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
+++ | ||
title = "Types, Tests, and Documentation" | ||
date = 2024-12-17 | ||
description = """ | ||
static typing overrated, tests underrated, documentation SUPER underrated, comments overhated. | ||
""" | ||
[taxonomies] | ||
tags = ["plt"] | ||
+++ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,6 @@ <h1 id="content-list-title">About</h1> | |
href="https://github.com/mmibbetson/dn" | ||
target="_blank" | ||
referrerpolicy="noreferrer" | ||
class="decorated-link" | ||
> | ||
<code>dn</code> note-taking tool | ||
</a> | ||
|
@@ -23,9 +22,8 @@ <h1 id="content-list-title">About</h1> | |
href="https://github.com/mmibbetson/litr" | ||
target="_blank" | ||
referrerpolicy="noreferrer" | ||
class="decorated-link" | ||
> | ||
<code>litr</code> literate programming tool </a | ||
<code>litr</code> literate programming tool</a | ||
>. Otherwise, my programming interests lie with creating soft-real-time, | ||
self-healing, scalable, concurrent systems with the BEAM. | ||
</p> | ||
|
@@ -41,7 +39,6 @@ <h1 id="content-list-title">About</h1> | |
href="mailto:[email protected]" | ||
target="_blank" | ||
referrerpolicy="noreferrer" | ||
class="decorated-link" | ||
> | ||
</a> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters