<story><title>The cost of parsing JSON</title><url>https://v8.dev/blog/cost-of-javascript-2019#json</url></story><parent_chain><item><author>19ylram49</author><text>To be honest, I understand the bit of backlash that I’ve received here and I think it’s well-deserved since I should’ve worded my statement better. Thank you for your comments.&lt;p&gt;You all are correct re firing someone over mistakes and seemingly trivial matters. I was mostly referring to software engineers who make impactful decisions without good reason and&amp;#x2F;or without properly assessing the trade-offs.&lt;p&gt;I think it’s fair to say that we all want performant software, but at the same time, if I have a software engineer on my team who can’t back their decisions with some form of data and&amp;#x2F;or understanding of the trade-offs, unless they’re at the junior level, they’re not the type of software engineer who I want on my team.&lt;p&gt;I said “performance reasons” precisely because, over and over and over again in my career, I’ve watched software engineers commit unreadable messes of code that were clearly premature optimizations and&amp;#x2F;or optimizations where the performance gains weren’t significant enough to justify the costs of the unreadable and hard-to-maintain code enabling them.&lt;p&gt;I once had a software engineer unexpectedly spend almost a week rewriting a critical part of a Java codebase using the JNI because he thought it’d “make it faster” — and it did — but then all types of new native code-related issues ensued that cost the company, including a major security vulnerability that was just impossible before. On top of that, it turned out that the performance gains that we noticed were mostly significant during the startup period of the JVM, so it really wasn’t worth it. And this was a very brilliant software engineer, but he was consistently making poor decisions like this. To be clear though, he wasn’t fired! I just use that story as a realistic example. (Part of me still thinks that he just wanted to learn&amp;#x2F;use the JNI and that project seemed like the perfect target. Lol.)&lt;p&gt;But yes, it’s more complex than simply firing individual contributors for sure and I regret wording my statement that way, but I hope you all can understand the real point that I’m making.&lt;p&gt;Edit: I’d like to point out that, in my anecdote above, in hindsight, if anything, I was probably the one who looked incompetent when the suits started asking the expected questions re the sudden set of new issues, because I did my best to shield that software engineer from them (or at least I’d like to think that I did). I know the feeling of messing up at that level and I knew that he was most likely already beating himself up, so I couldn’t just let him take the fall, or worse, throw him under the bus. These tend to be complex situations in real life!</text></item><item><author>dkersten</author><text>You probably wouldn&amp;#x27;t want to work for somebody who fired people so easily anyway. This is one reason why I find it stupid when people defend companies or are super loyal to their employers: companies don&amp;#x27;t care about you and especially companies that fire on a whim without concern that they&amp;#x27;re fucking with somebodies life. Best to work somewhere that treats you like a human instead of as a cog.</text></item><item><author>SirensOfTitan</author><text>&amp;gt; I&amp;#x27;d probably fire someone if I started to see `JSON.parse(...)`&lt;p&gt;I&amp;#x27;ve had the privilege of working in organizations that consider mistakes to be the cornerstone of resilient systems.  Because of that, comments like this scare me, even when intentionally hyperbolic.  More so, if the product works well and is being maintained easily, why would you micromanage like that?  Sounds like a minor conversation only worth having if the technical decision is having a real impact.&lt;p&gt;Thomas J. Watson:&lt;p&gt;&amp;gt; Recently, I was asked if I was going to fire an employee who made a mistake that cost the company $600,000. No, I replied, I just spent $600,000 training him. Why would I want somebody to hire his experience?</text></item><item><author>19ylram49</author><text>I mean, I get it, but I think performance is overrated in this particular case; unless it’s a significant and&amp;#x2F;or very noticeable difference, stick to object literals, please. I’d probably fire someone if I started to see `JSON.parse(…)` everywhere in a codebase just for “performance reasons” … remember, code readability and maintainability are just as important (if not more).</text></item></parent_chain><comment><author>adimitrov</author><text>&amp;gt; Part of me still thinks that he just wanted to learn&amp;#x2F;use the JNI and that project seemed like the perfect target. Lol.&lt;p&gt;As a dev who sometimes goes off chasing wind mills, that&amp;#x27;s 99% of the reason why I do it. I find something nice to tinker with, and when my brain goes &amp;quot;ooh, shiny&amp;quot; I stop giving a shit about anyone&amp;#x27;s bottom line.&lt;p&gt;To be fair, it usually turns out for the better for the project and its code base! But sometimes it doesn&amp;#x27;t, and I figure that&amp;#x27;s just the cost of doing business. Companies should be willing to take these kinds of informed risks in order to improve their employees&amp;#x27; ability, and therefore the quality of their product. However, a lot of management only sees the short term gain, because long term gain isn&amp;#x27;t incentivized for them. They just wanna do well and get a promotion.&lt;p&gt;Well, guess what, it&amp;#x27;s the same for me. Except for me to do well, I have to be learning new things constantly. So tough poop, management, I&amp;#x27;ll be chasing my white whale every once in a while. Deal with it.</text></comment>
<story><title>The cost of parsing JSON</title><url>https://v8.dev/blog/cost-of-javascript-2019#json</url></story><parent_chain><item><author>19ylram49</author><text>To be honest, I understand the bit of backlash that I’ve received here and I think it’s well-deserved since I should’ve worded my statement better. Thank you for your comments.&lt;p&gt;You all are correct re firing someone over mistakes and seemingly trivial matters. I was mostly referring to software engineers who make impactful decisions without good reason and&amp;#x2F;or without properly assessing the trade-offs.&lt;p&gt;I think it’s fair to say that we all want performant software, but at the same time, if I have a software engineer on my team who can’t back their decisions with some form of data and&amp;#x2F;or understanding of the trade-offs, unless they’re at the junior level, they’re not the type of software engineer who I want on my team.&lt;p&gt;I said “performance reasons” precisely because, over and over and over again in my career, I’ve watched software engineers commit unreadable messes of code that were clearly premature optimizations and&amp;#x2F;or optimizations where the performance gains weren’t significant enough to justify the costs of the unreadable and hard-to-maintain code enabling them.&lt;p&gt;I once had a software engineer unexpectedly spend almost a week rewriting a critical part of a Java codebase using the JNI because he thought it’d “make it faster” — and it did — but then all types of new native code-related issues ensued that cost the company, including a major security vulnerability that was just impossible before. On top of that, it turned out that the performance gains that we noticed were mostly significant during the startup period of the JVM, so it really wasn’t worth it. And this was a very brilliant software engineer, but he was consistently making poor decisions like this. To be clear though, he wasn’t fired! I just use that story as a realistic example. (Part of me still thinks that he just wanted to learn&amp;#x2F;use the JNI and that project seemed like the perfect target. Lol.)&lt;p&gt;But yes, it’s more complex than simply firing individual contributors for sure and I regret wording my statement that way, but I hope you all can understand the real point that I’m making.&lt;p&gt;Edit: I’d like to point out that, in my anecdote above, in hindsight, if anything, I was probably the one who looked incompetent when the suits started asking the expected questions re the sudden set of new issues, because I did my best to shield that software engineer from them (or at least I’d like to think that I did). I know the feeling of messing up at that level and I knew that he was most likely already beating himself up, so I couldn’t just let him take the fall, or worse, throw him under the bus. These tend to be complex situations in real life!</text></item><item><author>dkersten</author><text>You probably wouldn&amp;#x27;t want to work for somebody who fired people so easily anyway. This is one reason why I find it stupid when people defend companies or are super loyal to their employers: companies don&amp;#x27;t care about you and especially companies that fire on a whim without concern that they&amp;#x27;re fucking with somebodies life. Best to work somewhere that treats you like a human instead of as a cog.</text></item><item><author>SirensOfTitan</author><text>&amp;gt; I&amp;#x27;d probably fire someone if I started to see `JSON.parse(...)`&lt;p&gt;I&amp;#x27;ve had the privilege of working in organizations that consider mistakes to be the cornerstone of resilient systems.  Because of that, comments like this scare me, even when intentionally hyperbolic.  More so, if the product works well and is being maintained easily, why would you micromanage like that?  Sounds like a minor conversation only worth having if the technical decision is having a real impact.&lt;p&gt;Thomas J. Watson:&lt;p&gt;&amp;gt; Recently, I was asked if I was going to fire an employee who made a mistake that cost the company $600,000. No, I replied, I just spent $600,000 training him. Why would I want somebody to hire his experience?</text></item><item><author>19ylram49</author><text>I mean, I get it, but I think performance is overrated in this particular case; unless it’s a significant and&amp;#x2F;or very noticeable difference, stick to object literals, please. I’d probably fire someone if I started to see `JSON.parse(…)` everywhere in a codebase just for “performance reasons” … remember, code readability and maintainability are just as important (if not more).</text></item></parent_chain><comment><author>Gibbon1</author><text>&amp;gt; And this was a very brilliant software engineer, but he was consistently making poor decisions like this.&lt;p&gt;That is something I&amp;#x27;ve noticed. Brilliance doesn&amp;#x27;t go hand in hand with making prudent and wise decisions.&lt;p&gt;&amp;gt; I did my best to shield that software engineer from them&lt;p&gt;I&amp;#x27;ve found rather painfully that you shouldn&amp;#x27;t shield guys like that when they go off on their own to make mistakes.&lt;p&gt;Other thing, you have a team of people that are familiar with how a codebase is put together and does things. And what sort of things go wrong. It&amp;#x27;s a bad idea to disrupt that &amp;#x27;just because&amp;#x27; Goofus rewrites a module to use X fad. Great! Before there were five programmers who knew how that module worked and now there is one programmer who knows how that module works.</text></comment>