[HN Gopher] Ignore the haters, and other lessons learned from cr... ___________________________________________________________________ Ignore the haters, and other lessons learned from creating JSON5 Author : aseemk Score : 149 points Date : 2022-08-07 19:46 UTC (3 hours ago) (HTM) web link (aseemk.substack.com) (TXT) w3m dump (aseemk.substack.com) | dejawu wrote: | I'm kind of appalled that the Hashicorp guy went that far to put | someone down for just building something they found useful to | themselves. What a great way to discourage someone from | expressing themselves creatively. Glad Aseem carried on | regardless. | moonchrome wrote: | Umm you can find burning trash in your backyard useful to | yourself - but it's still polluting the neighborhood (eg. | people using this crap in APIs or pulling down useless | dependencies to get this). It's especially bad if you start | promoting your practices and get your neighbors start doing | this as well. | | I completely understand the reaction and find his repo a very | appropriate response. | bogota wrote: | This is a great example of how argument by analogy completely | breaks down and just helps the author express their feelings. | | But for a second it makes them feel smart. | moonchrome wrote: | Maybe expressing feelings about the topic, as a guess | behind the motivation for the mocking repo, was my | intention ? (like I said in the second part of the post) | | Left-pad shitshow showed how relevant NPM dependency chain | is as a measure of quality and what it does for the | ecosystem. This is left-pad with added complexity to sneak | in malicious code. | cmdialog wrote: | [deleted] | okanat wrote: | I wouldn't want to work for some company whose founder can be | openly toxic against a project that solves an actual problem. | mberning wrote: | How many years ago was this? I'm sure Mitchell has grown a | lot and matured since then. Just like everybody else. He did | something a little mean spirited. Maybe even something he | regrets now. I think he deserves a little bit of grace. | iasay wrote: | Perhaps he's jealous as half of Hashicorp's portfolio only | create more problems than you had originally... | PoignardAzur wrote: | This comment seems to be an example of the exact toxic | mentality the author was complaining about. | | Like Hashicorp products or not, the remark seems a bit | petty. | furyofantares wrote: | Non-constructive criticism is extremely easy to produce and can | make the author of it feel smart for a second. Doing it in a | place where folks share their creative works is like shooting | fish in a barrel. | | There may be a tiny bit of signal in such comments but it's | mostly just noise. I try to just ignore any comment that looks | like the commenter just wrote whatever came to their mind, | they're gonna forget about it in 10 seconds too when they're off | to the next thing to react to. | vlunkr wrote: | Many of those original comments were pretty spot on though. | Maybe the constructive criticism you need sometimes is "don't | do this" | | JSON is useful partially because it's easy to parse, so parsers | already exist in every language. Extending the syntax is | undoing all the communal work, and encroaching on grounds that | YAML and other languages already cover. | bobthepanda wrote: | This seems like making a mountain out of a molehill. | | > Extending the syntax is undoing all the communal work | | JSON5 takes stuff from ES5.1 and adds it to JSON, and ES5 is | backwards-compatible with older JS. This means it's fairly | trivial to convert JSON5 to JSON (literally 13 lines: https:/ | /gist.github.com/iddan/3d34b12f6b22c30a8a07c149b3175e...). | And ES5.1 itself was the product of communal work. | | > encroaching on grounds that YAML and other languages | already cover. | | I don't know that we should really start dividing features | into nice little boxes so no one steps on each other's toes. | Trying different solutions for the same problem can | eventually bring us more optimal solutions than if we just | sat around twiddling our thumbs because 'it's been done'. | It's not like there's an army knocking on your door going | "switch to JSON5 or we'll kick your teeth in." People can | stick with what they want to do on the merits, but I don't | see that as a reason to shut down others' work. | didgetmaster wrote: | I can really relate to this. I posted something earlier this year | about how a number of file system problems are directly related | to an archaic architecture that was designed when hard drive | capacities were measure in MBs. I offered a possible solution in | a hobby project that I have been working on for years. | | https://news.ycombinator.com/item?id=30449263 | | While there were some really good comments, the vast majority | were very negative and critical. (BTW: the comments on HN were | much more civil than on Slashdot where the story also got picked | up) Still, I didn't ignore the criticism but tried to learn from | it and there were some encouraging comments mixed in as well. | SahAssar wrote: | I read through most of those comments and while a lot of them | are critical or negative I would still say most of them are | "good" as in that they are constructive and give feedback on | the idea or it's execution. | | When you say "While there were some really good comments, the | vast majority were very negative and critical" it sounds like | you think that negative or critical comments cannot be good. | pjbk wrote: | Whenever I need to use JSON in my projects I always check if I | can use JSON5 instead. It really makes a difference to have a | more user friendly format. My only gripe is when I use Python, | the official JSON5 module is much, much slower than Python's JSON | parser. I frequently end up translating the development JSON5 | files to JSON files that go into the final runtime because of | this. | thrown_22 wrote: | I still don't get what the point of json is. If you want to dump | raw JS data structures as text just do. You don't need a spec or | special tools. If you want human readable XML just use | s-expressions. Something that's so easy to parse you can roll | your own in an afternoon. | | Json is trying to square the circle of "I want things to be easy" | but also "I want to not shoot myself in the foot", goals which | are mutually exclusive. Every new version of json is just gods | way of teaching people how XML got to be the mess it is. | TylerE wrote: | Shockingly about 98% of the population doesn't find massive | mounds of nested parens especially readable. | AnimalMuppet wrote: | But massive mounds of | </this_tag></that_tag></the_other_tag></yet_another_tag> _is_ | readable? | | I mean, I guess you know what each tag is closing, which is | more than you get with ))))... | thrown_22 wrote: | But make the brackets curly and it's fine. | TylerE wrote: | Curly bracket languages don't require braces around every | statement. | | If C was written like {if {x == 1}{ | {return {x + 1};} } | | Maybe you'd have a point | thrown_22 wrote: | That's nice, but we're not talking about con, we're | talking about json. | | Also your syntax is terrible. There are already | s-expression versions of c: (if (== x | 1) (return (+ x 1))) | lmm wrote: | "s-expressions" is vaporware. Everyone who says it has a | slightly different format in mind. It's easy to be all things | to all people when you don't have to actually implement | anything. | t0astbread wrote: | If I wanted to dump raw JS data structures as text the most | straightforward way I can think of _is_ `JSON.stringify` and | `JSON.parse`. No need to roll your own S-expression parser. | halayli wrote: | No, these goals aren't mutually exclusive and I am not sure | where "shoot myself in the foot" fits here. It's a | serialization format and has many practical use cases. At least | back your claims with concrete examples. | | There's only a single JSON ISO standard (21778:2017). Why do | you feel compelled to comment on topics you don't have | knowledge about? | hsbauauvhabzb wrote: | I integrated json5 into a project I regularly use. JSON5 saved a | _significant_ amount of ongoing debugging. I appreciate the | efforts that went into the project. Thank you. | stavros wrote: | Regardless of JSON5, I realized it's just not constructive to | tell someone why something they made will fail. It would be great | if you could tell them how to _prevent_ failure, but just | portenting it serves nothing. | Barrin92 wrote: | I don't think writing an article about hackernews comments from | two years ago is exactly what I'd call a lesson in ignoring the | haters, but this reads a little bit like someone writing an | article about the roaring success of null references after their | adoption. | | despite popularity, most of the technical comments in that | original thread aren't wrong. 'Popular', 'Easy to adopt' and 'a | _very_ bad idea ' can be overlapping circles, in particular in | the world of javascript and npm | pledg wrote: | Ten years? | bayindirh wrote: | From my experience, the current generation of programmers value | convenience beyond everything else, with a great margin. | | This is not wrong per se, but it calls for much more complex | code which handles all the edge cases, and hurts performance at | the end of the day. | | Then, this small performance penalties pile-up and the same | developers ask why their code is not working as fast as it | should. | | I don't call for very pedantic formats, and extremely hand- | optimized systems. I just wish there was some more awareness of | the trade-off they're making and making small inconvenient, but | technically lighter trade-offs, these codebases can obtain very | dramatic speedups. | dan-robertson wrote: | This might be a preference revealed in which libraries people | choose but I think it is not really exhibited in the kind of | libraries or code that people write. You aren't seeing the | vast majority of libraries that aren't convenient because | they don't get released as open source or become popular. | | In my experience, some of the projects which have been most | valuable have been those which follow a theme of 'do | something really horrible or annoying inside our program so | that the users don't need to deal with the nastiness'. For | example it might mean having to write code with some | unpleasant hacks or in a very weird way to fit underlying | apis or performance requirements; or it could mean spending a | bunch of time manually tuning some heuristics because those | heuristics improve the library. | dietrichepp wrote: | I don't think this is in any way specific to the current | generation of programmers. | | The generation that learned with BASIC or used Smalltalk or | Lisp in college is decidedly an older generation at this | point. | | If performance is important, you profile. Optimizing your | configuration format for parsing speed is likely a bad | decision unless you've identified that it's a problem. | smoldesu wrote: | Performance is a relatively minor problem here, complexity | being the bigger concern. For example, I really love all- | in-one programs like Rust's 'cargo' and Nix's 'nix', but | the work that goes into making them work properly is | astronomical. On top of that, both of those programs have | limited composability and fight for dominance with other | interlocking tools like rustc and nix-env, respectively. | dietrichepp wrote: | My sense is that it takes a lot of savvy to make good | decisions about the complexity of your design and the | choices about which dependencies you rely on. This takes | years of practical experience to learn, and the incoming | generation of programmers will always be bad at it. | | Young programmers have a tendency to err in both | directions, here. | | Some will err by building on lots of complex systems tied | together. They'll fire off "create-react-app" on day 1, | and then on day 1000 they realize that there's just too | much going on that they don't understand and can't debug. | | Some will err on the side of rejecting "heavy" | dependencies. They overestimate their knowledge of the | problem domain, underestimate the flaws in code they are | planning to write. They'll create a blank repo on day 1 | and on day 1000 still be working on support code that | they didn't have to write. | | If you have years of experience, it's easier to navigate | the middle path. The incoming generation will figure it | out given time. | bayindirh wrote: | However, both sides need a good mentor that shows The Way | to them, or just they tend to get stuck where they have | started for a longer time than they should, IME. | bayindirh wrote: | Of course premature optimization is root of all evil, but | JSON is a data exchange format above all else, and using a | more relaxed version of it will inevitably incur a higher | overhead, and its original format is just native to the | language itself. | | I personally prefer to choose a simpler, and a bit more | pedantic versions of stuff whenever I develop something, | and while it doesn't break performance records OOTB, the | performance is always beyond reasonable at the first | iteration. | | So with this logic, I'll just prefer "vanilla json" | whenever I need to use it as a data exchange format, or a | well established and fast XML parser, and leave at it. | | This logic made my life way easier, but it's just me, and I | respect other developers' choices. | | Mine is just an observation rather than a rant. | | OTOH, using a simpler set of components will reduce the | probability of breakage a lot, too. | dietrichepp wrote: | My assumption here is that, like you, other people will | continue to use strict JSON for APIs and interchange, and | use JSON5 for configuration as appropriate. | bayindirh wrote: | That's my hope too. In fact the idea is very neat, but it | involves humans. So I'll just observe. :) | Aperocky wrote: | > 'Popular', 'Easy to adopt' and 'a very bad idea' | | is-odd | [deleted] | osrec wrote: | He is ignoring the haters. He continued despite their comments. | He is mindful that the haters exist (which you have to be, in | order to ignore them), but is ignoring them with respect to the | advice they offer. | | The haters were also wrong. They completely misunderstood the | needs of the target audience for JSON5. They forgot the world | is a messy place, no matter how clean and clear the JSON spec | may be, the input from random users may well be messy... | | I'm guessing even you simplify your life by using autocorrect | and spell check from time to time. Autocorrect has its issues | too, it probably makes us lazy and sloppy, but on the whole, it | improves the input experience for a lot of users, so on | balance, people choose to keep it around. | lmm wrote: | I don't use autocorrect, I find it does more harm than good. | I do use a spellcheck to highlight "errors", but it's then up | to me what action to take (and often the answer is that it | was't an error at all). | gervwyk wrote: | I enjoy using json5. I solves a real problem imo.. | | Regarding the criticism, I get the same bad energy when people | get a kick out of fixing someone's grammar, and then do not even | comprehend what is being complicated. | | Well done on the lib and thanks for building something useful! | Good writeup also! Think I'm going to give the commit access | trick a shot. | ryscheng wrote: | On the other side of this, it's fascinating how often people fall | susceptible to arguing why something should or shouldn't exist | for someone else, rather than just making a limited statement | about utility for themselves. Something to stay cognizant of, | this article is a good lesson on empathy! | codedokode wrote: | Honestly I don't understand why JSON should be human-readable. It | is a data serialization format intended to be read by software. | | Just adding comments and multi-line strings doesn't make it | human-readable, it is still too bloated and I don't like writing | it manually. If you want a human-readable format, try at least to | remove unnecessary quotes, brackets and commas and make it look | similar to YAML. | | JSON is not intended to be used in configs and other user- | editable files. | kryptiskt wrote: | The first two sentences of the text on http://json.org are | "JSON (JavaScript Object Notation) is a lightweight data- | interchange format. It is easy for humans to read and write." | | It's a primary goal of JSON, it's fair to question whether it's | successful at it. Personally, I'd much rather write TOML or S | expressions. I don't like YAML at all, the whitespace | sensitivity drives me nuts. | dietrichepp wrote: | > JSON is not intended to be used in configs and other user- | editable files. | | Yes, but it's a bit late for that. | | It sounds like you're advocating for a configuration format | somewhere in the space between JSON and YAML. Not JSON, because | it's annoying to write by hand, no comments, no trailing | commas. Not YAML, because of all those unintuitive edge cases | like "no" (unquoted) being a Boolean. | | It sounds like the primary disagreement here is _where_ in the | design space between JSON and YAML is the right syntax for | configuration files. | ajkjk wrote: | > It is a data serialization format intended to be read by | software. | | This really... doesn't matter. Humans read and write it all the | time. If everybody is getting annoyed at it because they're | reading it, they have every right to wish it was more human- | readable, hence trying to make it so. There's nothing wrong | with that. | cgrealy wrote: | Because it's really handy to be able to run things like rest | requests without any tooling more than curl or postman? | sacrosancty wrote: | Programmer readable, not user readable. It's far easier to | learn what it means by just looking at an example than by | reading some abstract documentation as you would have to with | binary data or some home-made format. | userbinator wrote: | Also, "human-readable" is somewhat of a relative term. I can | read a hexdump of many binary protocols as easily as I can | English, and over a billion humans can read a language that | seems impenetrable to the other several billion on this planet. | orthoxerox wrote: | What you want is something like Relaxed JSON | (http://www.relaxedjson.org/), but it's not valid JS, while | JSON5 is. | Jare wrote: | I read and write json manually almost every day. I haven't | bothered to insert json5 in our pipelines for various reasons, | but I sure wish it was the default. | | The interesting question I think is, why do you think json is | so used in that capacity despite not being meant for it? Why | YAML, despite being so widespread, hasn't swept json away for | those purposes? (let's for a moment ignore that YAML can go | REALLY nuts, and think only of the simplest version of it) | LtWorf wrote: | > let's for a moment ignore that YAML can go REALLY nuts, and | think only of the simplest version of it | | But we can't ignore it... we have to validate and make sure | it isn't going too nuts. And we will probably fail at that. | 11235813213455 wrote: | The only 2 things I'd like to add in JSON are trailing commas and | comments, and this is already supported in most JSON configs | (.eslintrc, .babelrc, ..), it's called JSONC I believe | fefe23 wrote: | Let me give you a data point from a neutral perspective (I have | never heard of you or JSON5). | | These were not haters. They in fact went our of their way to give | arguments supporting their verdict, and in some cases even | constructive suggestions like "make that a preprocessor instead". | | Your piece does not make you look like the smartest guy in the | room, vindicated by success and adoring fans. It makes you look | like someone who confuses internet fame points with something | that actually means something. Like a sore loser who needed to | convince themselves that they really are the smartest person in | the room. | | The internet is a trap. No matter how bad your idea is, you will | always find people who think it's great. | | Just look how many people Alex Jones found who agreed with his | Sandy Hook ideas. | | Don't go looking for fans. Go looking for people who disagree, as | they will help you improve your skills and grow as a person. | | If you were actually as good as you apparently think you are, you | wouldn't be wasting time writing text like this. You wouldn't | need to. Your work would speak for itself. I don't remember | Mozart or Einstein lament about their haters. | [deleted] | LtWorf wrote: | I wrote a python library. | | Someone online told me another library (released after mine) | was doing the same thing. | | Turns out other library has very obvious bugs, is 20x times | slower, but it has 8x more downloads. | | Yep downloads are not a metric of quality. | [deleted] | wdb wrote: | I really like json5's comments support, especially when json is | used for configuration files so you can explain specific confit | without needing to do it in a separate file | throwaway0x7E6 wrote: | the general attitude of the critics is correct. the name you | chose has implications that are not true - JSON5 has nothing to | do with JSON and you have nothing to do with the people who came | up with JSON. have you named it something else, you'd receive far | less (if any) negative comments. | [deleted] | TrianguloY wrote: | Json comments is something I always wanted, for json files with | data that you need. I even use regexp to remove them in some | cases (where I know it won't conflict with the strings | themselves). | | Didn't knew about this json5 thing but I'll try to use it | instead. | JoshuaEN wrote: | If you just want comments (and trailing commas), there is also | this: https://www.npmjs.com/package/jsonc-parser | renewiltord wrote: | Phew, when I read these posts, I often wonder if I said something | dumb in the past and I think I can easily be proud of my comments | there, though I missed the JSON5 thing[0]. Fortunately, the thing | that keeps me from saying dumb shit about other peoples' tech is: | | * my belief that people who execute on some project are | inherently superior - they made a thing to solve a problem! | Automatically superior to people who didn't make a thing | | * the Blub Paradox http://paulgraham.com/avg.html I can only | judge projects accurately where I am operating at a higher-level | of thought. If I don't get the need, then I am probably not | operating at a higher-level than the author. I prefer to be able | to have sufficient Theory of Mind thinking that I can inhabit the | author's mind to see why they need something, make the best case | for it, and then reject/accept it if I have to. There are many | places where I can't. The most trivial example which everyone | grasped before I got there is GraphQL as an API specification and | IDL, which I only recently really grokked. | | In any case, I had a figment of the idea that you talk about | which is the "people who won't be your users". Thanks for citing | the thought around that. | | Congrats and good luck! | | 0: | https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... | hnusersarelame wrote: | The kind of people who leave criticism on HN are not worth | listening to anyway. Most of the users of this site have no taste | and think they're more brilliant / important than they actually | are. | politelemon wrote: | As someone on HN, I can't say with confidence that I resemble | that remark. | yetanotherloser wrote: | rofl | jackblemming wrote: | There's a lot of critics, then you look at their | accomplishments and it's unsurprisingly sparse. | thrown_22 wrote: | Some people get paid in money and not exposure. | froderick wrote: | I think you will find that a great diversity of minds are | attracted to this site, and for reasons you may not have | considered. Curiosity is a giddy thing, and it is a fundamental | part of what draws me here. If you read this site and see only | the occasional jerk rather than the experience-driven insights, | that is your misfortune. Maybe instagram is your thing. I hear | they have a lot of cat pictures. | mjmsmith wrote: | What makes you think the jerks are only occasional? | froderick wrote: | I've been reading this site fairly regularly since 2010. | Not as long as many, but long enough to feel confident | saying that though the cast is always changing, this site | remains one of my favorite places to 1. discover things I | hadn't considered previously 2. reevaluate my past | decisions in a way that makes me thoughtful about future | ones | | It is partly the articles, but more the comments (and | careful modding). | | HN stands out as a great place to expand my awareness. | There are people here with deep technical experience that | care about the outcome of their conversations. The flame- | bait and regressive behavior isn't the main thing going on, | it is a sideshow. If that ever changes for me, I'm out of | here. | | The article fodder is not as interesting to me as it used | to be, but there are gems, and the comments remain | engaging. | | Who knows, perhaps I'm one of the jerks? Perhaps I'm the | dreamer that dreams the dream and am therefore the jerk | expert? Hard for me to say, but I welcome your opinion. | cmdialog wrote: | zaat wrote: | But do they shave themselves? | pestaa wrote: | Your comment is so self aware, it's almost an AI. :D | cassianoleal wrote: | Given you're leaving a criticism on HN, I infer from your own | comment you're not worth listening to. | AnimalMuppet wrote: | Nice use of recursion ;-) | wildwildtest wrote: | I think the real lesson is that popularity is a poor way of | understanding whether something is actually useful or good, it | can indicate those qualities but meaningless without also | applying our reasoning faculties too. The author appears to | remain oblivious to any of the very good reasons why people don't | like alternative json formats and incapable of incorporating that | into their understanding of people's reaction. Citing market | mechanics as a justification of "popularity = value" is blowing | past the many examples of where free markets produce terrible | approximations of value. | | Also, I think it's very poor character to say on one hand that | people's reaction doesn't bother them and dedicate a third to a | half of the article to Mitchell's criticism specifically. I think | Mitchell's criticism is completely reasonable (I remember this as | an era of "solving json" through multiple alternative formats) | and drawing attention to what seems in retrospect as a mean- | spirited act is actually quite a cynical attempt to strip the | context of it and deliberately cast Mitchell in a poor light. | Mitchell's intention is very clearly a technically minded one to | nudge people away from trying to massage long term, durable | standards in often trivial, subjective ways with an end goal that | can only result in format thrashing that doesn't ever address | anything substantial. | sacrosancty wrote: | Perhaps the fact that it's popular is exactly what those nay- | sayers were worried about. They didn't want a more fragmented | world of incompatible standards. | justinlloyd wrote: | In videogames, "If there are enemies ahead of you, then you are | going the right now." | | I have long held the belief that if the audience of Reddit or | Twitter or Slashdot or Hackernews universally hates something | with such vehemance that you doubt your own thoughts then you are | probably doing the right thing. | | In the words of Casey Neistat, in his video "Do what you can't." | - "To the haters, the doubters, my 7th grade vice principal, to | everyoneone who has ever anyone with a dream they can't..." | AndriyKunitsyn wrote: | I'm really puzzled by "JSON is for machines, not for humans" | types of comments here. FFS, JSON has whitespaces, that alone | should answer who it was made for. And making human-readable | formats more human-readable is a good thing. JSON5 is awesome. | | If the performance of your module suffers from parsing its | inputs, you are doing some Really Terrible Thing with your | inputs. And if the nature of the task really requires you to | parse data quickly and on a big scale, it would be better to | ditch JSON altogether and switch to a binary format like protobuf | instead. | jimrandomh wrote: | Here's the old (2012) HN thread with the haters in it: | https://news.ycombinator.com/item?id=4031699 . Happy to see an | old (positive) comment of my own that I had forgotten about, | which I think sums the whole thing up quite well. It still | applies, so I'll repost it here: | | 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 that many JSON | parsers reject comments was a real WTF moment, and a deal breaker | for my config-file application, so I ended up using JSON-plus- | comments for it instead of JSON. At the same time, lack of | support for trailing commas and unquoted member names have been a | minor but persistent thorn in my side for no good reason. The | justification for not having comments in JSON is that in the | great disaster that was XML, some projects would parse the | comments and take them as semantically significant. However, the | real problem there was that parser libraries would expose the | comments, and that some generators would put important | information only in comments. But I think that these mistakes are | unlikely to be repeated, and that the proposed alternative - | moving all comments into the markup, or eliminating them entirely | - is just obviously worse. | | One of the things that ruined the XML ecosystem was a persistent | belief that XML was to be read and written by machines, combined | with a reality in which it was mostly used for human-written | config files, leading to a tolerance for awful syntax (like | prefixing every single attribute with a namespace, and the | ridiculous CDATA notation). I'm seeing the same thing with JSON: | A significant fraction of its use is for human-written and human- | read config files (which often desperately need comments) and | people are pretending it's strictly a data interchange format | that shouldn't be used for that. | | It is sometimes said that JSON was discovered, rather than | invented - that the syntax was already out there. So it is with | JSON5: There is nothing new in this, it is simply return to | JavaScript Object Notation and bringing in the rest of what | Javascript has. | | So, all you pooh-poohing ideologists: please seriously rethink | whether disallowing comments, trailing commas, and quoteless | member names is actually a good idea. Consider this in light of | the fact that JSON is widely used, today, as a config-file | language, and that {"--":"This is a comment"} is ridiculous | enough that no one does it in practice, can't be inserted on any | line, and invites consumers of your data to parse the comments. | [deleted] | pvg wrote: | https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... | stickfigure wrote: | Looks great! Please add an unambiguous timestamp type :-) | yawnxyz wrote: | I love JSON5! My only gripe with it is that I have no idea what | the "5" means, and I don't think it's documented / alluded to | anywhere... | cbarrick wrote: | The 5 is a reference to ES5 | secondcoming wrote: | Does 'downloads per day' actually mean anything? It could be | someone large company's CI system building on every commit. I | don't think I've ever seen a JSON5 file in the wild. | | I've always wanted comments in JSON, but the other issues | highlighted are not things I care about. The 'be lenient in what | you accept' philosophy is a disaster, just look at HTTP... | stricter is better IMO. | abirch wrote: | If you had OpenAPI to document the JSON, where would you use | comments in the JSON payload? | snookerdooker wrote: | Although I cannot assume, I'd at least hope that a "large | company's CI system" would cache the frequently encountered | version(s) of a certain dependency :/ | metadat wrote: | Not a safe assumption. They tend to only invest effort into | caching after getting blocked. | | As a concretr example, this is a common big problem for NPM, | and they have to resort to blocking IPs and/or CIDR ranges. | onion2k wrote: | _Does 'downloads per day' actually mean anything? It could be | someone large company's CI system building on every commit._ | | I don't think you understand quite how many 60,000,000 | downloads per week is if you think a big company's CI pipeline | might account for that. | LtWorf wrote: | Maybe 2 or 3 big companies. | | I'll never understand why those companies can't bother to set | up an internal mirror. | viraptor wrote: | CI like that can give you some boost, but if the project is | building many times a day, the dependencies are cached | somewhere. Otherwise people get too annoyed with delays. There | may be a phase of lots of downloads, but then it gets fixed. | LtWorf wrote: | I think most companies do not set up mirrors. There is no way | millions of individual companies are downloading daily the | same pieces of code. And if they had caching they'd download | them only when a new release happens, not daily. | | There aren't that many companies in the world basically. | wizofaus wrote: | "The 'be lenient in what you accept' philosophy is a disaster" | - I've seen that stated before, and I don't think I quite | agree. It depends on how much market power you have - if you're | Chrome or Safari, I agree, you should display non-compliant | pages in a way that makes it obvious that they're broken. But | if you're just developing a backend component that happens to | consume data in a particular format and it's not part of a | system that millions depend on daily, ensuring it can handle | non-strictly-conforming input well usually pays off (but by all | means, do what you can to warn relevant users). ___________________________________________________________________ (page generated 2022-08-07 23:00 UTC)