GithubHelp home page GithubHelp logo

joshsharp / braid Goto Github PK

View Code? Open in Web Editor NEW
137.0 137.0 3.0 833 KB

A functional language with Reason-like syntax that compiles to Go.

License: MIT License

Makefile 0.17% Go 99.83%
functional-languages go language ocaml reasonml

braid's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

braid's Issues

Why not write a Go backend for the OCaml compiler?

Disclaimer: I come here in peace, in an effort to understand your thought process, not to proselytize or ask you to change direction.

Looking at your goals, it seems to me that writing a Go backend for ocamlc (e.g. it already has a JS backend using Bucklescript, a bytecode backend, and a native code backend) fulfills all the goals.

  • Pair an OCaml-like language with the benefits of the Go platform which are:
    • speed
    • concurrency
    • static binaries
    • a healthy ecosystem
  • Bring powerful FP concepts to Go
  • Get around Go's lack of generics
  • Interop with Go code
  • Ability to use Go stdlib

I'm also listing some other pros and cons here.

Pros:

You benefit from

  1. ReasonML's front-end which is actively maintained.
  2. OCaml's type-checker which is actively maintained.
  3. Having alternate backends to test your backend for correctness.

Unsure if Pros or Cons:

  1. You'll end up writing the code in OCaml instead of Go.
  2. A lot of the type system is already in place, however it may not be exactly what you're looking for.

Cons:

  1. Different licensing/copyright setup compared to what you currently have.
  2. You need to dive into a large, unfamiliar codebase instead of starting from a clean slate.

Of course, there are lots of more considerations that I haven't listed here.

I'd love to hear your opinion on this idea/why you didn't choose to go this route?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.