Comments (3)
However, in your case, it seems to me that Braid is much closer to OCaml (at least, in terms of target features).
Yes, but if I commit to implement OCaml, I may find things that don't map well (for example, the "O" in OCaml is rarely used). Even if Braid ends up being close in terms of features, keeping it separate allows me to add or remove things that make more sense. For example, as Go has a strong story around interfaces, I might choose to implement Rust-style traits which would map well but don't belong in OCaml. I'd like to retain the ability to experiment.
from braid.
Thanks for this! It was really thoughtful, I appreciate it.
There are definitely strong benefits for writing a Go backend to OCaml. My OCaml is mediocre but so is my Go so there's not a lot of difference there. One downside I could see is that OCaml has issues on Windows and incomplete support, I'm pretty sure, so going that route would mean you end up with targets Go (and thus Braid) could build for, but that the Braid compiler couldn't be run on. That's not optimal.
Ultimately there were two reasons I chose to write Braid in Go:
- It seemed neater to write the compiler in the language it is for — this means it only has the Go compiler (and some Go tooling) as dependencies;
- I wanted to write a language for fun as well as for practicality, and part of the enjoyment is to figure out my own syntax and how best to fit an ml-like language to Go concepts. I do really like OCaml, but I wanted to make something of my own rather than just port an existing language, in much the same way that Elm is a lot like Haskell but also its own thing. I guess that's not entirely practical, but I didn't set out to be entirely practical, that's less fun :)
Hope that makes sense!
from braid.
One downside I could see is that OCaml has issues on Windows and incomplete support, I'm pretty sure
While I know that it isn't as smooth as on Linux, there is an answer on SO that probably works. On the support bit, yes, you may have a bit more trouble finding help, I agree, but usually people on Reddit/OCaml Disqus are happy to help.
It seemed neater to write the compiler in the language it is for — this means it only has the Go compiler (and some Go tooling) as dependencies;
By that logic, the C/C++/Go compilers should be written in assembly 😛
Elm is a lot like Haskell but also its own thing
In Elm's case (at least the way I understand it from the outside), it is that Haskell has a lot of complexity which Evan thinks is not necessary for writing good front-end applications. However, in your case, it seems to me that Braid is much closer to OCaml (at least, in terms of target features).
However, the bit about "fun" does make sense to me. It may not be as exciting to contribute to an already existing project as to create something new by yourself and freely experiment with things.
Thanks for the answer!
from braid.
Related Issues (1)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from braid.