Looks awesome. Makes me wish I still used LiveScript because of the \string syntax and other features that would go great with ijk. You refer to h but what is it? I searched around but obviously something called h is hard to find.
Ijk – Transforms arrays into virtual DOM trees
31–40 of 49 posts
Re: Ijk – Transforms arrays into virtual DOM trees
#32Re: Ijk – Transforms arrays into virtual DOM trees
#33Re: Ijk – Transforms arrays into virtual DOM trees
#34Re: Ijk – Transforms arrays into virtual DOM trees
#35Earlier quoted context omitted.
To be fair, you could say the same thing about Markdown. And yet here we are.
What is the link between the two? Markdown does not really look or works "like" HTML, it just happens to compile to it.
Re: Ijk – Transforms arrays into virtual DOM trees
#36nevow.stan did that back in 2004 :) https://github.com/twisted/nevow/blob/master/nevow/stan.py
Practical Common Lisp demonstrates a spiritual predecessor that works on data from 2003[0]. I'm sure there are much older implementations floating around for CL and Scheme but I don't care to look for them. This is a common idiom in lisps.
[0] http://www.gigamonkeys.com/book/practical-an-html-generation...
Re: Ijk – Transforms arrays into virtual DOM trees
#37Reminiscent of Breve. https://github.com/cwells/breve I don't see a huge advantage over hyperscript (hyperapp and mithril both use it), but that is a ridiculously small codebase. The JS hate is kind of funny around here, because when you dig into stuff like this, you realize that JS is very lispy in ways (it's easy to build up trees of HTML dynamically). In the mid aughts on r/programming people would rant and rave a…
This then led to the myriad toolchains/PMs/bundlers/language processors that added a huge amount of grit to what should have been a blindly simple development process. Some shoddy implementations have been allowed to mature far longer than they should have, and we're still trying to recover.
But the base language is fine IMHO.
Re: Ijk – Transforms arrays into virtual DOM trees
#38What makes Hiccup so nice in the Clojure world is that Paredit can be used here which is the tool you're already using to manipulate data structures. For example, with Paredit, you can create an element and then move it prev/next/up/down a tree with muscle memory you're already using for the rest of your code. When I re-entered the Javascript world, I tried arrays-for-html but realized it's unbearable without manipul…
I've never used paredit in emacs, but I suspect that it might be amiable to working on Javascript as well.
More annoying to me would be all of the extra quotes and commas I need compared to Hiccup implementations in Clojure.
Re: Ijk – Transforms arrays into virtual DOM trees
#39Improve it a little bit more by by removing the single quote by turning the html tags into functions that accepts 2 arrays: the attributes and the child elements, by this time you will come across with elm in which expressing the html document tree fits perfectly in the language syntax and semantics.
We already have something similar to this at hyperapp.. it is https://github.com/hyperapp/html . But yes, as mentioned by @masklinn, the drawback is you then have to define every element and then import all those definitions. With ijk you can write dependency free views (no import of h or h1, h2, etc.)
Well, explicit-dependency-free, but there's still an implicit dependency on the tag names. Granted, those are just standard HTML, but something is lost by not checking them at compile time. OTOH, you could write a linter for that...
Re: Ijk – Transforms arrays into virtual DOM trees
#40I like the syntax, but I have to say that I prefer JSX. The real advantage of JSX is that it's very similar to HTML and developers have been reading, mentally modeling and reasoning about HTML -> DOM translation for decades.
At least JS is really just JS, and developers have been reading, mentally modeling and reasoning about JS -> execution translation for decades.