dream
roc
dream | roc | |
---|---|---|
9 | 23 | |
1,524 | 3,584 | |
- | 4.0% | |
7.7 | 10.0 | |
17 days ago | 3 days ago | |
OCaml | Rust | |
MIT License | Universal Permissive License v1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dream
-
Ask HN: What Happened to Elm?
> It sounds like you read my statement as "run the exact same code in node or OCaml" which I agree would have been very hard.
Hello! Indeed, I did misunderstand you. I agree that it was possible to share some parts of the code between Reason's JS target with BuckleScript, and native target with the stock OCaml compiler. I think a pretty reasonable number of people did that. Actually, it's still possible to this day even with ReScript e.g. https://github.com/aantron/dream/tree/master/example/w-fulls...
> Between the breaking changes and the general change in development philosophy...switching to the ReScript compiler for my project would have required nearly a complete rewrite.
There were perhaps a couple of minor breaking changes but can you explain why it would have required a near complete rewrite? I wasn't aware of anything major like that. ReScript even supported and as far as I know, to this day continues to support the old Reason syntax.
-
Functional Reactive Programming
> you might want to check out OCaml for general purpose programming
Any tips on backend frameworks to look at? I need to write a small websocket service for a side-project and have always wanted to try OCaml. I came across https://github.com/aantron/dream.
-
so people are making these
The framework I played around with for OCaml was called Dream: https://github.com/aantron/dream. I think it had built-in support for auth, but I didn't use it in what I was doing. I also barely scratched the surface of what it supported. On the whole, it seemed really nice though. The biggest issues I had were figuring out OCaml since I'd literally never used it before and figuring out how to make an HTTP call from within OCaml since the documentation can be iffy. Thankfully, Dream's documentation was actually reasonably good.
- The New OCaml Website
-
Dream – Tidy Web Framework for OCaml and ReasonML
Yes. OCaml + all of the 3 OCaml-to-JS compilers support OCaml syntax.
Dream itself demonstrates:
- Server and client both written in Reason, using ocamlc+Melange https://github.com/aantron/dream/tree/master/example/r-fulls...
That example could also have been written in OCaml syntax, because ocamlc (native) and Melange (JS) both support OCaml. However, Reason is nicer if you want to use React with JSX.
- Server and client both written in OCaml, using ocamlc+Js_of_ocaml https://github.com/aantron/dream/tree/master/example/w-fulls...
The remaining example uses Ocaml on the server and ReScript on the client, using the ReScript compiler. However, you could use OCaml on the client with the ReScript compiler. Just as with Melange, you would lose access to nice JSX syntax https://github.com/aantron/dream/tree/master/example/r-fulls...
It's definitely a lot and not user-friendly to have to decide between all these options, but the community is experimenting greatly right now... so it's good and bad, and that's how it is :/
As for Node.js, using ReScript syntax requires you to use Node.js on the native side, but that is the only coupling. If you write your native side in OCaml or Reason, you can compile it to native code with ocamlc (technically, ocamlopt is the internal command; nobody uses either one directly, but the build system calls them).
roc
- Roc a fast, friendly, functional language
-
Roc – A fast, friendly, functional language
Their FAQ is an eminently reasonable breakdown of their choices:
https://github.com/roc-lang/roc/blob/main/FAQ.md
I don't fully agree with all of the reasoning, but it's a reasonable position to stake.
-
DreamBerd is a perfect programming language
If you forget what parametrisation and functions are, then Roc's modules look like they actually do that.
-
What If? Driven Development
Reminds me of: https://github.com/roc-lang/roc/blob/main/FAQ.md#why-doesnt-...
-
Current Issues with the Qt Project – From the Outside Looking In
> How would a user interface written in a functional language look?
Maybe you're not aware of Elm?
https://elm-lang.org
Elm is really functional, unlike the likes of React that are just partially, kind of functional.
There's an attempt at bringing Elm to the desktop, the Roc language... here's an UI example written in Roc:
https://github.com/roc-lang/roc/blob/main/examples/gui/hello...
-
Why and How We Retired Elm at Culture Amp
What are your thoughts on the direct descendant, Roc? [0] I know it's pre v0.1 so maybe you don't have any, but as a fellow Elm lover it seems pretty compelling on the surface albeit less directly frontend-dev focused.
[0] https://github.com/roc-lang/roc
-
The Spinnaker Programming Language
I might be misunderstanding something, but, for example, look at this "host"/platform: https://github.com/roc-lang/roc/blob/main/examples/cli/tui-platform/host.zig
- Roc's standard library was briefly written in Rust, but was soon rewritten in Zig.
-
When Zig is safer and faster than Rust
You are not alone. The other day I was checking out a new programming language and the author rewrote the unsafe rust part to zig: https://github.com/roc-lang/roc/blob/main/FAQ.md#why-does-ro...
-
Ask HN: What Happened to Elm?
Check out Roc[0][1] by Richard Feldman; it's early-stages (perhaps earlier stages than Elm?) but from everything I've seen it looks a bit like a spiritual successor to Elm, though focused more on native applications (but still seems to have its sights set on webassembly support too)
[0] https://www.roc-lang.org
[1] https://github.com/roc-lang/roc
What are some alternatives?
sihl - A modular functional web framework
lean4 - Lean 4 programming language and theorem prover
rescript-compiler - The compiler for ReScript.
articles - Miscellaneous articles. The readme is the table of contents.
opium - Sinatra like web toolkit for OCaml
purescript-flame - Fast & simple framework for building web applications
lwt - OCaml promises and concurrent I/O
create-react-app - Set up a modern web app by running one command.
ocaml-webmachine - A REST toolkit for OCaml
package.elm-lang.org - website for browsing packages and exploring documentation
httpaf - A high performance, memory efficient, and scalable web server written in OCaml
purescript-cookbook - An unofficial Cookbook for PureScript