[{"data":1,"prerenderedAt":714},["ShallowReactive",2],{"project-7421652":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":48,"post_text":50,"what":51,"said":87,"maker_in_thread":244,"shape":252,"grid":256,"attempts":679,"same_week":680,"maker_shows":41,"maker_hidden":707,"reader_version":708,"card":709},"7421652","mithril","My new JavaScript MVC framework","title","Show HN: My new JavaScript MVC framework","http:\u002F\u002Flhorie.github.io\u002Fmithril\u002F","lhorie.github.io","lhorie",1395148464,2014,304,159,48,2272,3,"legend","languages","javascript mvc framework","library",[24,25,26,27],"javascript mvc","client-side framework","virtual dom","lightweight javascript","debated",0.17,{"positive":31,"neutral":32,"mixed":33,"critical":34},27,28,5,20,80,{"idea":37,"docs":39,"design":42,"execution":44,"performance":47},{"positive":38,"critical":33},12,{"positive":40,"critical":41},7,1,{"positive":40,"critical":43},11,{"positive":45,"critical":46},0,2,{"positive":45,"critical":45},[33,45,33,41,33,18,41,18,41,41,41,18,41,45,45,45,41,33,46,45,41,45,33,45,33,33,33,33,33,33,33,41,33,49,18,18,33,33,46,49],4,null,{"problem":52,"audience":62,"pricing":50,"motivation":71,"time_to_build":50,"stack":75,"openness":84,"stage":85,"team_size":86},{"value":53,"source":54,"evidence":55},"Building client-side web applications with a small, lean MVC framework","maker",[56,59],{"id":57,"by":11,"text":58},"7422813","Hi, Mithril's author here. I'll just put a big comment here, and hopefully everyone can see it. @stronglikedan: I don't have plans for extending the core (in fact, keeping it…",{"id":60,"by":11,"text":61},"7426491","Actually, this is kind of the spirit of Mithril. It's really a tiny collection of standalone useful functions that also happen to work well together. Ironically, your examples of…",{"value":63,"source":64,"evidence":65},"JavaScript developers building web apps","inferred",[66,70],{"id":67,"by":68,"text":69},"7422607","markovbling","your \"getting started\" page is like a crash course in building websites with javascript - just forwarded it to a bunch of friends it felt like you were giving a smart person a…",{"id":57,"by":11,"text":58},{"value":72,"source":54,"evidence":73},"Side project scratching an itch, worked on most nights",[74],{"id":57,"by":11,"text":58},[76],{"value":77,"source":54,"evidence":78},"JavaScript",[79,81],{"id":80},"post",{"id":82,"by":11,"text":83},"7426303","I think you're too caught up on syntax and missing the big picture. The m() method is simply a helper utility that returns a POJO. You can write the code in coffeescript if js…","unknown","beta","solo",{"praise":88,"objections":136,"requests":173,"questions":198,"alternatives":214},[89,109,125],{"value":90,"source":91,"evidence":92},"Small, lean, well-scoped design","commenter",[93,97,101,105],{"id":94,"by":95,"text":96},"7422088","sergiotapia","I've become a huge fan of simple things. When I was just starting out developing software, I was a big fan of huge integrated solutions. But as the years went on I loved well…",{"id":98,"by":99,"text":100},"7421830","scrrr","First impression after reading across the docs: Compact, fast, seems to contain most important things. I like it.",{"id":102,"by":103,"text":104},"7422366","swalsh","This actually fills a good niche, if i'm looking for a monolithic framework that trys to do a bunch of things, angular fits the bill. I like that this does one thing, and seems…",{"id":106,"by":107,"text":108},"7422357","bjconlan","The templating language reminds me a little of what spacebars (htmljs) probably looks like if a nice mustache facade wasn't put in front of it. (which goes back to Gee's comment…",{"value":110,"source":91,"evidence":111},"Documentation is excellent and beginner-friendly",[112,113,117,121],{"id":67,"by":68,"text":69},{"id":114,"by":115,"text":116},"7422710","SNACKeR99","I just came back to say that the documentation really is beyond excellent.",{"id":118,"by":119,"text":120},"7425978","findjashua","Thanks for making this, this looks really really good! I'm a backend guy beginning to venture into front-end stuff (recently picked up JS for a Node project at work), and the…",{"id":122,"by":123,"text":124},"7422021","mtford","Looks very clean. Especially having just tried a read through the angular docs. Bleurgh. Take the advice of the others in this thread and avoid bloating this and maybe it will…",{"value":126,"source":91,"evidence":127},"Fast performance",[128,131,132],{"id":129,"by":115,"text":130},"7422485","I am really interested in this, and am going to give it a go on my next project. Its areas of responsibility are contained and well-defined, the syntax is nicely concise, and it…",{"id":102,"by":103,"text":104},{"id":133,"by":134,"text":135},"7423360","matthiasak","tiny, small, idiomatic javascript; uses POJOs; has just enough 'binding'; uses routing and basic promise\u002FA+ implementation. I'd say this is good and as high level as one should…",[137,152,163],{"value":138,"source":91,"evidence":139},"Templates written as JavaScript arrays and calls are awkward to read",[140,144,148],{"id":141,"by":142,"text":143},"7423018","ulisesrmzroche","Have you successfully tried this out in a real app? Why would you want to structure your dom inside an array? Seem pretty crazy, my dude. todo.view = function(ctrl) { return…",{"id":145,"by":146,"text":147},"7422135","abjorn","Overall I like it, except for the templates. It's perfectly possible to not have FOUC with traditional template languages like mustache, and I don't think having \"turing…",{"id":149,"by":150,"text":151},"7427574","maninalift","I like the small, unmagical, well-defined API. That strength is also a weakness though. Particularly because for coffeescript (or my favourite, the related LiveScript) it doesn't…",{"value":153,"source":91,"evidence":154},"Another framework is unnecessary; use existing libraries",[155,159],{"id":156,"by":157,"text":158},"7422132","tzaman","I don't mean this in a bad way, but do we really need another Javascript framework? Wouldn't author's energy be more useful when contributing to one of the existing ones?",{"id":160,"by":161,"text":162},"7422477","Zelphyr","Here are my thoughts, but you won't like them. Stop with the frameworks. Learn Javascript. Learn CSS. Learn HTML. You'll find pretty quickly that what you need are libraries, not…",{"value":164,"source":91,"evidence":165},"Jquery comparisons and tests are unfair",[166,170],{"id":167,"by":168,"text":169},"7422082","timmywil","The tests don't make sense. jQuery is not an MVC framework and should not be tested as if it were. It's worth noting that both Backbone and Angular use some version of jQuery…",{"id":171,"by":11,"text":172},"7425649","Many people are at a stage where they're using jQuery to build large apps and wondering what benefits a framework provides. Not having to worry about script injections is one of…",[174,185,193],{"value":175,"source":91,"evidence":176},"Todo MVC example",[177,181],{"id":178,"by":179,"text":180},"7422309","johnnymonster","do you have a todomvc example :)",{"id":182,"by":183,"text":184},"7424214","EvanYou","Author of Vue.js here, I'm glad you included Vue in your framework comparisons. Here's some thoughts regarding your comments on Vue.js: the reason Vue chose to use ES5-only…",{"value":186,"source":91,"evidence":187},"Performance comparisons with React, Om and Vue",[188,192],{"id":189,"by":190,"text":191},"7422098","Geee","Quite similar to React? Probably about the same performance?",{"id":118,"by":119,"text":120},{"value":194,"source":91,"evidence":195},"Support for other templating languages",[196,197],{"id":145,"by":146,"text":147},{"id":106,"by":107,"text":108},[199,206],{"value":200,"source":91,"evidence":201},"How long will the project be supported",[202],{"id":203,"by":204,"text":205},"7422431","BaconJuice","Hi lhorie, I like this. I want to use this. How long will this supported is my concern. Or is this a fun side hobby you worked on and plan on moving on to the next with no future…",{"value":207,"source":91,"evidence":208},"Why another JavaScript framework",[209,210],{"id":156,"by":157,"text":158},{"id":211,"by":212,"text":213},"7422835","niklasber","Why?",[215,220,228,232,237],{"value":216,"source":91,"evidence":217},"Angular",[218,219],{"id":94,"by":95,"text":96},{"id":141,"by":142,"text":143},{"value":221,"source":91,"evidence":222},"React",[223,227],{"id":224,"by":225,"text":226},"7422306","cordite","I know react is not an MVC framework, but I think you should add it in for comparisons since it uses similar rendering concepts",{"id":189,"by":190,"text":191},{"value":229,"source":91,"evidence":230},"Backbone.js",[231],{"id":94,"by":95,"text":96},{"value":233,"source":91,"evidence":234},"jQuery",[235,236],{"id":160,"by":161,"text":162},{"id":167,"by":168,"text":169},{"value":238,"source":91,"evidence":239},"Riot.js",[240],{"id":241,"by":242,"text":243},"7428137","fiatjaf","Aside from templates, this is the same as https:\u002F\u002Fgithub.com\u002Fmoot\u002Friotjs",{"comments":245,"answered":45,"key":246},9,[247,248,249],{"id":57,"text":58},{"id":171,"text":172},{"id":250,"text":251},"7428840","Hmm, I think you're underestimating legacy code. I can name two very large projects in my company that do use jQuery as the main client-side library, as well as numerous other…",{"commenters":253,"max_depth":245,"maker_replies":245,"first_comment_mins":254,"lifespan_hours":255},100,32,36,[257,259,263,265,268,271,273,276,278,281,285,288,291,294,296,299,300,302,305,307,309,313,315,319,321,323,325,328,331,333,336,337,339,341,344,348,350,352,355,357,359,361,363,366,369,371,374,377,379,382,383,386,389,392,394,396,399,402,404,406,408,412,415,419,421,423,425,427,428,431,433,435,438,440,442,445,448,451,454,456,459,462,465,468,471,473,476,479,482,485,487,490,493,496,499,501,503,505,507,511,514,516,519,522,524,525,526,529,533,535,537,539,542,544,549,551,552,556,559,562,566,568,572,574,577,580,585,589,592,594,597,601,605,609,612,616,618,621,624,626,628,630,633,635,637,640,644,646,649,651,654,657,661,664,666,668,671,673,677],[94,45,33,258,95,45],"project\u002Fpositive\u002Fidea",[260,45,45,261,262,45],"7422777","other\u002Fneutral\u002Fnone","the_cat_kittles",[264,45,45,261,115,45],"7422942",[266,45,45,261,267,45],"7426777","midas007",[269,45,45,261,270,45],"7425164","nilkn",[272,45,45,261,267,45],"7426748",[274,45,45,261,275,45],"7427452","Rygu",[57,41,45,277,11,41],"maker\u002Fneutral\u002Fnone",[279,41,18,277,280,45],"7423062","robzienert",[282,41,33,283,284,45],"7423114","project\u002Fpositive\u002Fdocs","pygy_",[286,41,33,283,287,45],"7426206","phektus",[289,41,18,277,290,45],"7424806","pedalpete",[292,41,41,293,168,45],"7424889","project\u002Fcritical\u002Fnone",[171,41,45,295,11,41],"commenter\u002Fneutral\u002Fnone",[297,41,45,295,298,45],"7428016","camus2",[250,41,45,295,11,41],[301,41,45,295,168,45],"7428964",[303,41,33,304,168,45],"7429248","maker\u002Fpositive\u002Fnone",[306,41,45,277,11,41],"7429352",[182,46,33,308,183,45],"project\u002Fpositive\u002Fdesign",[310,46,18,311,312,45],"7426593","project\u002Fneutral\u002Fnone","jpmonette",[141,18,41,314,142,45],"project\u002Fcritical\u002Fdesign",[316,18,18,317,318,45],"7423634","project\u002Fneutral\u002Fdesign","chc",[320,18,41,314,142,45],"7424066",[322,18,45,295,318,45],"7424229",[324,18,41,314,142,45],"7424966",[326,18,18,317,327,45],"7425288","danneu",[329,18,18,317,330,45],"7425494","insin",[332,18,45,295,318,45],"7425634",[334,18,18,317,335,45],"7426312","zpao",[82,18,45,295,11,41],[338,18,41,314,142,45],"7428769",[340,18,45,295,11,41],"7428928",[342,18,41,314,343,45],"7426740","Bahamut",[345,18,45,346,347,45],"7424467","commenter\u002Fneutral\u002Fdesign","jonahx",[349,18,41,314,142,45],"7424987",[351,18,18,311,312,45],"7426599",[353,18,41,314,354,45],"7426986","thefreeman",[356,18,18,317,330,45],"7427937",[358,18,41,314,142,45],"7428764",[360,18,45,317,11,41],"7429200",[145,49,18,362,146,45],"project\u002Fmixed\u002Fdesign",[364,49,41,314,365,45],"7422219","jenius",[367,49,33,308,368,45],"7422474","hamburglar",[370,49,18,317,115,45],"7422497",[372,49,18,317,373,45],"7422509","Xdes",[375,49,41,376,146,45],"7422729","project\u002Fcritical\u002Fexecution",[378,49,45,277,11,41],"7423016",[380,49,18,381,368,45],"7424201","project\u002Fneutral\u002Fexecution",[167,33,41,376,168,45],[384,33,45,261,385,45],"7422420","JetSpiegel",[387,33,45,261,388,45],"7422645","mkaziz",[390,33,45,261,391,45],"7423041","nawitus",[393,33,45,261,385,45],"7423231",[395,33,45,261,391,45],"7423684",[397,33,45,261,398,45],"7425427","hmsimha",[400,33,45,261,401,45],"7426932","swang",[403,33,45,261,398,45],"7427135",[405,33,45,261,398,45],"7425331",[407,33,45,261,391,45],"7430576",[409,410,45,346,411,45],"7422598",6,"Tloewald",[413,410,45,295,414,45],"7422807","jedahan",[416,410,45,417,418,45],"7422917","commenter\u002Fneutral\u002Fidea","buckbova",[420,410,45,346,411,45],"7423050",[422,410,41,314,142,45],"7424084",[424,410,45,346,411,45],"7428544",[426,410,45,346,142,45],"7428887",[67,40,33,283,68,45],[429,40,45,295,430,45],"7423170","_dark_matter_",[432,40,45,295,68,45],"7428153",[434,40,45,295,385,45],"7423271",[436,40,45,295,437,45],"7424818","rossng",[129,439,33,258,115,45],8,[160,245,41,441,161,45],"project\u002Fcritical\u002Fidea",[443,245,41,441,444,45],"7422533","AznHisoka",[446,245,45,417,447,45],"7422605","bwilliams",[449,245,45,417,450,45],"7422609","snicker",[452,245,45,453,343,45],"7426764","commenter\u002Fneutral\u002Fperformance",[455,245,45,417,161,45],"7429450",[457,245,45,417,458,45],"7422750","sebular",[460,245,45,295,461,45],"7422879","caitp",[463,245,45,417,464,45],"7422828","anton-107",[466,245,41,441,467,45],"7422579","superqd",[469,245,45,417,470,45],"7422845","tomelders",[472,245,45,417,161,45],"7429479",[474,245,45,295,475,45],"7422611","jbigelow76",[477,245,45,417,478,45],"7427430","serge2k",[480,245,45,417,481,45],"7422660","batoure",[483,245,45,417,484,45],"7426287","gedrap",[486,245,45,417,161,45],"7429419",[488,245,33,258,489,45],"7422885","orthecreedence",[491,245,45,417,492,45],"7423008","emehrkay",[494,245,45,417,495,45],"7423768","iSnow",[497,245,45,417,498,45],"7425180","julie1",[500,245,45,417,495,45],"7427398",[502,245,45,417,161,45],"7429384",[60,245,45,504,11,41],"maker\u002Fneutral\u002Fidea",[98,506,33,308,99,45],10,[508,506,18,509,510,45],"7421900","project\u002Fneutral\u002Fidea","stronglikedan",[512,506,18,509,513,45],"7421963","tluyben2",[515,506,33,258,510,45],"7421983",[517,506,45,417,518,45],"7422462","iLoch",[520,506,45,417,521,45],"7422407","Touche",[523,506,45,417,513,45],"7424603",[122,43,33,308,123,45],[203,38,18,277,204,45],[527,38,45,295,528,45],"7422553","guywithabike",[530,531,45,261,532,45],"7433226",13,"boyaka",[106,534,33,308,107,45],14,[133,536,33,258,134,45],15,[241,538,18,509,242,45],16,[540,538,33,258,541,45],"7430231","explorigin",[149,543,18,362,150,45],17,[545,546,18,547,548,45],"7422028",18,"project\u002Fmixed\u002Fdocs","runj__",[102,550,33,258,103,45],19,[224,34,18,509,225,45],[553,34,18,554,555,45],"7422723","project\u002Fneutral\u002Fdocs","jmulho",[118,557,33,558,119,45],21,"maker\u002Fpositive\u002Fdocs",[560,561,33,308,150,45],"7427700",22,[563,564,33,258,565,45],"7425150",23,"grannyg00se",[114,567,33,283,115,45],24,[569,570,18,317,571,45],"7422089",25,"Jxnathan",[573,570,45,346,95,45],"7422096",[575,570,45,346,576,45],"7422251","Kiro",[578,570,45,295,579,45],"7422364","pastjean",[581,582,41,583,584,45],"7423156",26,"project\u002Fcritical\u002Fdocs","killertypo",[586,582,45,587,588,45],"7423227","commenter\u002Fneutral\u002Fdocs","lutusp",[590,582,45,587,591,45],"7423633","nollidge",[593,582,45,587,498,45],"7425294",[595,31,33,258,596,45],"7424322","ken47",[598,32,18,599,600,45],"7426753","project\u002Fmixed\u002Fexecution","b0z0",[602,603,18,509,604,45],"7422112",29,"hcho",[606,607,18,509,608,45],"7421966",30,"omphalos",[610,611,33,258,327,45],"7422742",31,[613,254,18,614,615,45],"7426712","project\u002Fneutral\u002Fperformance","leo_mck",[189,617,18,614,190,45],33,[619,617,18,509,620,45],"7422315","dangoor",[622,617,18,623,347,45],"7424516","project\u002Fmixed\u002Fperformance",[625,617,45,417,242,45],"7423091",[156,627,41,441,157,45],34,[629,627,33,258,146,45],"7422156",[631,627,45,417,632,45],"7422360","todd3834",[634,627,45,417,521,45],"7422371",[636,627,45,417,157,45],"7422478",[638,627,45,639,368,45],"7422608","commenter\u002Fpositive\u002Fidea",[641,627,45,642,643,45],"7422556","commenter\u002Fcritical\u002Fidea","stefan_kendall3",[645,627,33,283,555,45],"7422672",[647,627,45,417,648,45],"7422747","aric",[650,627,33,258,142,45],"7423159",[652,627,45,417,653,45],"7423385","rimantas",[655,627,45,417,656,45],"7426124","aidos",[658,659,18,317,660,45],"7422640",35,"it_learnses",[662,255,41,314,663,45],"7422460","jakiestfu",[665,255,18,317,368,45],"7422531",[178,667,18,554,179,45],37,[669,667,18,554,670,45],"7422408","criswell",[672,667,33,283,312,45],"7426595",[674,675,33,308,676,45],"7424685",38,"ing33k",[211,678,41,441,212,45],39,[],[681,686,691,694,699,703],{"id":682,"name":683,"points":684,"category":685},"7392320","My Desk Chair",203,"other",{"id":687,"name":688,"points":689,"category":690},"7432448","Logarithmic Flappy 2048",135,"games",{"id":692,"name":693,"points":253,"category":690},"7416664","Coder's Bracket",{"id":695,"name":696,"points":697,"category":698},"7429371","brace-tags",94,"dev_tools",{"id":700,"name":701,"points":702,"category":20},"7416907","Soundslice v2",82,{"id":704,"name":705,"points":35,"category":706},"7405891","Surfer","web_saas",false,"v2",{"id":710,"name":5,"line":6,"ai":707,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":711,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":712,"url":9,"mix":713,"praise":90,"objection":138,"sub":21},7421652,[24,25,26,27],"5051531311131000152010505555555154335524",[31,32,33,34],1794036516766]