[{"data":1,"prerenderedAt":458},["ShallowReactive",2],{"project-4031699":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":83,"maker_in_thread":195,"shape":204,"grid":207,"attempts":421,"same_week":422,"maker_shows":38,"maker_hidden":450,"reader_version":451,"card":452},"4031699","JSON5","modern JSON","title","Show HN: JSON5 — modern JSON","https:\u002F\u002Fgithub.com\u002Faseemk\u002Fjson5","github.com","aseemk",1338172473,2012,64,84,363,1677,22,"notable","languages","data format parser","library",[24,25,26,27,28],"json","json parser","config files","javascript","package.json","roasted",-0.681,{"positive":32,"neutral":33,"mixed":32,"critical":34},2,5,39,48,{"idea":37,"docs":40,"performance":42,"design":43},{"positive":38,"critical":39},1,37,{"positive":41,"critical":41},0,{"positive":41,"critical":38},{"positive":41,"critical":38},[38,41,38,38,38,38,38,45,38,38,38,38,38,41,41,38,41,38,41,41,38,38,38,38,38,38,38,33,38,38,38,38,38,38,38,38,38,38,38,38],3,null,{"problem":48,"audience":58,"pricing":46,"motivation":65,"time_to_build":46,"stack":72,"openness":80,"stage":81,"team_size":82},{"value":49,"source":50,"evidence":51},"Hand-written JSON is tedious and error-prone, and it cannot hold comments","maker",[52,55],{"id":53,"by":11,"text":54},"4031704","Author here. This idea stemmed from long-running frustration every time I hand-wrote JSON (particularly common for Node\u002Fnpm packages and test cases). After stewing on it for over…",{"id":56,"by":11,"text":57},"4031955","Yes, I realize I didn't explain it as well in the README as I had in conversations and emails. I find JSON tedious and error-prone to generate by hand. I also frequently wish I…",{"value":59,"source":50,"evidence":60},"Node\u002Fnpm developers writing package.json files and test data",[61,62],{"id":56,"by":11,"text":57},{"id":63,"by":11,"text":64},"4031737","Writing, or at least editing, JSON by hand seems unavoidable if you develop on Node, as modules' \"manifests\" are JSON files. I also love to make tests data-driven where possible.…",{"value":66,"source":50,"evidence":67},"Frustration hand-writing JSON for npm manifests and tests",[68,69],{"id":53,"by":11,"text":54},{"id":70,"by":11,"text":71},"4031976","You seem to be implying that making an effort to seek change in the format that npm uses is a bad idea. I'm not sure I understand why that is. Surely the status quo isn't always…",[73],{"value":74,"source":50,"evidence":75},"JavaScript (ES5-subset parser)",[76,79],{"id":77,"by":11,"text":78},"4031887","Comments: yes, I read Douglas Crockford's post on the matter. I guess I'm not genuinely worried about that, though, and my hope is that shipping a JS parser that works on both…",{"id":63,"by":11,"text":64},"open_source","beta","unknown",{"praise":84,"objections":97,"requests":139,"questions":162,"alternatives":174},[85],{"value":86,"source":87,"evidence":88},"Commenters defend the project against dismissive criticism","commenter",[89,93],{"id":90,"by":91,"text":92},"4032099","augustflanagan","I think that it's really a shame to see people slamming aseemk here. He had an idea, worked on it, and released it. That's fantastic. There are a few constructive comments here…",{"id":94,"by":95,"text":96},"4033893","jimrandomh","You know that something has gone very deeply wrong somewhere when people oppose your project because they are ideologically opposed to comments. In my own experience, finding out…",[98,117,132],{"value":99,"source":87,"evidence":100},"Should not be called JSON; breaks the fixed JSON standard",[101,105,109,113],{"id":102,"by":103,"text":104},"4031826","Mizza","Please, don't call it JSON. There is only one JSON, and you didn't make it. It's cool that you made this, and that you made it open source, just please call it something else.",{"id":106,"by":107,"text":108},"4031781","benatkin","Please don't call it JSON. Actually I don't care much, as your project will be shunned. The first rule of JSON is that JSON doesn't change.",{"id":110,"by":111,"text":112},"4031807","brentashley","Douglas built the JSON spec 1) to be language agnostic. Following ES5's syntax directions is fine for ES5 focused development, possibly not for others. 2) to be final - i.e.…",{"id":114,"by":115,"text":116},"4031958","wvenable","JSON is an amazing serialization format but hand-written JSON is completely wrong. I think this fixes most of the problems of using it in hand-written situations. Just the lack…",{"value":118,"source":87,"evidence":119},"Hand-editing is an editor problem; comments and lax syntax hurt interoperability",[120,124,128],{"id":121,"by":122,"text":123},"4032014","YmMot","I won't begrudge someone a fun little personal project, however (almost) no-one will ever adopt this. It removes too many benefits of JSON\u002Fintroduces drawbacks for very little…",{"id":125,"by":126,"text":127},"4031841","enneff","JSON is wonderful because it is simple and unambiguous. It just works, and serialized data will always look the same. This \"JSON5\" thing is an abomination. Use whatever quotes…",{"id":129,"by":130,"text":131},"4031805","simanyay","Three things: * Comments in JSON files are not a great idea because people might (will?) abuse them to add special instructions for their own serializers. As soon as this happens…",{"value":133,"source":87,"evidence":134},"Existing JSON parsers would reject these documents",[135],{"id":136,"by":137,"text":138},"4032392","MarkR42","Congratulations, you've made something which looks superficially like JSON, but most documents won't parse in 99.9% of JSON parsers. Interoperability is lost, nothing is gained!",[140,152],{"value":141,"source":87,"evidence":142},"Rename the project",[143,144,148],{"id":102,"by":103,"text":104},{"id":145,"by":146,"text":147},"4032066","tferris","Please rename your project or take it down. People here gave you enough reasons.",{"id":149,"by":150,"text":151},"4032308","pygorex","I have to agree with most of the criticism in this thread. The lack of comments, strict quoting, no trailing slashes - these aren't problems to fix they are features. As others…",{"value":153,"source":87,"evidence":154},"Build a compiler or CLI that converts to valid JSON",[155,159],{"id":156,"by":157,"text":158},"4031987","genericdave","Seems like you're getting a lot of criticism for this, a lot of which I have to agree with. Writing valid JSON is extremely simple and unfortunately it's hard to see how this…",{"id":160,"by":107,"text":161},"4031934","That's npm, not node itself, that relies on package.json. When its creator chose it, he knew exactly what JSON is. He's maintained on HN and elsewhere that he made a good…",[163],{"value":164,"source":87,"evidence":165},"Why not use YAML instead?",[166,170],{"id":167,"by":168,"text":169},"4031820","zacharyvoase","Can I ask why YAML wasn't good enough?",{"id":171,"by":172,"text":173},"4031930","ZenPsycho","This entirely misses the point of JSON. if you want these features it's perfectly acceptable to use YAML instead of JSON.",[175,183,191],{"value":176,"source":87,"evidence":177},"YAML",[178,182],{"id":179,"by":180,"text":181},"4031795","gurkendoktor","I absolutely hate hand-writing JSON, but that's why I use YAML. I think you should push for a properly documented subset of YAML, or a full YAML parser in JavaScript instead.…",{"id":167,"by":168,"text":169},{"value":184,"source":87,"evidence":185},"JSON with comments or JSON3 parsers",[186,190],{"id":187,"by":188,"text":189},"4031779","cheeaun","JSON 3 here: https:\u002F\u002Fgithub.com\u002Fbestiejs\u002Fjson3",{"id":94,"by":95,"text":96},{"value":192,"source":87,"evidence":193},"CoffeeScript, HAML and SASS style compile-to-JSON layers",[194],{"id":110,"by":111,"text":112},{"comments":196,"answered":197,"key":198},15,4,[199,202,203],{"id":200,"text":201},"4031876","Thanks for the feedback. It certainly would be great if there existed tools to let me write and update JSON with nicer syntax like this; any ideas how that might be possible? My…",{"id":70,"text":71},{"id":77,"text":78},{"commenters":205,"max_depth":33,"maker_replies":196,"first_comment_mins":45,"lifespan_hours":206},52,25,[208,210,212,214,215,218,221,223,227,229,233,236,239,240,241,245,247,248,250,252,256,258,261,263,265,267,269,272,275,279,282,285,286,289,291,294,296,299,302,305,308,311,313,316,318,321,322,325,327,331,332,333,335,336,338,341,342,345,348,351,355,359,361,363,366,369,371,373,377,378,381,384,386,387,390,392,396,398,402,406,410,413,415,418],[125,41,38,209,126,41],"project\u002Fcritical\u002Fidea",[200,41,41,211,11,38],"maker\u002Fneutral\u002Fidea",[160,41,41,213,107,41],"commenter\u002Fcritical\u002Fidea",[70,41,41,211,11,38],[216,41,45,217,172,41],"4032363","project\u002Fneutral\u002Fdocs",[219,41,38,209,220,41],"4032002","mvanveen",[222,41,38,209,146,41],"4032048",[224,41,45,225,226,41],"4032818","project\u002Fneutral\u002Fidea","mmcnickle",[228,41,38,209,126,41],"4032216",[230,41,38,231,232,41],"4032589","project\u002Fcritical\u002Fperformance","exDM69",[234,41,38,209,235,41],"4032943","mcherm",[237,41,38,209,238,41],"4032937","sneak",[129,38,38,209,130,41],[77,38,41,211,11,38],[242,38,45,243,244,41],"4031998","project\u002Fneutral\u002Fnone","Too",[246,38,45,217,130,41],"4032271",[121,32,38,209,122,41],[249,32,41,211,11,38],"4032038",[251,32,38,209,122,41],"4032085",[253,32,41,254,255,41],"4032256","commenter\u002Fneutral\u002Fidea","DavidAbrams",[257,32,41,213,122,41],"4032343",[259,45,38,209,260,41],"4031849","greghinch",[262,45,41,211,11,38],"4031897",[264,45,38,209,172,41],"4031953",[266,45,41,254,11,38],"4031977",[268,45,41,213,172,41],"4032022",[270,45,38,271,255,41],"4032267","project\u002Fcritical\u002Fdesign",[273,45,41,274,172,41],"4032784","commenter\u002Fneutral\u002Fdesign",[276,45,41,277,278,41],"4032425","other\u002Fneutral\u002Fnone","tomjen3",[280,45,41,277,281,41],"4032663","mryan",[283,45,41,284,260,41],"4034425","commenter\u002Fneutral\u002Fnone",[102,197,38,209,103,41],[287,33,41,277,288,41],"4032055","mitchellh",[290,33,41,277,11,38],"4032060",[292,33,41,277,293,41],"4035843","chris24",[167,295,45,225,168,41],6,[297,295,38,209,298,41],"4031842","chc",[300,295,41,301,11,38],"4031901","maker\u002Fneutral\u002Fnone",[303,295,41,277,304,41],"4031855","erikpukinskis",[306,295,41,277,307,41],"4031863","alcuadrado",[309,295,41,310,244,41],"4032001","other\u002Fneutral\u002Fperformance",[312,295,41,277,298,41],"4031898",[314,295,38,209,315,41],"4032028","silentbicycle",[53,317,41,211,11,38],7,[319,317,38,209,320,41],"4031727","thwarted",[63,317,41,211,11,38],[323,317,38,209,324,41],"4031880","aurelianito",[326,317,38,209,172,41],"4031944",[328,317,45,329,330,41],"4031774","project\u002Fmixed\u002Fdesign","stock_toaster",[106,317,38,209,107,41],[179,317,38,209,180,41],[334,317,41,301,11,38],"4031935",[110,317,38,209,111,41],[337,317,41,211,11,38],"4031931",[339,317,38,209,340,41],"4031853","melloclello",[114,317,38,209,115,41],[90,343,33,344,91,41],8,"maker\u002Fpositive\u002Fnone",[94,346,33,347,95,41],9,"project\u002Fpositive\u002Fidea",[349,346,41,350,11,38],"4033934","commenter\u002Fpositive\u002Fidea",[352,353,38,209,354,41],"4032618",10,"jahewson",[356,357,38,209,358,41],"4031959",11,"drawkbox",[360,357,41,211,11,38],"4031983",[362,357,41,254,358,41],"4032138",[364,357,38,209,365,41],"4032428","catch23",[367,357,38,209,368,41],"4032976","wulczer",[370,357,41,284,368,41],"4032983",[149,372,38,209,150,41],12,[374,375,38,209,376,41],"4031938",13,"kwamenum86",[56,375,41,211,11,38],[379,375,38,209,380,41],"4032053","ninjin",[382,375,41,213,383,41],"4032574","arnarbi",[156,385,38,209,157,41],14,[187,196,41,277,188,41],[388,196,41,277,389,41],"4032113","nfriedly",[136,391,38,209,137,41],16,[393,394,38,209,395,41],"4032156",17,"iamcarbon",[145,397,38,209,146,41],18,[399,397,41,400,401,41],"4032408","other\u002Fcritical\u002Fnone","veemjeem",[403,404,38,209,405,41],"4032515",19,"jwr",[407,408,38,209,409,41],"4032851",20,"timrobinson",[411,408,41,284,412,41],"4033054","sneeu",[171,414,38,209,172,41],21,[416,18,38,209,417,41],"4032143","jQueryIsAwesome",[419,420,45,329,255,41],"4032285",23,[],[423,428,433,438,442,446],{"id":424,"name":425,"points":426,"category":427},"4025901","Drapache",98,"infrastructure",{"id":429,"name":430,"points":431,"category":432},"4028597","Snaketron",96,"games",{"id":434,"name":435,"points":436,"category":437},"4023941","Stallion",93,"dev_tools",{"id":439,"name":440,"points":441,"category":437},"4044362","Cloudedit",82,{"id":443,"name":444,"points":445,"category":20},"4040046","Joint",56,{"id":447,"name":448,"points":449,"category":437},"4025361","Gistlicious",54,false,"v2",{"id":453,"name":5,"line":6,"ai":450,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":454,"top":18,"kw":455,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":456,"url":9,"mix":457,"praise":86,"objection":99,"sub":21},4031699,-0.68,[24,25,26,27,28],"1011111311111001010011111115111111111111",[32,33,32,34],1793990881785]