[{"data":1,"prerenderedAt":257},["ShallowReactive",2],{"project-6251108":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":34,"aspects":35,"strip":40,"post_text":41,"what":42,"said":70,"maker_in_thread":152,"shape":160,"grid":163,"attempts":218,"same_week":219,"maker_shows":213,"maker_hidden":249,"reader_version":250,"card":251},"6251108","Theory.js","Abstraction layer for cross-platform JavaScript","title","Show HN: Theory.js – Abstraction layer for cross-platform JavaScript","https:\u002F\u002Fgithub.com\u002Famark\u002Ftheory","github.com","marknadal",1377099880,2013,28,25,817,1739,47,"shown","languages","javascript library","library",[24,25,26,27],"javascript","cross-browser","type checking","abstraction layer","debated",-0.133,{"positive":31,"neutral":32,"mixed":33,"critical":31},5,3,0,13,{"idea":36,"design":38},{"positive":37,"critical":37},1,{"positive":32,"critical":39},4,[33,32,33,31,31,33,37,33,33,33,37,33,37,33,37,33,32,31,33,31,31,33,37,32,33],null,{"problem":43,"audience":41,"pricing":41,"motivation":53,"time_to_build":41,"stack":62,"openness":67,"stage":68,"team_size":69},{"value":44,"source":45,"evidence":46},"Inconsistent JavaScript behavior across browsers and platforms","maker",[47,50],{"id":48,"by":11,"text":49},"6251122","Hey HN, this is the first of several libraries I will be open sourcing, and they will all be building off each other and culminating into something epic. So please, by all means,…",{"id":51,"by":11,"text":52},"6251469","Sure! Thanks for asking. I'm laying a solid foundation with all the primitives of Javascript, then I'm building ontop some really elegant controls - so the libraries won't have…",{"value":54,"source":45,"evidence":55},"Maker has found existing libraries unreliable and wants a trusted base for a larger project",[56,59],{"id":57,"by":11,"text":58},"6252619","Yes, it is the base for a lot more. Unfortunately I have tried and used countless other libraries for the last 3 years, and they always wind up breaking - in fact even underscore…",{"id":60,"by":11,"text":61},"6253845","I would love to use other libraries, unfortunately I wasted too much time (years) trying to fix them up for what I needed and they still become unmanageable. I am glad your…",[63],{"value":64,"source":45,"evidence":65},"JavaScript",[66],{"id":48,"by":11,"text":49},"open_source","beta","solo",{"praise":71,"objections":83,"requests":108,"questions":124,"alternatives":139},[72],{"value":73,"source":74,"evidence":75},"Type-checking and readable 'is' API ideas","commenter",[76,80],{"id":77,"by":78,"text":79},"6252224","noiv","I would buy is(myVariable).text within a second. Why calling two functions?",{"id":81,"by":78,"text":82},"6253144","Great, that's very readable. Now someone needs to allow .text? to indicate the predicate without 'invalid token ?' :)",[84,95,101],{"value":85,"source":74,"evidence":86},"Non-standard choices like 1-indexed arrays break JS conventions",[87,91],{"id":88,"by":89,"text":90},"6252553","curveship","You realize, I assume, that you're making a lot of quixotic choices in this library, many of which appear to be different for personal (and, in some cases, I would say dubious)…",{"id":92,"by":93,"text":94},"6254307","crsmithdev","I was enthusiastic until I got to the part about 1-indexed arrays.",{"value":96,"source":74,"evidence":97},"Maker's own NIH-style reasoning for not using existing libraries",[98],{"id":99,"by":89,"text":100},"6252814","That sounds a lot like the definition of NIH attitude. You might like lodash.js if cross-browser consistency is your true goal.",{"value":102,"source":74,"evidence":103},"Cross-browser normalization goal seen as overly ambitious",[104],{"id":105,"by":106,"text":107},"6252075","solox3","``` \"a reliable yet tiny library (at 7KB gzipped) that would normalize everything so any code written would literally work everywhere\" ``` I felt the same way about needing to…",[109,117],{"value":110,"source":74,"evidence":111},"Suggested a more readable type-check API like is(x).text()",[112,116],{"id":113,"by":114,"text":115},"6251942","superqd","I realize this is a nitpick, but the use of \"is\" after the various types is very counter intuitive. Suppose I'm thinking, \"hmm, is this text?\" or \"is this a number?\" To do this…",{"id":77,"by":78,"text":79},{"value":118,"source":74,"evidence":119},"Clarify the destination of the project",[120],{"id":121,"by":122,"text":123},"6251412","gfunk911","Can you give us a hint about the destination?",[125,132],{"value":126,"source":74,"evidence":127},"Does it support do-while loops?",[128],{"id":129,"by":130,"text":131},"6251260","matthewaustin","But does it support do-while loops?",{"value":133,"source":74,"evidence":134},"Is the tactile-spatial language meant literally?",[135],{"id":136,"by":137,"text":138},"6252218","kipple",">I eventually hope to create a tactile-spatial programming language with it. Do you mean that figuratively or literally? I can't tell if you're working towards some super OOP…",[140,144,148],{"value":141,"source":74,"evidence":142},"underscore.js",[143],{"id":88,"by":89,"text":90},{"value":145,"source":74,"evidence":146},"lodash.js",[147],{"id":99,"by":89,"text":100},{"value":149,"source":45,"evidence":150},"jQuery",[151],{"id":57,"by":11,"text":58},{"comments":153,"answered":31,"key":154},9,[155,156,157],{"id":48,"text":49},{"id":51,"text":52},{"id":158,"text":159},"6252255","Indeed indeed! ;) :D Thanks for the encouragement.",{"commenters":161,"max_depth":31,"maker_replies":153,"first_comment_mins":162,"lifespan_hours":153},11,2,[164,166,168,170,173,175,177,179,180,182,184,186,189,190,193,195,197,199,201,204,205,207,211,212,215],[48,33,33,165,11,37],"project\u002Fpositive\u002Fidea",[121,33,32,167,122,33],"maker\u002Fneutral\u002Fidea",[51,33,33,169,11,37],"project\u002Fneutral\u002Fidea",[171,33,31,172,122,33],"6251510","maker\u002Fpositive\u002Fnone",[136,33,31,174,137,33],"maker\u002Fpositive\u002Fidea",[158,33,33,176,11,37],"maker\u002Fneutral\u002Fnone",[88,37,37,178,89,33],"project\u002Fcritical\u002Fdesign",[57,37,33,169,11,37],[99,37,33,181,89,33],"commenter\u002Fcritical\u002Fidea",[60,37,33,183,11,37],"commenter\u002Fneutral\u002Fnone",[105,162,37,185,106,33],"project\u002Fcritical\u002Fidea",[187,162,33,188,11,37],"6252158","project\u002Fneutral\u002Fperformance",[113,32,37,178,114,33],[191,32,33,192,11,37],"6252016","project\u002Fneutral\u002Fdesign",[194,32,37,178,114,33],"6252063",[196,32,33,192,11,37],"6252183",[198,32,32,192,114,33],"6252447",[77,32,31,200,78,33],"project\u002Fpositive\u002Fdesign",[202,32,33,203,11,37],"6252247","maker\u002Fpositive\u002Fdesign",[81,32,31,200,78,33],[206,32,31,200,114,33],"6252440",[208,39,33,209,210,33],"6251769","other\u002Fneutral\u002Fnone","dclowd9901",[92,31,37,178,93,33],[129,213,32,214,130,33],6,"project\u002Fneutral\u002Fnone",[216,213,33,209,217,33],"6252274","rajivtiru",[],[220,225,230,235,240,245],{"id":221,"name":222,"points":223,"category":224},"6219354","Arc",281,"infrastructure",{"id":226,"name":227,"points":228,"category":229},"6251671","Tridiv",277,"dev_tools",{"id":231,"name":232,"points":233,"category":234},"6226607","noteZilla",275,"learning_science",{"id":236,"name":237,"points":238,"category":239},"6221602","PriceMed",171,"data",{"id":241,"name":242,"points":243,"category":244},"6250112","ngProgress",142,"web_saas",{"id":246,"name":247,"points":248,"category":229},"6232339","Xpressive",84,false,"v2",{"id":252,"name":5,"line":6,"ai":249,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":253,"top":18,"kw":254,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":255,"url":9,"mix":256,"praise":73,"objection":85,"sub":21},6251108,-0.13,[24,25,26,27],"0305501000101010350550130",[31,32,33,31],1793990897162]