Course Overview: Get started with Reason

Nik Graf
InstructorNik Graf
Share this video with your friends

Social Share Links

Send Tweet
Published 6 years ago
Updated 5 years ago

The goal of this course is to explain syntax and semantics of the programming language Reason.

Each lesson is focusing on a specific feature or concept and can be watched independently. Still the whole course is carefully crafted and each lesson builds up on the previous ones.

In this intro I also talk about the three reasons why I care about the language.

I hope the course is helpful to you and I'm looking forward to hear what you build with Reason.

Instructor: [00:00] The goal of this course is to provide a good overview about the syntax, and even more importantly, the semantics of the programming language Reason. Each lesson is focusing on a specific feature, concept, or best practice, and can be watched independently.

[00:14] Still, the whole course is carefully crafted to get someone from zero knowledge about Reason to a state where they're ready to use it. In case you're even undecided if you should explore Reason, let me share my top three reasons why I care about it.

[00:27] The language is statically typed, which provides more safety and clarity, while evolving a code base. Instead of writing all the types all the time, a large portion of it can be inferred by the compiler.

[00:39] To me, this is the best of both worlds. For once, you can move fast, but you don't lose any of the benefits and guarantees that come with static types.

[00:48] My second reason is that let bindings, as well as most of the built-in data structures, are mutable by default. In the last couple years, I started to appreciate immutable data structures more and more, as they helped the teams I was working with to avoid bugs.

[01:03] Nevertheless, if declared explicitly, Reason offers escape hatches for mutability. To me, again, the best of both worlds.

[01:11] My third, and to me, probably the most exciting reason is the usefulness of variants in combination with pattern matching. Variants allow us to express multiple options that are exclusive as a data structure.

[01:28] Pattern matching allows us to do exhaustive checking on these results. With both of them in combination, we can make states that should never happen impossible to exist.

[01:39] Of course, neither of these magically eliminate bugs. Properly used, though, they can be of great assistance when programming. I hope this course is helpful to you, and I'm looking forward to hear what you build with Reason.

egghead
egghead
~ 5 minutes ago

Member comments are a way for members to communicate, interact, and ask questions about a lesson.

The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on egghead.io

Be on-Topic

Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at support@egghead.io.

Avoid meta-discussion

  • This was great!
  • This was horrible!
  • I didn't like this because it didn't match my skill level.
  • +1 It will likely be deleted as spam.

Code Problems?

Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context

Details and Context

Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!

Markdown supported.
Become a member to join the discussionEnroll Today