uix
klipse
Our great sponsors
uix | klipse | |
---|---|---|
1 | 14 | |
428 | 3,088 | |
- | - | |
0.0 | 0.0 | |
7 months ago | over 1 year ago | |
HTML | HTML | |
Eclipse Public License 2.0 | GNU General Public License v3.0 only |
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.
uix
-
React.dev
> But Reagent supports functional components as well, with hooks and all.
I addressed this already: while reagent is able to emit function components, there is a performance penalty to this.[1]
> I also very much like Hiccup, and so do many of us, because code is data and data is code, and Helix has decided not to support that.
Hiccup is convenient to write, but it is a constant run-time cost and a significant storage cost given that you have to store long series of constructors to cljs.core.PersistentVector in your bundle, have the JS runtime actually construct the vector, then pass it through a Hiccup interpreter to finally produce DOM nodes and throw away the persistent vector, only to repeat this entire process again on re-render.[2]
> Helix has decided not to support that.
That is simply not true. From the Helix documentation[2],
> If you want to use libraries like sablono, hicada or even hx hiccup parser, you can easily add that by creating a custom macro.
These are all Hiccup interpreters you can readily use.
IME there is very little difference between using the $ macro in Helix and writing Hiccup. I do not really miss Hiccup when I use Helix, and you still have data as code ;)
While this is from an unrelated project, there are benchmarks[3] done against Reagent that demonstrate the sheer overhead it has. In practice it is not a big problem if you rarely trigger a re-render, but otherwise it is a non-trivial cost, and if you want to use modern React features (like Suspense), there is a lot of r/as-element mingling going on, converting cases, etc. that simply make Reagent feel more tedious to use than Helix.
Also, the newer UIx2, which largely borrows from Helix, is "3.2x faster than Reagent" according to one of the contributors.[4]
I think it'd be worthwhile to benchmark all of these libraries against each other and record the data in one place. Maybe I'll get around to doing it this weekend :)
---
[1] https://github.com/reagent-project/reagent/blob/master/doc/R...
[2] https://github.com/lilactown/helix/blob/master/docs/faq.md#w...
[3] https://github.com/roman01la/uix#benchmarks
[4] https://github.com/pitch-io/uix/pull/12
klipse
-
Adyen Tech Academy: Taking Onboarding and Upskilling to The Next Level
There's also a whole bunch of knowledge that exists outside the company, and hearing different ideas always helps us to sharpen our perspectives. To that end, we do our best to invite world-class engineers to give talks at Adyen. Sam Newman (the author of Monoliths to Microservices), Steve Freeman (Growing Object-Oriented Systems Guided by Tests), Yehonathan Sharvit (Data-Oriented Programming), and Gergely Orosz (The Pragmatic Engineer) are a few of the names we had this year. We also have invited academics to talk about their research. Michael Hilton (who spoke about mob programming), Jonathan Bell (flaky tests) and Burcu Kulahcioglu Ozkan (testing distributed systems) are among the speakers.
-
Pryrite: Interactively execute shell code blocks in a Markdown file
For doing something similar in a browser, klipse supports over a dozen languages - https://github.com/viebel/klipse
- Try Clojure – An interactive tutorial in the browser
-
Interactive Clojure tutorial
I have built this interactive Clojure tutorial using OrgPad and Klipse. Within an hour or two, one can go through all basics of Clojure. Interactive code snippets allow to play with Clojure, without having to install anything on your computer or having to copy code snippets to web-based REPL. When people discover how amazing the language is, they can invest into getting their IDE and REPL running.
-
New playground for Go
And maybe also traefik/yaegi in combination with viebel/klipse. (Steps for using Klipse & Yaegi here and here.)
-
Data-Oriented Programming is dope
Yehonathan Sharvit explains that in his book Data-oriented programming. The book explores tenets of this paradigm, as a dialog between two people.
-
📖 Data-Oriented Programming book: First draft
You can find a discount code on my blog.
-
Top 10 Trending Projects on GitHub for Web Developers
Checkout this repo here
-
Show HN: Run Python, Ruby, Node.js, C++, Lua in the Browser via x86 to WASM JIT
This is awesome! Thanks for providing more details (was a bit hard to notice at first) [0].
For folks here interested in doing this kind of thing (one example is for building web-available IDEs) the other way to run languages in the browser is to find implementations of the language in JavaScript like Brython for Python and there are a few Schemes that come to mind. I wrote a bit about this here [1].
Some people have taken this even further [2, 3].
[0] https://github.com/fiugd/plugins/tree/main/languages
[1] https://datastation.multiprocess.io/blog/2021-06-16-language...
[2] https://github.com/fiugd/plugins/tree/main/.templates
[3] https://github.com/viebel/klipse
- A new way of blogging about Golang