There are a variety of differences between programming languages that go far deeper than syntax, programming style, and programming patterns, that permeate through the language to effect its very core. This post will go over the primary differences that drive the compilation of the language itself to how it handles these compilation differences at run-time. This will be a very high level overview/descriptions and much will be glossed over at this time.
Waiting the 80 seconds on a new game every time I test is slightly irritating, so now let's get serialization, and thus the ability to save and load built.
Transformers of Resources are the things that can be enabled or disabled and then either consume, generate, or both a set of resources atomically. Time to write them.
Today I'm going to make this actually do something now, thus actions and buttons!
It is now time to design the application itself and this will be done by following a type-driven design, where we design the types first before writing the code that transforms the data between the types.
In this part let's come up with a simple format of how the game should look and act while writing out the start of the view.
I've been meaning to make a more comprehensive bucklescript-tea tutorial / example project for a while, and I had an older one partially done but it is a bit out of date now so I've decide to make one anew instead, and to facilitate this I've decided to make a game. Right now most of the 'reference information' about bucklescript-tea is identical to Elm's documentation, so seeing the real-world use of it would be more generically useful.
This article will demonstrate how to setup Bucklescript to work with a stock Elixir Phoenix project and how to use example code in the project.
Why might you want to use Bucklescript? Let's explore just how awesome OCaml is to use on javascript over alternative languages and why it has staying power.
OCaml/Bucklescript:
print_endline "Hello World!" let add l r = l + r
Javascript:
console.log("Hello World!"); function add(l, r) { return l + r | 0; }
I am setting up a new project that will be using Phoenix and Elm together, so I am taking this opportunity to document the process to make it easier for others to set up as well. Maybe I should turn this into a mix 'new'able template sometime...