Coeffect
KEEP
Coeffect | KEEP | |
---|---|---|
7 | 61 | |
14 | 3,289 | |
- | 0.6% | |
0.0 | 5.4 | |
almost 2 years ago | 5 days ago | |
Java | Markdown | |
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.
Coeffect
-
How to create annotatino to restrict use of functions, similarly to `@Compose`
I created this exact plugin for Java (currently it is not ready for production because it uses preview features for Java's concurrency): https://github.com/Holo314/Coeffect
-
“Don’t listen to language designers”
I implemented a Coeffect system into Java, and encounter a problem with the 4th type system of Java (yes, there are 4 separate type systems in Java), the annotations type system. For the exact problem see this section. There are walk arounds, but they boil down to implement generics on the annotation level, which is a huge amount of work and I didn't have the time to implement it yet (and it doesn't help that ExtentValues weren't on the main branch when I made it, and they are still incubator now, with a different name)
-
Indentation limbo
I am not really active on public domain (all of my work is on private domain), but See this for example.
-
Why is `suspend` a language keyword, but @Composable and @Serializable are annotations
I am all in favour to more third side libraries adding functionalities, like Lombok, Manifold and error prone. As well as smaller projects like this shameless plug and what appears in this list
-
Better Java logging, inspired by Clojure and Rust
For Coeffects there is much less available material and most of it is much more mathematical heavy, but you can try to read about it here. I'll also have a shameless plug of my Java plugin that adds implicit parameter Coeffect into Java's type system
-
Adding Coeffect System to Java with Project Loom
Using the fact that ExtentLocals have a structured lifetime, I created a Coeffect Type System using Java Compiler Plugin. I would love some feedback
KEEP
-
JEP draft: Exception handling in switch
`Either foo()` and `Foo foo() throws MyError` and are pretty much isomorphic.
https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/...
-
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
What are some alternatives?
PipelinR - PipelinR is a lightweight command processing pipeline ❍ ⇢ ❍ ⇢ ❍ for your Java awesome app.
KorGE - KorGE Game Engine. Multiplatform Kotlin Game Engine
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
kotlin-multiplatform-libsodium - A kotlin multiplatform wrapper for libsodium, using directly built libsodium for jvm and native, and libsodium.js for js targets.
htmx - </> htmx - high power tools for HTML
kotlin-power-assert - Kotlin compiler plugin to enable diagrammed function calls in the Kotlin programming language
swift-evolution - This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.
kotlin-result - A multiplatform Result monad for modelling success or failure operations.
koin - Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform
kotlindl - High-level Deep Learning Framework written in Kotlin and inspired by Keras
jspecify - An artifact of fully-specified annotations to power static-analysis checks, beginning with nullness analysis.
kotlinx.coroutines - Library support for Kotlin coroutines