1 pointby joas_coder3 hours ago2 comments
  • joas_coder3 hours ago
    Ironwood is an interesting project: a Java-like, object-oriented language that compiles AOT to native executables, without a JVM, JIT, garbage collector, raw pointers, or Rust-style ownership.

    Unlike GraalVM Native Image, which takes existing Java bytecode and packages the required Java runtime components into a native executable, Ironwood is a separate language designed from the start around native execution and explicit compiler-enforced safe memory management.

    It uses LLVM, like Rust and Zig, so the native code produced can be very fast. It has a "defer" keyword for deferred cleanup, like Zig.

    What do you think of the idea?

  • MiroslavPokorny2 hours ago
    What does no garbage collector actually mean ?
    • joas_coderan hour ago
      public class Hello {

          public static void main(String[] args) {
      
              Chatter chatter = new Chatter();
      
              String text = "Hello " + chatter.getWord() + "!";
              System.out.println(text);
              free text; // destroy object and reclaim the memory
      
              free chatter; // destroy object and reclaim the memory
      
              // System.out.println(chatter); // use after free NEVER compiles
          }
      }

      // OR:

      public class Hello {

          public static void main(String[] args) {
      
              Chatter chatter = new Chatter();
              defer free chatter;
      
              String text = "Hello " + chatter.getWord() + "!";
              defer free text;
              System.out.println(text);
          }
      }