KEEP
jspecify
Our great sponsors
KEEP | jspecify | |
---|---|---|
60 | 11 | |
3,276 | 406 | |
1.1% | 2.7% | |
5.5 | 8.3 | |
6 days ago | 7 days ago | |
Markdown | Java | |
Apache License 2.0 | Apache License 2.0 |
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.
KEEP
-
Project Valhalla: A look inside Java's epic refactor
Nice. So for example, it looks like Kotlin has a nearly identical feature at the language level which will be optimizable when Valhalla ships: https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
> In the future, in a Valhalla-capable JVM, JVM primitive classes will enable efficient representation of Kotlin value classes with an arbitrary number of underlying fields on JVM.
-
Unchecked Java: Say Goodbye to Checked Exceptions Forever
Most other languages agree that checked exceptions are not good by not having them.
As for alternatives, Try/Result and similar monads have decent adoption even in Java, but personally I quite like the Kotlin philosophy [1] to not have generic error containers and either use runtime exceptions or make failures of the return type.
[1] https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/...
-
Meet Kotlin 1.9 "data object"
If you want to read more and don't want to google it: https://github.com/Kotlin/KEEP/blob/data-objects/proposals/data-objects.md
-
Coroutine books or resources
Under the hood: https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md .
- How @Compose annotation works under the hood?
-
KotlinConf ’23 Recap
you can check more here
- Implicit function arguments?
-
If you could remove one feature from Kotlin which one would that be?
You can use explicit API mode, then everything needs explicit visibility
- Is runCatching in use in any of your projects ? My team is abusing it
- Learning Kotlin in depth (as a non-beginner)
jspecify
-
Java, null, and JSpecify [video link]
There's also a fair amount of content to explore starting at jspecify.org.
-
I'm not a Java dev but I'm using it in AoC this year
With some projects like https://github.com/jspecify/jspecify you can say your code is @NullMarked, meaning all nullable fields are explicitly marked with @Nullable. That being ubiquitous is...some point in the future.
-
Design document on nullability and value types (Brian Goetz)
Issue about Void
-
Java might eventually get null-restricted types
Details are being worked out in JSpecify [issue 79](https://github.com/jspecify/jspecify/issues/79). At present it is thought that we can have a 1.0 without it; that could still change. Please feel free to join the conversation.
- How to go about writing a library?
-
Java records make Google's AutoValue mostly obsolete
Coincidentally that's my current project -- sort of. We need to stay with an annotation-based approach for a bit longer but we think there's a path. http://jspecify.org
-
JSpecify: Express specifications (initially, just nullness properties) in a machine-readable way
Well, within a @NullMarked context you already don't have to annotate non-nullable types. You probably want a warning when someone forms a @Nullable type from that class, and I've just filed #228 about that.
What are some alternatives?
KorGE - KorGE Game Engine. Multiplatform Kotlin Game Engine
Checker Framework - Pluggable type-checking for Java
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
jOOQ - jOOQ is the best way to write SQL in Java
htmx - </> htmx - high power tools for HTML
Lombok - Very spicy additions to the Java programming language.
kotlin-power-assert - Kotlin compiler plugin to enable diagrammed function calls in the Kotlin programming language
Error Prone - Catch common Java mistakes as compile-time errors
kotlin-multiplatform-libsodium - A kotlin multiplatform wrapper for libsodium, using directly built libsodium for jvm and native, and libsodium.js for js targets.
PMD - An extensible multilanguage static code analyzer.
koin - Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform
Auto - A collection of source code generators for Java.