JPlus is fully compatible with Java, offering modern language features like null safety, boilerplate code generation and other modern language features to reduce developer burden and maximize productivity.

Notably, there is currently no ‘superset’ language that keeps Java syntax almost intact while extending the language with features like null checks at the language level. JPlus aims to fill this gap, providing a language that existing Java developers can naturally learn and adopt.

  • Henson@feddit.dk
    link
    fedilink
    arrow-up
    5
    arrow-down
    5
    ·
    1 day ago

    But there is a reason for null, its a really nice thing you can work with… I really don’t understand all the fuss about null safety, working against the language

    • Hoimo@ani.social
      link
      fedilink
      arrow-up
      4
      ·
      17 hours ago

      Nulls are useful, but you can’t work with them in Java. Anything can be null at any time without warning, even when you have absolutely no reason to ever allow a null. Null safety as a language feature gives you the choice to allow nulls when they make sense or guarantee a value when needed. It saves you checking for nulls in the core of your logic when you already ruled them out at the boundary and enforced it at compile time.

      • Henson@feddit.dk
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        5 hours ago

        If you check for them in your boundary, you shouldn’t check for them everywhere, only where you possibly introduce them …

        • pathief@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          5 hours ago

          But you can’t look at a method signature and instantly know who handles the null check. You need to inspect code and calls to know for sure. This will lead to paranoia, sooner or later

    • pathief@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 day ago

      I want to write functions that fail at compile time if called with a null object. You can use annotations to kinda do this, but they do not produce compile errors.

      • Henson@feddit.dk
        link
        fedilink
        arrow-up
        1
        ·
        6 hours ago

        But you should just throw an exemption, and let the caller handle it. There is so many variations where an object is null, you can’t control, or you are deep inside your own code, it should be covered by a test.

        • pathief@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          5 hours ago

          The problem is that when an project is too big and a method is called from multiple contexts it’s very easy to lose track of the context where the null check has been done and where it hasn’t. This leads to a lot of duplicated null checks around the project and the constant paranoia of “can this be null here?”.

          A much better way of doing this is using the Optional when an Object can be “null” and a direct instance where it cannot. This way, at any given context you know for absolute sure if a null check is needed or not. However, even with annotations this does not throw a compile error…