gwizard VS NullAway

Compare gwizard vs NullAway and see what are their differences.

gwizard

A modular toolkit for building web services with Guice, inspired by DropWizard (by gwizard)

NullAway

A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead (by uber)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
gwizard NullAway
2 21
110 3,531
0.0% 1.2%
6.2 8.9
5 days ago 8 days ago
Java Java
- MIT License
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.

gwizard

Posts with mentions or reviews of gwizard. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-22.
  • The Reason Java Is Still Popular
    2 projects | news.ycombinator.com | 22 Sep 2022
    Here's what I generally use when doing greenfield development in Java:

    https://github.com/gwizard/gwizard

    I wrote it, so feel free to consider me biased. That said, "wrote" is a strong word, it just glues some other projects together with Guice. Not much actual code there. Which may be the answer to your question - if you asked me what's wrong with other frameworks, "too much code" is a decent answer.

  • Ask HN: What is a modern Java environment?
    22 projects | news.ycombinator.com | 29 Mar 2022
    I have been thinking of writing up a series of articles on this. Without going into too much detail:

    * IDEA

    * Deploy on Google App Engine, Digital Ocean App Platform, Heroku, Elastic Beanstalk, etc - get out of the ops business entirely.

    * Guice as the backbone, no Spring/Boot. I wrote a tiny dropwiard-like "framework" to make this easier: https://github.com/gwizard/gwizard but there's a laughable amount of code here, you could build it all from scratch with minimal effort. This is about as lightweight as "frameworks" get because Guice does the heavy lifting.

    * JAX-RS (Resteasy) for the web API. IMO this is the best part of Java web development. HTTP endpoints are simple synchronous Java methods (with a few annotations) and you can test them like simple Java methods.

    * Lombok. Use @Value heavily. Cuts most of the boilerplate out of Java.

    * Junit5 + AssertJ. (Or Google Truth, which is almost identical to AssertJ).

    * Use functional patterns. Try to make all variables and fields final. Use collections streams heavily. Consider vavr.io (I'll admit I haven't it in anger yet, but I would in a new codebase).

    * StreamEx. Adds a ton of useful stream behavior; I don't even use basic streams anymore.

    * Guava. There's just a lot of useful stuff here.

    * For the database, it really depends on what you're building. Most generic business apps, postgres/hibernate/guice-persist/flyway. Yeah, folks complain about hibernate a lot but it's a decent way to map to objects. Use SQL/native queries, don't bother with JPQL, criteria queries, etc.

    * Hattery for making http requests (https://github.com/stickfigure/hattery). This is another one of mine. I make zillions of http requests, functional/immutable ergonomics really matter to me.

    * Github actions for CI.

    * Maven for the build. Yes, it's terrible, except for every other build system is worse. Gradle seems like it should be better but isn't. I'd really love some innovation here. Sigh.

NullAway

Posts with mentions or reviews of NullAway. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • What if null was an Object in Java?
    3 projects | news.ycombinator.com | 28 Apr 2024
    Fortunately, Uber made tooling for languages with broken type systems

    * https://github.com/uber/NullAway

    * https://github.com/uber-go/nilaway

  • My Thoughts on “Bad Code”
    1 project | news.ycombinator.com | 17 Mar 2023
    Some patterns arise from language design

    * You can't express `T` where `null` is forbidden in the type system so you get NullPointerException everywhere and defensive null checks.

    * You express a sum type as a product type because your language does not have sum types .

    * Your language doesn't have first class multiple return values (or tuples) so you return extra parameters via out parameters or thread local variables such as `errno`.

    * Your language doesn't have exceptions (or algebraic effects) and can't do IO so you have monad transformers.

    * Your language doesn't have set-theoretic types so you need hacks like `thiserror` .

    * Your language doesn't have stackful coroutines or can't infer async IO for you so you have `async/await` spam or callback hell or "mono's".

    * Your language doesn't have exhaustive checks (or pattern matching) so you need a fallthrough case check on switch statements .

    * Your language doesn't have algebraic effects, so you need to pass context everywhere.

    I know someone will reply about Java's null annotation checking options, so here is one of them: https://github.com/uber/NullAway .

  • Will Project Valhalla bring Kotlin-like nulls to Java?
    1 project | /r/Kotlin | 9 Feb 2023
    If you must use Java, use Uber's Nullaway which gives null safety via Errorprone.
  • Retrofitting null-safety onto Java at Meta
    4 projects | news.ycombinator.com | 22 Nov 2022
    Does anyone have experience using this at Meta who can compare to https://github.com/uber/NullAway ?
  • How to use Java Records
    3 projects | dev.to | 18 Nov 2022
    A special kind of validation is enforcing that record fields are not null. (Un)fortunately, records do not have any special behavior regarding nullability. You can use tools like NullAway or Error Prone to prevent null in your code in general, or you can add checks to your records:
  • Backend Java 19 vs Kotlin?
    3 projects | /r/java | 31 Oct 2022
  • What does the future hold for Project Amber?
    3 projects | /r/java | 15 Sep 2022
    What do you think of https://github.com/uber/NullAway
  • Plans for Compile-time Null Pointer Safety?
    2 projects | /r/java | 16 Jul 2022
    Take a look at NullAway, a plugin for Error Prone.
  • Ask HN: What is a modern Java environment?
    22 projects | news.ycombinator.com | 29 Mar 2022
    PMD, Spotbugs, Nullaway: Java linting/static analysis (https://pmd.github.io, https://spotbugs.github.io, https://github.com/uber/NullAway)
  • Nullaway fully supports switch expressions without issues now in 0.9.5
    1 project | /r/java | 13 Jan 2022

What are some alternatives?

When comparing gwizard and NullAway you can also consider the following projects:

prime-mvc - Prime MVC is a high performance Model View Controller framework built in Java.

SonarQube - Continuous Inspection

kotlinx-kover

Error Prone - Catch common Java mistakes as compile-time errors

orm16 - Code generation-based approach to ORM for Java 17, focusing on records as persistent data model

infer - A static analyzer for Java, C, C++, and Objective-C

JHipster - JHipster, much like Spring initializr, is a generator to create a boilerplate backend application, but also with an integrated front end implementation in React, Vue or Angular. In their own words, it "Is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures."

Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

SDKMan - The SDKMAN! Command Line Interface

FindBugs - The new home of the FindBugs project

reactor-core - Non-Blocking Reactive Foundation for the JVM

Checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.