Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Research ReasonML 3 #3

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions pages/reports/reason-ml-3.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import Meta from '../../components/Meta'

export const meta = {
title: 'ReasonML v3 report by evilfactorylabs RNDC',
isPublished: false,
published: 'Sep 30, 2019',
description: 'Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.'
}

faultables marked this conversation as resolved.
Show resolved Hide resolved
export default ({ children }) => <Meta meta={meta}>{children}</Meta>

# ReasonML
### Latar Belakang
#### Sejarah
“Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.”
ReasonML merupakan bahasa pemrograman, sintaks, dan toolchain baru yang didukung oleh bahasa yang telah teruji dalam industri,
(battle-tested language) yakni OCML.

ReasonML bukan bahasa baru, melainkan pengembangan dari bahasa pemrograman OCML.

### Masalah yang dipecahkan
- 1. Mengurangi `Bug` karena jenis nilai (`data type`) yang tidak tepat.
- 2. Mendukung Modul atau Pustaka yang sudah ada pada lingkungan JavaScript.
- 3. Mendukung `Immutability` dan `Purity`.
- 4. Module System, yang berguna untuk `modular developement` dan `code organization`.
- 5. Mendukung `cross platform`.

### Key Concepts
- A rock solid type system.
- An eye for simplicity & pragmatism.
- A focus on performance & size.
- Incremental learning & codebase conversion.
- Great ecosystem & tooling.

### Core Features
- Function
- Native, Byte Code, & Javascript
- Binding & Scopes
- Pattern Matching
- Basic Modules
- Variant Type
- Polymorphic Variant Type
- Lists & Arrays
- Records
- Functors
- External & Internal iteration


### Under the hood
-

### Ekosistem
- JavaScript
- OCaml

### Stats
#### Complexities
#### Adoption
#### Alternatives

### Conclusion

# Referensi
- https://github.com/facebook/reason/releases/tag/3.0.4
- https://en.wikipedia.org/wiki/ML_(programming_language)
- https://en.wikipedia.org/wiki/Caml
- https://en.wikipedia.org/wiki/OCaml
- https://en.wikipedia.org/wiki/Reason_(programming_language)
- http://reasonmlhub.com/exploring-reasonml/ch_about-reasonml.html
- https://egghead.io/lessons/reason-course-overview-get-started-with-reason
- https://reasonml-community.github.io/reason-react-native/
- https://reasonml.github.io/reason-react/
- https://callstack.com/blog/reasonml-for-js-developers/
- https://reasonml.chat/t/should-i-go-with-reason-for-my-next-production-app/947/4
- https://jaredforsyth.com/reactiveconf-reasonml/#/
- https://github.com/jaredly/reason_async_example
- https://github.com/reasonml/reason-react/blob/master/docs/interop.md
- https://reasonml.chat/t/addeventlistener-on-dom-element/1846/2
- https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS#ocaml
- https://github.com/reasonml-community/reason-react-example
- https://github.com/ocaml-community/awesome-ocaml#user-interface
- http://ocamltutorials.blogspot.com/2013/06/alternatives-to-subtyping.html
- https://medium.com/@benanderson_80906/testing-abstract-data-types-with-reasonml-and-rely-2694202e6a17
- https://rndc.evilfactory.id/reports/react-js-16
- https://hn.svelte.dev/item/15572827 (find jordWalke comment)
- https://2ality.com/2017/11/about-reasonml.html