KEEP
htmx
Our great sponsors
KEEP | htmx | |
---|---|---|
47 | 397 | |
2,914 | 10,499 | |
2.2% | 3.7% | |
5.8 | 9.0 | |
21 days ago | 7 days ago | |
Markdown | JavaScript | |
- | BSD 2-clause "Simplified" License |
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
-
More on OOP: Polymorphism this time
The nitty-gritty is in the KEEP. They show in the end how they considered to add type classes, and then discarded the idea.
-
Making Lenses Practical in Java
Lenses work today. And I think the value class feature will be awesome.
https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
-
Adding Coeffect System to Java with Project Loom
Seems like Kotlin Context Receivers then (https://github.com/Kotlin/KEEP/blob/master/proposals/context-receivers.md).
-
Rust: A Critical Retrospective
Kotlin has value classes. Here's a good overview of how they work in Kotlin: https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
That document is a few years old now and was intended as a design document. But Value classes shipped with Kotlin 1.5. Apparently they are compatible with the project Valhalla value objects that will be added to the JVM at some point. So, this stuff is coming.
I had to look it up because even though I write Kotlin a lot, value classes are not something I have used at all. Looks useful but not that big of a deal and doesn't really solve a problem I have. Data classes and records (in Java) are a bigger deal IMHO.
In practice, the way you deal with immutability in Kotlin is to keep most of your data structures immutable by default unless they need to be mutable. E.g. there's a List and a MutableList interface. Most lists are immutable unless you create a MutableList. Same with val vs. var variables. Val variables can't be reassigned and you kind of use var only by exception when you really have to. The compiler will actually warn you if you do it without good reason. A data class with only vals can't be modified. Java is a bit more sloppy when it comes to mutability semantics. It has records now but all the fields have setters by default. It has var but no val assignments (you can use final to force this but few people do). And so on.
Semantically this is not as strong as what Rust does of course but it's good enough to make e.g. concurrency a lot easier. Mostly, if you avoid having a lot of mutable shared state, that becomes a lot easier.
You could imagine a Kotlin like language with much stronger semantics implementing borrow checking instead of garbage collection. It wouldn't be the same language of course but I don't think it needs to be very different. Using it would not be a massively different.
-
Java record pattern matching in JDK 19
I'd be very interested in a comparison between scala 3 using/given and Kotlin new context receivers https://github.com/Kotlin/KEEP/blob/master/proposals/context...
- Why no one recommends the use of the standard library's Result class but a custom sealed class approach?
-
[Question][Kotlin] Dexter Runtime Permissions development has stopped, whats the alternative?
This will be furthermore simplified with multiple receivers coming very soon
-
Java 20 looks like it may be one of the biggest updates in years
Tfw no pattern matching. :(
-
JSpecify: Express specifications (initially, just nullness properties) in a machine-readable way
I'm aware that kotlin decided against this in kotlin itself, see https://github.com/Kotlin/KEEP/issues/82.
- State of Valhalla
htmx
-
Simple interactive browsergame: Python backend but which frontend tool?
And what about tools like svelte and htmx? I am not sure in which extend I could compare them to Vue etc.
-
Reusing same HTML on multiple pages without using JavaScript or server side languages?
Well, this is still technically JS (it's a small library you link in your page), but it's properties you add to existing html, so yo don't need to write any JS at all (for your requirements). https://htmx.org/
-
The Future (and the Past) of the Web Is Server Side Rendering
Much more prefer the htmx way of SSR parts of the page dynamically. Also, totally server-side agnostic, so we can use what we prefer. Clojure in our case.
This is why I'm really excited about htmx [1]. No need to write isomorphic javascript at all. You can still use server side templates but have interactive web pages.
- Question on JavaFX web applications
- Marko: An HTML-Based Language
-
New hot trend? Locality of behavior
There is a new trend gaining traction lately which is called “Locality of Behaviour principle”. It is a great new name for an old concept - cohesion. It’s growing lately around HTMX and TailwindCSS communities, but it’s an useful concept in general.
-
I'm sticking with jQuery...anyone else like me?
Should check out htmx and alpinejs. Much cleaner if you're not going full SPA. jQuery quickly turns into a spaghetti mess.
-
Is there a better option than plain HTML, CSS and JS for creating my own design system?
htmx and tailwind
-
Producing HTML using string templates has always been the wrong solution
You basically want the functionality of https://htmx.org/ but without the added JS.
This would definitely be very nice to see --
What are some alternatives?
Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.
react-snap - 👻 Zero-configuration framework-agnostic static prerendering for SPAs
django-unicorn - The magical reactive component framework for Django ✨
Turbolinks - Turbolinks makes navigating your web application faster
hotwire-rails - Use Hotwire in your Ruby on Rails app
turbo - The speed of a single-page web application without having to write any JavaScript
inertia-laravel - The Laravel adapter for Inertia.js.
Vue.js - 🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
svelte-query - Performant and powerful remote data synchronization for Svelte
phoenix_live_view - Rich, real-time user experiences with server-rendered HTML
django-crispy-forms - The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.
django-tables2 - django-tables2 - An app for creating HTML tables