JDK VS steam-runtime

Compare JDK vs steam-runtime and see what are their differences.

JDK

JDK main-line development https://openjdk.org/projects/jdk (by openjdk)

steam-runtime

A runtime environment for Steam applications (by ValveSoftware)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
JDK steam-runtime
191 86
18,393 1,153
2.1% 1.4%
10.0 6.6
about 4 hours ago 7 months ago
Java Shell
GNU General Public License v3.0 only GNU General Public License v3.0 or later
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.

JDK

Posts with mentions or reviews of JDK. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-19.
  • JEP draft: Exception handling in switch
    6 projects | news.ycombinator.com | 19 Apr 2024
  • Java 23: The New Features Are Officially Announced
    5 projects | news.ycombinator.com | 17 Apr 2024
    Completely gutted from the OpenJDK, last I checked. See here for the culprit PR: https://github.com/openjdk/jdk/pull/18688
  • macOS 14.4 might break Java on your machine
    4 projects | news.ycombinator.com | 18 Mar 2024
    > Yes, they're changing one aspect of signal handler use to work around this problem. They're not stopping the use of signal handlers in general. Hotspot continues to use signals for efficiency in general. See https://github.com/openjdk/jdk/blob/9059727df135dc90311bd476...

    This whole thread is about SIGSEGV, and specifically their SIGSEGV handling. However, catching normal signals is not about efficiency.

    Some of their exception handling is still odd: There is no reason for a program that receives SIGILL to ever attempt continuing. But others is fine, like catching SIGFPE to just forward an exception to the calling code.

    (Sure, you could construct an argument to say that this is for efficiency if you considered the alternative to be implementing floating point in software so that all exceptions exist in user-space, but hardware floating point is the norm and such alternative would be wholly unreasonable.)

    > The wonderful thing about choosing not to care about facts is having whatever opinions you want.

    I appreciate the irony of you making such statement, proudly thinking that your opinion equals fact, and therefore any other opinion is not.

    This discussion is nothing but subjective opinion vs. subjective opinion. Facts are (hopefully, as I can only speak for myself) inputs to both our opinions, but no opinion about "good" or "bad", "nasty" or not can ever be objective. Objective code quality does not exist.

  • The Return of the Frame Pointers
    6 projects | news.ycombinator.com | 17 Mar 2024
    I remember talking to Brendan about the PreserveFramePointer patch during my first months at Netflix in 2015. As of JDK 21, unfortunately it is no longer a general purpose solution for the JVM, because it prevents a fast path being taken for stack thawing for virtual threads: https://github.com/openjdk/jdk/blob/d32ce65781c1d7815a69ceac...
  • JDK-8180450: secondary_super_cache does not scale well
    1 project | news.ycombinator.com | 14 Mar 2024
  • The One Billion Row Challenge
    10 projects | news.ycombinator.com | 3 Jan 2024
  • AVX2 intrinsics for Arrays.sort methods (int, float arrays)
    1 project | news.ycombinator.com | 16 Dec 2023
  • A gentle introduction to two's complement
    1 project | news.ycombinator.com | 23 Nov 2023
  • Java JEP 461: Stream Gatherers
    3 projects | news.ycombinator.com | 3 Nov 2023
    Map doesn't implement the Collection interface.

    https://github.com/openjdk/jdk/blob/master/src/java.base/sha...

  • C++23: Removing garbage collection support
    3 projects | news.ycombinator.com | 1 Nov 2023
    C++ lets you write anything you can imagine, and the language features and standard library often facilitate that. The committee espouses the view that they want to provide many "zero [runtime] cost," abstractions. Anybody can contribute to the language, although the committee process is often slow and can be political, each release the surface area and capability of the language gets larger.

    I believe Hazard Pointers are slated for C++26, and these will add a form "free later, but not quite garbage collection" to the language. There was a talk this year about using hazard pointers to implement a much faster std::shared_ptr.

    It's a language with incredible depth because so many different paradigms have been implemented in it, but also has many pitfalls for new and old users because there are many different ways of solving the same problem.

    I feel that in C++, more than any other language, you need to know the actual implementation under the hood to use it effectively. This means knowing not just what the language specifies, but can occaissionally require knowing what GCC or Clang generate on your particular hardware.

    Many garbage collected languages are written in or have parts of their implementations in C++. See JS (https://github.com/v8/v8)and Java GC (https://github.com/openjdk/jdk/tree/36de19d4622e38b6c00644b0...)

    I am not an expert on Java (or C++), so if someone knows better or can add more please correct me.

steam-runtime

Posts with mentions or reviews of steam-runtime. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-12.
  • One Game, by One Man, on Six Platforms: The Good, the Bad and the Ugly
    5 projects | news.ycombinator.com | 12 Oct 2023
    > It turns out that unless the game is explicitly marked (by Valve reviewers), Steam Deck will use the Windows build + Proton even if a Linux version is available.

    I found this which sounds like it's not the default, but is in fact a result of compatibility testing:

    > If your game has gone through Steam Deck compatibility testing and the testers reported that the native Linux version didn't work (because of #579), then it might have been flagged to run the Windows binaries via Proton by default, instead of the native Linux version.

    per https://github.com/ValveSoftware/steam-runtime/issues/585

  • Chromebook Plus: more performance and AI capabilities
    3 projects | news.ycombinator.com | 2 Oct 2023
    > Where is it written that steam-run will magically execute most binaries without patching them?

    Somewhere in here: https://github.com/ValveSoftware/steam-runtime

    :p

    But I do get what you're saying. Once Flakes are default, I hope people start a proper push to clear up documentation and streamline the development process. The end-result is amazing, and the perfect OS/packaging system for my needs. The means of getting there... need a lot of work. I'm along for the ride either way.

  • i386 in Ubuntu Won't Die
    2 projects | news.ycombinator.com | 27 Aug 2023
    I think they have something a bit like a container built into Steam: https://github.com/ValveSoftware/steam-runtime
  • Gaming on Linux easier on Debian based distros vs Arch based?
    1 project | /r/linux_gaming | 9 Jul 2023
  • How do you build games for Steam Linux Runtime?
    3 projects | /r/godot | 14 Jun 2023
    this is for steamworks API, my understanding is there's a separate SDK for consuming Linux dependencies like glibc. Like Soldier runtime, Sniper runtime, and so on. Am I wrong in thinking these are two separate SDKs? here's the link to the other SDK I'm talking about: https://github.com/ValveSoftware/steam-runtime
  • After 4 years of development, 100% on Linux, I've released my 2D sandbox RPG, Vagabond, in Early Access !
    1 project | /r/linux_gaming | 6 May 2023
    I'm not sure we can distribute a flatpak or an appimage through Steam. They have their own controlled environment called Steam Runtime (https://github.com/ValveSoftware/steam-runtime) in which I should compile to be sure it runs everywhere (very similar to what I am doing). Last time, I look at this, it wasn't very clear and they supported only old versions of GCC. But it seems the documentation improved and now that I succeeded in building a modern version of GCC in my own container, maybe I could do that in theirs.
  • How to install old libraries on OTHER distro's than Debian?
    1 project | /r/linux_gaming | 30 Apr 2023
    I believe it's usable outside of Steam: https://github.com/ValveSoftware/steam-runtime though the instructions are not particularly clear. There's also a link to the APT repo they use as a reference: https://repo.steampowered.com/steamrt/
  • Steam Desktop Client Update, Now with working hardware acceleration on linux!
    3 projects | /r/linux | 28 Apr 2023
  • Recommended method to install Steam on Debian?
    1 project | /r/debian | 9 Apr 2023
    Looking at the Flatpak version, if you want to use Proton versions 5.13 or newer with Steam in Flatpak, you need to install Flatpak from backports https://github.com/ValveSoftware/steam-runtime/issues/294 . Using Flatpak saves having to install i386 if that matters to you.
  • Wine 8.1
    2 projects | news.ycombinator.com | 2 Feb 2023
    > Game developers would be fine to target a single distro like Ubuntu 22.04.

    Valve has its own container-only Linux distribution, called "Soldier Runtime" (https://github.com/ValveSoftware/steam-runtime); especially for games distributed on Steam, it probably makes more sense to target that distribution instead of Ubuntu.

What are some alternatives?

When comparing JDK and steam-runtime you can also consider the following projects:

Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀

flatpak - Linux application sandboxing and distribution framework

aircraft - The A32NX & A380X Project are community driven open source projects to create free Airbus aircraft in Microsoft Flight Simulator that are as close to reality as possible.

dxvk-native - D3D9/11 but it runs natively on Linux!

OkHttp - Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

Proton - Compatibility tool for Steam Play based on Wine and additional components

kitten - A statically typed concatenative systems programming language.

flathub - Issue tracker and new submissions

intellij-community - IntelliJ IDEA Community Edition & IntelliJ Platform

SDL - Simple Directmedia Layer

imagepipe - Image processing pipeline

steam-for-linux - Issue tracking for the Steam for Linux beta client