this post was submitted on 06 Nov 2025
17 points (74.3% liked)

Programming

23417 readers
229 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] Henson@feddit.dk -1 points 2 days ago (3 children)

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 6 points 1 day ago (1 children)

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 0 points 1 day ago (1 children)

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

[–] pathief@lemmy.world 2 points 1 day ago* (last edited 1 day 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

[–] Matty_r@programming.dev 10 points 2 days ago

Null is fine if you remember to account for it everywhere.

[–] pathief@lemmy.world 5 points 2 days ago (2 children)

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 0 points 1 day ago (1 children)

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 2 points 1 day ago* (last edited 1 day 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...

[–] justicecoder@programming.dev 1 points 1 day ago

This is exactly the core problem that JPlus aims to solve.