[{"data":1,"prerenderedAt":741},["ShallowReactive",2],{"project-15105726":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":46,"post_text":47,"what":48,"said":77,"maker_in_thread":193,"shape":202,"grid":207,"attempts":702,"same_week":703,"maker_shows":477,"maker_hidden":733,"reader_version":734,"card":735},"15105726","Moon","fast 7k Vue alternative","title","Show HN: Moon – fast 7k Vue alternative","https:\u002F\u002Fgithub.com\u002Fkbrsh\u002Fmoon","github.com","kbr",1503759615,2017,268,192,87,2242,4,"legend","languages","javascript framework","library",[21,24,25,26],"virtual dom","vue alternative","frontend performance","mixed",-0.104,{"positive":30,"neutral":31,"mixed":32,"critical":33},12,26,1,18,57,{"idea":36,"design":38,"performance":40,"execution":43,"docs":44},{"positive":18,"critical":37},6,{"positive":32,"critical":39},0,{"positive":41,"critical":42},3,5,{"positive":39,"critical":32},{"positive":45,"critical":32},2,[39,39,39,39,39,39,39,39,32,39,41,41,32,32,41,45,41,41,41,39,42,42,32,45,32,42,32,39,32,41,41,39,41,41,39,41,32,42,41,39],null,{"problem":49,"audience":47,"pricing":47,"motivation":59,"time_to_build":47,"stack":66,"openness":74,"stage":75,"team_size":76},{"value":50,"source":51,"evidence":52},"Vue apps can be slow and large; Moon aims to be smaller and faster with a similar API","maker",[53,56],{"id":54,"by":11,"text":55},"15106750","No problem! I wanted to build a new framework mainly because my Vue app was becoming slow and I wanted something small. Moon is 7kb minified and gzipped, that makes it really…",{"id":57,"by":11,"text":58},"15106971","It's 7kb minified and gzipped. Vue is almost 30kb. If you use a runtime version of Moon, it becomes 3kb. This makes it faster to load on mobile devices. Along with that, it also…",{"value":60,"source":51,"evidence":61},"Vue app was getting slow and they wanted something small; also a learning project to understand React and Vue internals",[62,63],{"id":54,"by":11,"text":55},{"id":64,"by":11,"text":65},"15108116","Working on Vue would take similar effort, deleting tons of the code and rewriting it. Part of it is that this is project started as a way for me to learn what goes on under the…",[67],{"value":68,"source":69,"evidence":70},"JavaScript","inferred",[71],{"id":72,"by":11,"text":73},"15106223","The compiler treats everything as static by default. When the compiler detects something dynamic (such as a {{mustache}} template), it will mark the current node as dynamic, and…","open_source","beta","unknown",{"praise":78,"objections":101,"requests":129,"questions":146,"alternatives":161},[79,90],{"value":80,"source":81,"evidence":82},"Performance claims look promising","commenter",[83,87],{"id":84,"by":85,"text":86},"15106663","jcoffland","The performance improvements are impressive if they translate to real-world apps, however speed is only one of the reasons I use Vue.js. The other big reasons are stability and…",{"id":88,"by":11,"text":89},"15106341","Moon is a part of js-framework-benchmark[1] (in the non-keyed results), and it performs faster than Vue there. The article I wrote a while back also has some benchmarks[2].…",{"value":91,"source":81,"evidence":92},"Simple API similar to Vue",[93,97],{"id":94,"by":95,"text":96},"15108887","maxscam","I dont particularly care whether or not its faster than vue or react. If I'm going to build a heavy use production app I would use one of those just because it has so much of a…",{"id":98,"by":99,"text":100},"15106364","lucisferre","The API looks very similar to Vue. Are there any places where you specifically chose to be different, and can you explain some of your reasons?",[102,113,118],{"value":103,"source":81,"evidence":104},"Unproven compared to established frameworks like Vue and React",[105,109],{"id":106,"by":107,"text":108},"15106957","nkkollaw","Looks good, but a slight improvement in speed is not enough IMHO to switch from a proven, popular framework (like React or Vue). I think it takes a radical take on the problem to…",{"id":110,"by":111,"text":112},"15106614","ausjke","the issue is that, for product development, it is really about the whole package, the ecosystem that is, which includes third-party modules\u002Fadd-ons, documents, longevity…",{"value":114,"source":81,"evidence":115},"Small size and speed alone not enough to switch",[116,117],{"id":106,"by":107,"text":108},{"id":110,"by":111,"text":112},{"value":119,"source":81,"evidence":120},"Yet another JavaScript framework",[121,125],{"id":122,"by":123,"text":124},"15106370","sAbakumoff","So far, the Infinite monkey theorem is just giving us an infinite number of javascript frameworks, and no Shakespeare",{"id":126,"by":127,"text":128},"15108240","kingwill101","Oh look a new JavaScript framework",[130,139],{"value":131,"source":51,"evidence":132},"Keyed updates in the virtual DOM",[133,136],{"id":134,"by":11,"text":135},"15109046","Haha didn't see this. Moon hasn't hit v1 yet, and a keyed virtual DOM is definitely on the roadmap.",{"id":137,"by":11,"text":138},"15110972","Haha, like I said earlier, keyed updates will definitely be implemented in v1.",{"value":140,"source":81,"evidence":141},"Vue-style this.var access and refs",[142],{"id":143,"by":144,"text":145},"15106665","samuelantonioli","I'm a big fan of Vue and I think Moon looks very promising. I have some questions w.r.t Vue API compatibility: - In Vue, you can call a method or access a variable directly using…",[147,154],{"value":148,"source":81,"evidence":149},"How the compiler detects static nodes and how it avoids GC pressure",[150],{"id":151,"by":152,"text":153},"15106112","pspeter3","How does Moon automatically detect static virtual nodes? What makes Moon faster than the alternatives? Finally, how does Moon avoid GC pressure with large trees?",{"value":155,"source":81,"evidence":156},"How much faster than Vue and how it was measured",[157],{"id":158,"by":159,"text":160},"15106328","sscarduzio","You say it's faster than Vue, but how much, how did you measure?",[162,167,175,179,186],{"value":163,"source":81,"evidence":164},"Vue",[165,166],{"id":143,"by":144,"text":145},{"id":98,"by":99,"text":100},{"value":168,"source":81,"evidence":169},"React",[170,171],{"id":106,"by":107,"text":108},{"id":172,"by":173,"text":174},"15109267","jszymborski","Cool... looks like Mithril:React;Moon:Vue, as they're only 1kb different. Wonder if Moon also benefits from low-latency like Mithril does.",{"value":176,"source":81,"evidence":177},"Mithril",[178],{"id":172,"by":173,"text":174},{"value":180,"source":81,"evidence":181},"Marko",[182],{"id":183,"by":184,"text":185},"15106359","fny","If you want a blazing fast JavaScript framework that's actually supported by a big company, look to Marko: http:\u002F\u002Fmarkojs.com\u002F The syntax is a bit strange, but once you get used…",{"value":187,"source":81,"evidence":188},"Ractive",[189],{"id":190,"by":191,"text":192},"15106334","gedy","Looks like nice work, also reminds me of Ractive (https:\u002F\u002Fractive.js.org)",{"comments":194,"answered":195,"key":196},24,13,[197,200,201],{"id":198,"text":199},"15106689","Awesome, I'll be glad to answer these! 1. I'm not planning for this, as it has a runtime cost, but it can easily be done with a plugin[1]. 2. I'm not planning to implement…",{"id":54,"text":55},{"id":57,"text":58},{"commenters":203,"max_depth":204,"maker_replies":194,"first_comment_mins":205,"lifespan_hours":206},99,10,85,255,[208,212,215,218,221,224,226,228,231,235,237,240,242,245,248,250,253,256,259,261,264,266,269,272,275,278,281,284,286,289,292,295,297,299,302,304,306,309,312,314,317,320,323,327,330,333,335,338,341,344,347,349,351,354,355,358,362,363,364,368,372,375,377,379,382,385,388,390,394,397,400,404,406,408,411,414,417,421,424,425,427,428,431,434,436,438,439,442,444,447,449,451,455,457,459,461,463,466,469,471,474,476,479,483,486,490,491,493,496,498,500,504,506,509,510,514,515,516,518,520,521,524,526,528,531,535,538,540,543,545,548,551,552,555,558,560,562,564,566,568,570,572,574,577,580,582,584,587,590,592,595,597,599,601,603,605,607,611,613,617,619,621,626,628,632,636,638,640,642,644,646,649,652,656,657,661,664,668,670,672,674,676,678,681,684,686,688,691,693,695,698,700],[209,39,39,210,211,39],"15107179","other\u002Fneutral\u002Fnone","iansowinski",[213,39,39,210,214,39],"15107351","hashbig",[216,39,39,210,217,39],"15107460","baybal2",[219,39,39,210,220,39],"15107497","meandmycode",[222,39,39,210,223,39],"15107538","eterm",[225,39,39,210,217,39],"15107692",[227,39,39,210,217,39],"15107675",[229,39,39,210,230,39],"15107718","brlewis",[232,39,39,233,234,39],"15108544","commenter\u002Fneutral\u002Fnone","eropple",[236,39,39,210,211,39],"15107695",[238,39,39,210,239,39],"15108851","shados",[241,39,39,233,211,39],"15109876",[243,39,39,210,244,39],"15107710","bartread",[246,39,39,210,247,39],"15107826","greyskull",[249,39,39,210,244,39],"15107835",[251,39,39,210,252,39],"15107852","dasil003",[254,39,39,210,255,39],"15108089","Moru",[257,39,39,210,258,39],"15108207","deckiedan",[260,39,39,210,244,39],"15113247",[262,39,39,210,263,39],"15108129","yawaramin",[265,39,39,210,234,39],"15108542",[267,39,39,210,268,39],"15108571","ng12",[270,39,39,210,271,39],"15110687","mmargerum",[273,39,39,210,274,39],"15109516","brylie",[276,39,39,233,277,39],"15110276","dmitriid",[279,39,39,210,280,39],"15107517","tw1010",[282,39,39,210,283,39],"15107573","justinclift",[285,39,39,210,217,39],"15107714",[287,39,39,210,288,39],"15107992","photojosh",[290,39,39,210,291,39],"15108056","carc1n0gen",[293,39,39,210,294,39],"15108208","adjkant",[296,39,39,210,288,39],"15108663",[298,39,39,210,294,39],"15110728",[300,39,39,210,301,39],"15124541","52-6F-62",[303,39,39,210,288,39],"15145440",[305,39,39,210,288,39],"15145413",[307,39,39,210,308,39],"15157780","CuriousSkeptic",[310,39,39,210,311,39],"15108879","jhall1468",[313,39,39,210,288,39],"15145461",[315,39,39,210,316,39],"15108200","JoshMnem",[318,39,39,210,319,39],"15108947","dankohn1",[321,39,39,210,322,39],"15110257","mercer",[324,39,32,325,326,39],"15107563","project\u002Fcritical\u002Fidea","enraged_camel",[328,39,39,210,329,39],"15107918","jbergstroem",[331,39,39,210,332,39],"15108321","franciscop",[334,39,39,210,234,39],"15108528",[336,39,39,210,337,39],"15109378","palerdot",[339,39,39,210,340,39],"15109549","curioussavage",[342,39,39,210,343,39],"15108717","always_good",[345,39,39,210,346,39],"15114325","vsl",[143,32,41,348,144,39],"project\u002Fneutral\u002Fdesign",[198,32,39,350,11,32],"maker\u002Fneutral\u002Fdesign",[352,32,41,353,144,39],"15106732","maker\u002Fneutral\u002Fidea",[54,32,39,353,11,32],[356,32,42,357,144,39],"15107007","project\u002Fpositive\u002Fidea",[359,45,41,360,361,39],"15107875","project\u002Fneutral\u002Fperformance","sametmax",[106,41,32,325,107,39],[57,41,39,360,11,32],[365,41,32,366,367,39],"15107030","project\u002Fcritical\u002Fperformance","coldtea",[369,41,39,370,371,39],"15107036","commenter\u002Fneutral\u002Fperformance","leeoniya",[373,41,39,370,374,39],"15107368","albedoa",[376,41,39,370,371,39],"15107383",[378,41,39,370,367,39],"15107435",[380,41,39,370,381,39],"15108519","localvoid",[383,41,39,384,11,32],"15109457","maker\u002Fneutral\u002Fperformance",[386,41,32,387,381,39],"15109530","project\u002Fcritical\u002Fexecution",[137,41,39,389,11,32],"maker\u002Fneutral\u002Fexecution",[391,41,41,392,393,39],"15107132","project\u002Fneutral\u002Fidea","continuations",[395,41,39,233,396,39],"15107235","xigency",[398,41,39,233,399,39],"15107322","wolco",[401,41,41,402,403,39],"15107247","project\u002Fneutral\u002Fnone","valuearb",[405,41,39,402,11,32],"15107432",[407,41,32,325,107,39],"15107899",[409,41,42,357,410,39],"15116968","SamBam",[412,41,32,366,413,39],"15157368","korzun",[415,41,39,210,416,39],"15107912","myhf",[418,18,41,419,420,39],"15106896","project\u002Fneutral\u002Fdocs","sockopen",[422,18,39,423,11,32],"15106913","maker\u002Fneutral\u002Fdocs",[98,42,41,348,99,39],[426,42,39,348,11,32],"15106813",[151,37,41,360,152,39],[429,37,41,360,430,39],"15106149","nickthemagicman",[432,37,41,433,152,39],"15106369","project\u002Fneutral\u002Fexecution",[435,37,39,433,11,32],"15106378",[437,37,39,210,430,39],"15181572",[72,37,39,360,11,32],[440,37,41,360,441,39],"15106365","oever",[443,37,39,233,152,39],"15106383",[445,37,39,446,11,32],"15106444","commenter\u002Fpositive\u002Fperformance",[448,37,41,360,441,39],"15106568",[450,37,41,419,152,39],"15106653",[452,37,39,453,454,39],"15106794","other\u002Fneutral\u002Fperformance","yorwba",[456,37,39,370,371,39],"15107029",[458,37,39,370,441,39],"15107142",[460,37,39,370,371,39],"15107220",[462,37,39,370,441,39],"15107357",[464,37,42,465,152,39],"15106379","project\u002Fpositive\u002Fperformance",[467,37,41,348,468,39],"15106417","IgorPartola",[470,37,39,348,11,32],"15106435",[472,37,42,465,473,39],"15107591","spankalee",[475,37,39,370,381,39],"15108631",[84,477,42,478,85,39],7,"project\u002Fpositive\u002Fdocs",[480,481,39,210,482,39],"15107927",8,"anon764587",[484,481,39,210,485,39],"15108819","adpoe",[487,488,39,210,489,39],"15108330",9,"cdevs",[183,204,39,210,184,39],[492,204,39,453,371,39],"15106786",[494,204,41,360,495,39],"15106860","pkstn",[497,204,32,366,371,39],"15106881",[499,204,39,370,495,39],"15109088",[501,502,32,325,503,39],"15107254",11,"factsaresacred",[505,502,39,392,11,32],"15107272",[507,502,41,353,508,39],"15107791","johnfn",[64,502,39,392,11,32],[511,502,41,512,513,39],"15109513","maker\u002Fneutral\u002Fnone","5zBFyURxgY",[158,30,41,360,159,39],[88,30,39,465,11,32],[517,30,32,366,495,39],"15106869",[519,30,32,366,381,39],"15108476",[134,30,39,360,11,32],[522,30,41,402,523,39],"15158351","agumonkey",[525,30,39,233,495,39],"15109059",[94,195,42,527,95,39],"project\u002Fpositive\u002Fdesign",[190,529,42,530,191,39],14,"project\u002Fpositive\u002Fnone",[532,533,39,210,534,39],"15108016",15,"swlkr",[536,533,39,233,537,39],"15108671","shusson",[539,533,39,233,534,39],"15108755",[110,541,32,542,111,39],16,"project\u002Fcritical\u002Fnone",[544,541,39,530,11,32],"15106650",[546,547,39,210,123,39],"15108137",17,[549,547,39,210,550,39],"15108159","grzm",[122,33,39,210,123,39],[553,33,39,210,554,39],"15106411","zzalpha",[556,33,39,210,557,39],"15106443","hinkley",[559,33,39,210,554,39],"15106454",[561,33,39,210,11,32],"15106421",[563,33,39,233,123,39],"15106432",[565,33,41,348,523,39],"15106445",[567,33,32,325,554,39],"15106479",[569,33,39,233,11,32],"15106493",[571,33,32,542,554,39],"15106540",[573,33,39,233,11,32],"15106562",[575,33,42,576,554,39],"15106584","maker\u002Fpositive\u002Fnone",[578,33,41,392,579,39],"15106608","jacquesm",[581,33,39,348,11,32],"15106623",[583,33,32,325,579,39],"15106647",[585,33,42,357,586,39],"15106495","coob",[588,33,39,210,589,39],"15106578","colbyh",[591,33,39,210,123,39],"15106616",[593,33,39,210,594,39],"15106641","erikpukinskis",[596,33,39,233,554,39],"15106748",[598,33,39,233,594,39],"15106972",[600,33,39,233,554,39],"15106990",[602,33,39,233,594,39],"15111698",[604,33,39,210,554,39],"15107018",[606,33,39,210,550,39],"15107050",[608,609,41,419,610,39],"15106300",19,"roadbeats",[612,609,39,419,11,32],"15106311",[614,609,32,615,616,39],"15106348","project\u002Fcritical\u002Fdocs","kristofferc",[618,609,39,423,11,32],"15106390",[620,609,42,478,616,39],"15106699",[622,623,41,624,625,39],"15108796",20,"project\u002Fmixed\u002Fperformance","desireco42",[172,627,41,360,173,39],21,[629,630,39,210,631,39],"15110379",22,"Walkman",[633,634,39,210,635,39],"15106569",23,"SeriousM",[637,634,39,210,579,39],"15106619",[639,634,39,233,343,39],"15106673",[641,634,39,233,579,39],"15106718",[643,634,39,233,343,39],"15106868",[645,634,39,233,579,39],"15106883",[647,634,42,357,648,39],"15107072","quickthrower2",[650,194,32,542,651,39],"15111366","G4BB3R",[653,654,41,392,655,39],"15107308",25,"webreac",[126,31,32,542,127,39],[658,659,41,402,660,39],"15110288",27,"rajington",[662,663,32,542,413,39],"15157399",28,[665,666,39,210,667,39],"15106740",29,"smegel",[669,666,39,210,371,39],"15106752",[671,666,39,210,473,39],"15107486",[673,666,39,210,371,39],"15107510",[675,666,42,465,473,39],"15107664",[677,666,39,233,371,39],"15107683",[679,666,41,392,680,39],"15107857","allover",[682,666,39,210,683,39],"15106759","litzer",[685,666,39,210,371,39],"15106774",[687,666,39,210,667,39],"15106872",[689,666,39,210,690,39],"15107183","cwbrandsma",[692,666,39,512,11,32],"15106760",[694,666,39,233,667,39],"15106847",[696,666,39,233,697,39],"15109127","dang",[699,666,39,233,107,39],"15106921",[701,666,39,210,230,39],"15107739",[],[704,709,714,719,724,729],{"id":705,"name":706,"points":707,"category":708},"15115318","OpenFaaS",194,"infrastructure",{"id":710,"name":711,"points":712,"category":713},"15123638","MMRA",193,"productivity",{"id":715,"name":716,"points":717,"category":718},"15117037","bitcoin-trading-dca",170,"finance_crypto",{"id":720,"name":721,"points":722,"category":723},"15131408","Logo Rank",152,"ai",{"id":725,"name":726,"points":727,"category":728},"15105304","DomDB",131,"web_saas",{"id":730,"name":731,"points":732,"category":20},"15111390","Pest",108,false,"v2",{"id":736,"name":5,"line":6,"ai":733,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":737,"top":18,"kw":738,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":739,"url":9,"mix":740,"praise":80,"objection":103,"sub":21},15105726,-0.1,[21,24,25,26],"0000000010331132333055121510133033031530",[30,31,32,33],1793990963221]