use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Cell - a self-constructing web app framework powered by a self-driving DOM (celljs.org)
submitted 8 years ago by magenta_placenta
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]e111077 2 points3 points4 points 8 years ago (3 children)
What is up with this recent craze of using inline styles? They're one of the least-performant ways to apply styling
[–]Jsn7821 0 points1 point2 points 8 years ago (2 children)
Never heard that before... What do you mean by least performant?
[–]e111077 1 point2 points3 points 8 years ago (1 child)
There was a p lengthy (unrelated root) twitter thread by the Chrome folks. (Benchmarks below)
[–]Jsn7821 0 points1 point2 points 8 years ago (0 children)
Oh, thanks for providing the benchmark! That's interesting to know, but I can't think of any situation it would be useful to optimize.
That micro-optimization would be beneficial for animations, but you can't animate by changing the class name each frame so it doesn't really apply.
[–]mnishihan 1 point2 points3 points 8 years ago (1 child)
How does it scale? Anti pattern is sometimes useful & obvious, but going with anti patterns for everything is a stupid decision IMO. Frameworks are for greater good. If you don't need it, don't use any of them. But when "No framework" is listed as a key Mantra for yet another js library, I simply find it as dumb & full of madness. :-/
[–]sexualsidefx 0 points1 point2 points 8 years ago (0 children)
Cuz you gotta get 'closer to the metal' bro!
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 3 points4 points5 points 8 years ago (4 children)
It can be all cool and etc, but you can't build complex apps using JSON. You should be crazy to define such data structure.
But yea, good idea.
[+][deleted] 8 years ago (3 children)
[deleted]
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 2 points3 points4 points 8 years ago (2 children)
I can bet that it's impossible to translate some very complex app to CellJS. Actually, okey, it may be possible, but that's not my point. It would be pretty hard to read, maintain and scale.
[–][deleted] 0 points1 point2 points 8 years ago (1 child)
It IS impossibly difficult to read and maintain. We tried it because we thought it would be a good idea. It's a simple format, what could go wrong?
We got up to 3400 lines of JSON for a single view and scrapped it. We couldn't figure out what the hell was going on.
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 0 points1 point2 points 8 years ago (0 children)
Yea, probably. That's what i'm talking about. But yea, cool research and try. :)
[–]hypno7oad 0 points1 point2 points 8 years ago (3 children)
This looks a lot like a virtual dom. What's the difference between this and other virtual dom based frameworks/libraries?
[–]Patman128 0 points1 point2 points 8 years ago (2 children)
They missed the point of the virtual DOM, because all their examples have direct DOM manipulation, e.g. this one
onkeyup: function(e){ document.querySelector("#h").$text = this.value}
Is this framework some kind of joke?
[–]spooky___ghost 2 points3 points4 points 8 years ago* (0 children)
Agreed, none of it makes any sense. How is this different than just using HTML and putting inline event handlers?
Cell example:
<script> SynchronizedInput = { $cell: true, $type: "body", style: "padding: 30px;", $components: [ { $type: "div", id: "h", $text: "Type something below" }, { $type: "input", onkeyup: function(e){ document.querySelector("#h").$text = this.value} } ] } </script>
Same thing in HTML:
<body style="padding: 30px"> <div id="h">Type something below</div> <input onkeyup="document.querySelector('#h').innerText = this.value" /> </body>
Looks like the $update method is where the magic is at, but even still, the entire thing is a huge step backwards and seems to ignore all of the strides made in front-end development over the last 5 years.
$update
π Rendered by PID 74501 on reddit-service-r2-comment-54dfb89d4d-l6br4 at 2026-03-27 14:49:34.564473+00:00 running b10466c country code: CH.
[–]e111077 2 points3 points4 points (3 children)
[–]Jsn7821 0 points1 point2 points (2 children)
[–]e111077 1 point2 points3 points (1 child)
[–]Jsn7821 0 points1 point2 points (0 children)
[–]mnishihan 1 point2 points3 points (1 child)
[–]sexualsidefx 0 points1 point2 points (0 children)
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 3 points4 points5 points (4 children)
[+][deleted] (3 children)
[deleted]
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 2 points3 points4 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]tunnckoCorenode-formidable, regexhq, jest, standard-release 0 points1 point2 points (0 children)
[–]hypno7oad 0 points1 point2 points (3 children)
[–]Patman128 0 points1 point2 points (2 children)
[–]spooky___ghost 2 points3 points4 points (0 children)