jaredramirez / border-types

A tool to keep you types in syncs across your stack
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Which language to use? #1

Closed jaredramirez closed 6 years ago

jaredramirez commented 6 years ago

The options that are (currently) being discussed are:

I'm kind of excited at the possibility of using Haskell, but is has a pretty major drawback: we'd need to cross-compiling in order to publish to multiple platforms. This doesn't looks super challenging, and the steps are outlined here: (derived from elm-platform)

Reason would be super cool as well! Since it can be compiled to JS, it can be run using Node to avoid the cross-platform issue mentioned above. We will probably need to use Reason-JS interop to have access to the JS ecosystem, since I'm not sure how many thing will be written in native Reason (such as a YAML parser or something).

Not sure how using Elm would work, but I imagine we could somehow bootstrap it with Reason or something to take in cli arguments and apply them to an Elm program, similar to how elm-typescript-interop does with typescript.

Overall all of these languages are great, and I'm psyched on which ever we choose.

jaredramirez commented 6 years ago

I think that this discussion should take into consideration what tools already exist, which we are talking about here: https://github.com/jaredramirez/border-types/issues/3

jaredramirez commented 6 years ago

I'm going to go with Haskell for this project. It seem that cross-compiling will not be to huge of an issue, and there is more tooling that exists in Haskell as opposed to Reason. Since Elm is not made to work from the command line, the solution would be a little more hacky (IMO), so I'm less jazzed about using it for this project.