mlton VS julia

Compare mlton vs julia and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
mlton julia
9 350
918 44,534
1.2% 0.4%
8.3 10.0
25 days ago 1 day ago
Standard ML Julia
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

mlton

Posts with mentions or reviews of mlton. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-25.
  • Flunct: Well-typed, fluent APIs in SML
    4 projects | news.ycombinator.com | 25 Jun 2023
    https://github.com/MLton/mlton/issues/473

    Is there sufficient use of MLTon "native" backend out there to consider it mature? or Do people prefer the LLVM or C backend instead in general?

  • Simple JSON parser in c++, rust, ocaml, standard ml
    3 projects | dev.to | 11 Feb 2023
    Once I got the parser ready in OCaml, I thought I port it to Standard ML, since it belong to the same ML language family. I was also curious on how well mlton could optimise it. The language lacks custom let bindings, so I resorted to use Result.bind manually. This makes code much less readable and more verbose. The standard library also lacks result type, so I had to come up with my own simple implementation. There's also a lack of any hash map in the standard library, so I just used a list of key-value pairs. This isn't correct, but it's the closest I could get without inventing my own hash map. MLton's compile times are slow. It also lacks interactive REPL. Because of that I used alternative Standard ML implementation for interactive usage: PolyML. Debugging MLton binaries is also pretty hard. gdb doesn't work and there's no bundled debugger. I had to resort to debugging facilities built into PolyML. Valgrind doesn't work with mlton binaries, as it doesn't report any memory allocations. Looks like mlton uses mmap for allocation memory. Surprisingly, performance is not the best. This might be due to heavy usage of my custom Result type and bind calls. Exceptions seem to be a more natural choice for error reporting in Standard ML. I tried to make such a change, but this didn't improve the performance much.
  • old languages compilers
    12 projects | /r/ProgrammingLanguages | 26 Dec 2022
    MLton
  • Modules: Overcoming Stockholm and Duning-Kruger
    1 project | /r/ProgrammingLanguages | 4 Jul 2022
    Something I’d highly recommend you do before concluding that SML’s module system is the best is to go through and read the MLton Basis library. MLton uses the module system extremely heavily in its definition of the standard, and I think it’s extremely important to understand what you may be getting yourself into when you add those features, and what you may lose in return.
  • Ante: A low-level functional language
    4 projects | news.ycombinator.com | 17 Jun 2022
    If you’re fine with tracing GC (which depends on the situation, of course), Standard ML is a perfectly boring language (that IIUC predated and inspired Caml) and MLton[1] is a very nice optimizing compiler for it. The language is awkward at times (in particular, the separate sublanguage of modules can be downright unwieldy), and the library has some of the usual blind spots such as nonexistent Unicode support (well, not every language WG is allocated a John Cowan).

    Speaking of, Scheme can also be a delightful unexciting static language; consider for example the C-producing implementation Chicken[2]. The pattern-matching / algebraic-datatype story was still rather unsatisfying last I checked, but there are other situations where it shines—it’s complementary to SML in a way.

    You’re not going to be writing a kernel or a real-time renderer in either (though I’m certain people have taken that as a challenge), they son’t afford the flashy EDSLs of Tcl, Ruby, or Racket, and I can’t say I can prototype in them like I do in Python or sh+tools, but there is a comfortable middle ground where they fit well. (I hear others use Go in what seem like the same places, but to me it feels so thin and devoid of joy that I can’t really compare.)

    The FFI tools in both of the mentioned implementations are excellent, though not quite at the “type in C declarations” level of LuaJIT and D.

    [1] http://mlton.org/

    [2] https://call-cc.org/

  • Write your own programming language in an hour with Chumsky
    4 projects | news.ycombinator.com | 12 Apr 2022
    Unfortunately, I haven't found a ton of "easily-digestible" and, at the same time, comprehensive guides on compiling functional languages. Generally you'll find a mix of blog posts/class notes/papers covering a single step.

    Some resources I like:

    - Andrew Kennedy's 2007 paper Compiling with Continuations, Continued [1]. This one is the most clear IMO

    - Andrew Appel's Compiling with Continuations book (a bit outdated though... assembly code is for VAX)

    - Matt Might's series [2]

    - MLton's source and documentation [3]

    [1] https://www.microsoft.com/en-us/research/wp-content/uploads/...

    [2] https://matt.might.net/articles/closure-conversion/

    [3] http://mlton.org/

  • Why are imperative programs considered faster than their functional counterparts?
    6 projects | /r/ProgrammingLanguages | 30 Dec 2021
    More broadly, they can be fast even without such extensions if they aggressively pursue optimization opportunities afforded by static typing, like MLton for example, but that also impacts compilation performance negatively.
  • Coalton: How to Have Our (Typed) Cake and (Safely) Eat It Too, in Common Lisp
    2 projects | news.ycombinator.com | 10 Sep 2021
  • Are there any efficient key-value map/dictionary implementations in SML?
    3 projects | /r/sml | 27 Dec 2020
    https://github.com/MLton/mlton/blob/master/lib/mlton/basic/hash-set.sig https://github.com/MLton/mlton/blob/master/lib/mlton/basic/hash-table.sig

julia

Posts with mentions or reviews of julia. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-06.
  • Top Paying Programming Technologies 2024
    19 projects | dev.to | 6 Mar 2024
    34. Julia - $74,963
  • Optimize sgemm on RISC-V platform
    6 projects | news.ycombinator.com | 28 Feb 2024
    I don't believe there is any official documentation on this, but https://github.com/JuliaLang/julia/pull/49430 for example added prefetching to the marking phase of a GC which saw speedups on x86, but not on M1.
  • Dart 3.3
    2 projects | news.ycombinator.com | 15 Feb 2024
    3. dispatch on all the arguments

    the first solution is clean, but people really like dispatch.

    the second makes calling functions in the function call syntax weird, because the first argument is privileged semantically but not syntactically.

    the third makes calling functions in the method call syntax weird because the first argument is privileged syntactically but not semantically.

    the closest things to this i can think of off the top of my head in remotely popular programming languages are: nim, lisp dialects, and julia.

    nim navigates the dispatch conundrum by providing different ways to define free functions for different dispatch-ness. the tutorial gives a good overview: https://nim-lang.org/docs/tut2.html

    lisps of course lack UFCS.

    see here for a discussion on the lack of UFCS in julia: https://github.com/JuliaLang/julia/issues/31779

    so to sum up the answer to the original question: because it's only obvious how to make it nice and tidy like you're wanting if you sacrifice function dispatch, which is ubiquitous for good reason!

  • Julia 1.10 Highlights
    1 project | news.ycombinator.com | 27 Dec 2023
    https://github.com/JuliaLang/julia/blob/release-1.10/NEWS.md
  • Best Programming languages for Data Analysis📊
    4 projects | dev.to | 7 Dec 2023
    Visit official site: https://julialang.org/
  • Potential of the Julia programming language for high energy physics computing
    10 projects | news.ycombinator.com | 4 Dec 2023
    No. It runs natively on ARM.

    julia> versioninfo() Julia Version 1.9.3 Commit bed2cd540a1 (2023-08-24 14:43 UTC) Build Info: Official https://julialang.org/ release

  • Rust std:fs slower than Python
    7 projects | news.ycombinator.com | 29 Nov 2023
    https://github.com/JuliaLang/julia/issues/51086#issuecomment...

    So while this "fixes" the issue, it'll introduce a confusing time delay between you freeing the memory and you observing that in `htop`.

    But according to https://jemalloc.net/jemalloc.3.html you can set `opt.muzzy_decay_ms = 0` to remove the delay.

    Still, the musl author has some reservations against making `jemalloc` the default:

    https://www.openwall.com/lists/musl/2018/04/23/2

    > It's got serious bloat problems, problems with undermining ASLR, and is optimized pretty much only for being as fast as possible without caring how much memory you use.

    With the above-mentioned tunables, this should be mitigated to some extent, but the general "theme" (focusing on e.g. performance vs memory usage) will likely still mean "it's a tradeoff" or "it's no tradeoff, but only if you set tunables to what you need".

  • Eleven strategies for making reproducible research the norm
    1 project | news.ycombinator.com | 25 Nov 2023
    I have asked about Julia's reproducibility story on the Guix mailing list in the past, and at the time Simon Tournier didn't think it was promising. I seem to recall Julia itself didnt have a reproducible build. All I know now is that github issue is still not closed.

    https://github.com/JuliaLang/julia/issues/34753

  • Julia as a unifying end-to-end workflow language on the Frontier exascale system
    5 projects | news.ycombinator.com | 19 Nov 2023
    I don't really know what kind of rebuttal you're looking for, but I will link my HN comments from when this was first posted for some thoughts: https://news.ycombinator.com/item?id=31396861#31398796. As I said, in the linked post, I'm quite skeptical of the business of trying to assess relative buginess of programming in different systems, because that has strong dependencies on what you consider core vs packages and what exactly you're trying to do.

    However, bugs in general suck and we've been thinking a fair bit about what additional tooling the language could provide to help people avoid the classes of bugs that Yuri encountered in the post.

    The biggest class of problems in the blog post, is that it's pretty clear that `@inbounds` (and I will extend this to `@assume_effects`, even though that wasn't around when Yuri wrote his post) is problematic, because it's too hard to write. My proposal for what to do instead is at https://github.com/JuliaLang/julia/pull/50641.

    Another common theme is that while Julia is great at composition, it's not clear what's expected to work and what isn't, because the interfaces are informal and not checked. This is a hard design problem, because it's quite close to the reasons why Julia works well. My current thoughts on that are here: https://github.com/Keno/InterfaceSpecs.jl but there's other proposals also.

  • Getaddrinfo() on glibc calls getenv(), oh boy
    10 projects | news.ycombinator.com | 16 Oct 2023
    Doesn't musl have the same issue? https://github.com/JuliaLang/julia/issues/34726#issuecomment...

    I also wonder about OSX's libc. Newer versions seem to have some sort of locking https://github.com/apple-open-source-mirror/Libc/blob/master...

    but older versions (from 10.9) don't have any lockign: https://github.com/apple-oss-distributions/Libc/blob/Libc-99...

What are some alternatives?

When comparing mlton and julia you can also consider the following projects:

LunarML - The Standard ML compiler that produces Lua/JavaScript

jax - Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

typed-racket - Typed Racket

NetworkX - Network Analysis in Python

sml-parseq - parallel sequences library in Standard ML

Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

seL4 - The seL4 microkernel

rust-numpy - PyO3-based Rust bindings of the NumPy C-API

futhark - :boom::computer::boom: A data-parallel functional programming language

Numba - NumPy aware dynamic Python compiler using LLVM

tao - A statically-typed functional language with generics, typeclasses, sum types, pattern-matching, first-class functions, currying, algebraic effects, associated types, good diagnostics, etc.

F# - Please file issues or pull requests here: https://github.com/dotnet/fsharp