FrameworkBenchmarks VS crystal

Compare FrameworkBenchmarks vs crystal and see what are their differences.

FrameworkBenchmarks

Source for the TechEmpower Framework Benchmarks project (by TechEmpower)
Our great sponsors
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • SaaSHub - Software Alternatives and Reviews
FrameworkBenchmarks crystal
171 88
6,132 17,027
0.9% 0.9%
9.5 9.8
7 days ago 4 days ago
Java Crystal
GNU General Public License v3.0 or later Apache License 2.0
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.

FrameworkBenchmarks

Posts with mentions or reviews of FrameworkBenchmarks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-06.
  • Why is Golang(1.17) very slow when it comes to fasta, pidigits, k-nucleotide, binary-trees compared to Java 17
    1 project | reddit.com/r/golang | 7 Dec 2021
    If you're talking backend APIs, a much more representative set of benchmarks would be the Techempower web framework benchmarks. Specifically, the fortunes benchmark is a task comparable to a backend REST API. If you look at the results for that, you'll see that Go-based solutions come in ahead of all but one of the Java solutions, and that one isn't standard using the standard Jakarta EE APIs.
  • Debunking Cloudflare’s recent performance tests
    5 projects | news.ycombinator.com | 6 Dec 2021
    > For such a small program ... the performance difference can be reduced significantly.

    I think you're wrong. Small programs don't necessarily minimize the difference between languages. Small programs often exacerbate them. Often for weird, idiosyncratic reasons. Especially if you're measuring time-to-first-byte, and not letting the VM warm up.

    For example, in this case I wouldn't be surprised if most of the CPU time was going into node + v8's startup, rather than executing the user's javascript at all.

    Look at the plaintext techempower benchmarks[1]. These benchmarks test tiny amounts of code - the programs only have to respond with "hello world" HTTP responses. The best performers are hitting hardware limits. If your theory that small program = small relative cost of using javascript was true, nodejs's performance should be similar to rust / C++. It is not - node is only 13% of the performance of the top performers. Weirdly "justjs" (another v8 based runtime) is ~5x faster than nodejs on this test. The reason probably has nothing to do with javascript at all, and is because justjs has less overhead and talks to the OS in a more efficient way. (It probably uses io_ring.)

    But maybe this is evidence you're technically correct. The performance differences can be reduced. But we have every reason to assume nodejs will have way more overhead than rust at executing the same code. So I agree with other posters. A benchmark showing rust on fastly is faster than javascript on cloudflare tells us nothing about the underlying hosting providers.

    https://www.techempower.com/benchmarks/#section=data-r20&hw=...

  • Async I/O for Dummies (2018)
    2 projects | news.ycombinator.com | 5 Dec 2021
    Backend newb, here. I have a dumb question - can someone give me a summary, or blog post to a summary, of the pros /cons of async versus threads?

    One thing I have been using as a way of understanding hi-perf backends is analyzing why the vert.x framework [1] (and its underlying server, netty) does so well on benchmarks [2], but as newb, I do not think I would get a lot form that exercise without a little hand holding.

    [1] https://vertx.io/

    [2] Ad of today, #28 on tech empower benchmarks - https://www.techempower.com/benchmarks/

  • How is node compared to other backend tech?
    3 projects | reddit.com/r/node | 2 Dec 2021
    I have to disagree, according to this benchmark https://www.techempower.com/benchmarks/ express and fastify are much faster than flask, django and other popular python-based solutions. Also python's scalability is based upon running n python instances which you can also do with nodejs.
  • Fleet, a Lightweight IDE from JetBrains
    8 projects | news.ycombinator.com | 29 Nov 2021
    I wish there was benchmarks for IDEs/editors, just like there are benchmarks for web frameworks (https://www.techempower.com/benchmarks/ https://web-frameworks-benchmark.netlify.app/).

    For instance, given the same simple Java program/project:

    1. Clock time from selecting "Run" in the IDE to first line written to stdout (to measure startup time)

  • Django 4.0 release candidate 1 released
    11 projects | news.ycombinator.com | 22 Nov 2021
    Interesting, those results are the opposite of the techempower frameworks, which find that the async frameworks are always faster: https://www.techempower.com/benchmarks/#section=data-r20&hw=.... Though in general I'm not sure about the value of bringing async to Django. If you want more performance, you can already either throw more machines at it, or isolate some part in a service that can be written with FastAPI/Go/something. Async in general makes the code more complex and harder to write, which seems to be the opposite of what Django is for.
  • .NET 6 vs. .NET 5: up to 40% speedup
    15 projects | news.ycombinator.com | 21 Nov 2021
    It’s not the same, but there is this well-known framework benchmark [0], it always had the .net frameworks close to the top.

    I’m guessing a lot of the speedups come from getting rid of legacy cruft. With .net core/.NET 5/6 they got rid of a lot of things compared to .NET Framework 4.8 and could play with optimizations that simply weren’t doable before. That’s just me guessing, though ;)

    [0]: https://www.techempower.com/benchmarks/

    15 projects | news.ycombinator.com | 21 Nov 2021
    > .NET has been faster than Java on most of the benchmarkgame benchmarks for a while, since .net core 3 or so.

    And which benchmarks games are those? If I go to to the Techempower benchmark and select only C# + Java. Java comes on top in every individual category of all the benchmarks.

    [1] https://www.techempower.com/benchmarks/#section=data-r18&hw=...

    15 projects | news.ycombinator.com | 21 Nov 2021
    That seems a bit misleading of a comparison IMO and only one case (JSON serialisation) when I look at their data. It's also showing a lot of frameworks that are not that mature and not well used in the Java camp vs ASP.NET that is widely used, full featured, has a lot of bells and whistles and a lot of plugins available for most technologies and standards. All of which could have negatively influenced performance, even the hooks to allow them to be injected in can do so even if not enabled. The fact that a full featured web framework makes it to the top over several rounds I can't discount as pretty good.

    https://www.techempower.com/benchmarks/#section=data-r20&hw=...

    My personal experience having worked on both platforms for several years is that Java is easier to get to an acceptable performance, but the .NET runtime when you have to put the effort in has a higher bound of performance. It just has more tools in the CLR to work with than the JVM (e.g. value types, proper generics, spans, and more). With .NET Core and future versions I think .NET is also taking up Java's default perf area as well.

    15 projects | news.ycombinator.com | 21 Nov 2021
    What would be representation of some real work scenarios? I think their test suite covers wide spectrum of operations enough so to be able to draw conclusions from them.

    https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Proj...

crystal

Posts with mentions or reviews of crystal. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-01.
  • Why Ruby on Rails Is Still a Good Choice in 2022?
    1 project | news.ycombinator.com | 6 Dec 2021
    Crystal: Kemal, Amber, Lucky, and more…

    The tools have evolved, even if ROR brought a lot to the table.

    Speed is now a first class feature…

    https://crystal-lang.org/

  • Appropriate, Correct, Robust, Usable, Maintainable, and Efficient (ACRUMEN) with Dave Aronson
    8 projects | dev.to | 1 Dec 2021
    Kirk: So this leads me to a question. As you said, the main perspectives of Ruby with regard to that lack of static type checking is you have your tests catch these errors. And one of the things that I found actually converting Ruby code that I've written to Crystal, which is a statically-typed checked compiled language, is that there are cases where I've had Ruby code that has literally been running in production for more than a decade. When I converted it to Crystal, I discovered that I had some fundamental errors in a few places with regard to certain type checking things that didn't come up in any of the specs that I wrote and maybe came up in runtime errors.
  • Ask HN: Alternatives to Rust Programming Language
    3 projects | news.ycombinator.com | 22 Nov 2021
  • Trying Elixir as a Rubyist
    1 project | reddit.com/r/ruby | 21 Nov 2021
    IMO crystal is a much better high performance option for ruby devs to work with, however it has the pretty major drawback of being unlikely to ever get much adoption. Though I also think it's unlikely elixir will ever graduate out of niche status, it's certainly more widely used than crystal.
  • awesome-low-level-programming-languages
    8 projects | reddit.com/r/ProgrammingLanguages | 20 Nov 2021
  • Where is Ruby Headed in 2021? - Big Nerd Ranch
    1 project | reddit.com/r/programming | 19 Nov 2021
    Have you taken a look at Crystal? It might be interesting to you: https://crystal-lang.org/
  • Where is Ruby Headed in 2021?
    14 projects | news.ycombinator.com | 18 Nov 2021
    > [...] I’ve used a number of languages and dabbled in a few frameworks but nothing I’ve used brings me joy like ruby does.

    Totally agree, 100%. Ruby isn't "perfect", but it's a pleasure to use. As in, I actually want to use it, not just am "ok" or ambivalent about it. I have my nitpicks about Ruby, about Rails and other things just like anyone, but I second your comment that nothing else has been able to match that sweet spot of great productivity that is a direct result of a fantastic developer experience created through a programming language that just "flows" linguistically so much easier than...well, everything else I've personally ever seen (with Python being an arguable tie there).

    My biggest gripes about Ruby and its ecosystem have been the pain in the posterior it is to deploy apps (all those gems, which eventually wind up abandonware and now you've got dependency hell, especially with apps not maintained in 5 years or something) and its relative sluggishness when compared against some other deployable artifacts.

    Personally, I think Crystal (https://crystal-lang.org/) fixes pretty much all of this, as long as you're willing to cede a few things due to the nature of the beast (compiled vs. interpreted).

    And that's not considering the speed improvements Ruby's gained in the last few years (3x3); it's undoubtedly far better now than when I last released an app with Ruby or Rails (circa ~2016, maybe ~2017ish). I'm just so disappointed that everything's "JavaScript this" or "Go(lang) that". Not that I have a problem with Go (I do have many problems with JavaScript, which I strongly dislike, but that's a separate topic), it's just that this industry acts like lemmings in a lot of cases. "New shiny!" attracts the horde, and that critical mass creates a new tyranny of being the "snowflake" technology/stack/developer, which has a lot of risks for both the organization paying for what you build in tech stack $X (rare language, can I replace this hire later, can I find somebody that knows $X, lower risk if we use $Y b/c we can find plentiful/cheap talent in $Y or $Y salaries are lower than $X), and by that token therefore it's a risk to the developer's career to get hard core on anything perceived as "snowflake" or otherwise not "flavor of the $(month || year || interval)".

    Which is just so sad, and I feel like it's a contributing factor in Ruby's decline (in terms of hiring demand for full time positions). It's not at all the technology's fault, and it's not a performance "issue" whatsoever anymore (really wasn't in the first place unless you were nickel and diming literally everything or did stuff just plain stupid).

    Go, Rust and friends all have their own benefits and drawbacks too, and they're fine languages with their own killer features and/or quirks. They can produce pre-compiled code for a variety of platforms from a single machine, resulting in (if desired) a single file binary deployable artifact that can be installed and simply run, no dependencies to install, no OS configuration necessary. Ruby, without lots of hacks potentially questionable hacks and potential future abandonware, doesn't do that at all AFAIK, but Crystal can also produce fat binaries just like Go can (and I assume Rust can too), making it the best of both worlds in my opinion.

    Crystal: compile Ruby-like code to a "fat" binary for single file, zero-config/dependency deployment that runs true multithreaded apps as native code. And most of those tradeoffs you'd have to give up because "compiled" - most of those you can work around pretty easily and I've heard you can even have it embed source code in the binary to be run in interpreted mode at runtime, so you can have your app compiled for the vast majority of use cases, then have it run its own code inside itself interpreted/JIT'd when run, giving you access to many (all?) of the features you'd otherwise think you'd have to sacrifice.

    So yeah, I love Ruby, and I think Crystal is definitely the next evolutionary step for that language and ecosystem. No hate on Ruby there whatsoever, I just see it as a more mature option for a lot of use cases, but definitely not all. I don't know if you can do that metaprogramming magic Ruby is so amazing at any faster in Crystal since you'd have to run the code as interpreted at runtime, not pre-compiled (AFAIK), so it's not an outright replacement. Still, I think it's damn near one, and you can probably "color outside the lines" just a tiny bit as needed when you absolutely MUST have that feature anyway.

    Okay, end stream-of-consciousness. I haven't been able to sleep for 3 days, so rambling is a sort of unavoidable side effect...sorry about that. But yeah, try Crystal if you haven't already, you'll likely be very happily shocked at how amazing it is!

    14 projects | news.ycombinator.com | 18 Nov 2021
  • Crystal programming language reaches 1.0 - SD Times
    1 project | reddit.com/r/programming | 12 Nov 2021
    Note that this article is from late March 2021 and Crystal's latest version is 1.2.2.
  • Crystal 1.2.2 Is Released
    2 projects | news.ycombinator.com | 11 Nov 2021
    I've taken a look and it's interesting. The two downers for me were:

    - needless differences to Ruby: for example, the devs have refused to implement single-line if...then...end simply because they don't like it (https://github.com/crystal-lang/crystal/issues/4117)

    - cryptic error messages, mostly type-related: this might have got better in subsequent releases, I guess.

What are some alternatives?

When comparing FrameworkBenchmarks and crystal you can also consider the following projects:

zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

Elixir - Elixir is a dynamic, functional language designed for building scalable and maintainable applications

LiteNetLib - Lite reliable UDP library for Mono and .NET

fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production

go - The Go programming language

SQLBoiler - Generate a Go ORM tailored to your database schema.

mint-lang - :leaves: A refreshing programming language for the front-end web.

Jooby - The modular web framework for Java and Kotlin

django-ninja - 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs

drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]

nextjs-subscription-payments - Clone, deploy, and fully customize a SaaS subscription application with Next.js.