Future

Cheol Jeon
Cheol Jeon

Posted on

πŸš€ Introducing JPlus – A Java Superset with Null Safety and Boilerplate Elimination

JPlus is a modern programming language and compiler that acts as a superset of Java β€”

bringing the benefits of null safety, concise syntax, and powerful declarative features

while remaining fully interoperable with existing Java code and libraries.


✨ Why JPlus?

Java is a powerful and battle-tested language, but developers often face:

  • Verbose boilerplate (getters/setters, constructors, etc.)
  • Dangerous NullPointerExceptions
  • Lack of modern language features like ?: (Elvis), smart casts, or pattern matching

JPlus solves this by introducing modern features on top of Java β€” without breaking compatibility.

JPlus code compiles to standard JVM bytecode, enabling full use of Java libraries and frameworks.


πŸ” Null Safety & Modern Syntax Features

JPlus enforces strict null checks at compile-time and introduces Kotlin-style operators:

Feature Description
Type vs Type? Explicit non-nullable and nullable types
?. Null-safe access operator
?: Elvis operator for default/fallback values
Smart Casts Safe type narrowing after null checks
Type Inference Reduce verbosity, no need to declare obvious types
Pattern Matching Clean switch/if logic with type-safe guards
Async Syntax (planned) Future-ready syntax with async/await support

πŸ”§ NEW: apply Syntax for Replacing Lombok

JPlus introduces the new apply statement β€” a powerful declarative alternative to Lombok annotations.

πŸ” Replace This:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
    private String name;
    private int age;
}
Enter fullscreen mode Exit fullscreen mode

βœ… With This:

apply data, builder, constructors(all, no);  

public class User {     
    private String name;     
    private int age; 
}
Enter fullscreen mode Exit fullscreen mode

πŸ’‘ Even Nested Classes:

apply data, constructor(required, all, no), builder;  
apply {  
    User.Profile: getter, setter, equality, constructor(all);
}  

public class User {  
    private String name;    
    private int age;  

    public class Profile {        
        String nickname;    
    }
}

Enter fullscreen mode Exit fullscreen mode

All boilerplate β€” constructors, getters/setters, toString, equals, builder β€” generated as plain Java.

For full code and output, see:

Go to Example 6


πŸ”­ Coming Soon: IntelliJ Plugin

We are actively developing an IntelliJ IDEA plugin to provide:

  • πŸ” Syntax highlighting and autocomplete for .jplus files

  • ⚠️ Real-time null-check error detection

  • πŸš€ One-click compile-to-Java and build integration

Stay tuned β€” the plugin will make JPlus production-ready for real-world development!


πŸ’ Support Development

JPlus is a one-person open-source project under active development.

If you find value in this work and want to help shape the future of Java development:

πŸ‘‰ Github Sponsors

πŸ‘‰ Support the Project via PayPal

Your contribution supports language tooling, plugin development, and community outreach.

The benefits will ripple across the entire Java community.


πŸ’¬ Get Involved

  • ⭐ Star the project on GitHub

  • πŸ› Report bugs and suggest features

  • 🧠 Contribute code or docs

  • πŸ’¬ Join the community discussions (coming soon)


πŸ”— Learn More


JPlus is here to modernize Java while respecting its legacy.

Let's build a safer, cleaner, and more expressive future β€” together.

Top comments (0)